Mobile Card Scanner
By
Anas Javed
2014-GCUF-15241
Malik Umer
2014-GCUF-15255
Project submitted in partial fulfillment of
the requirements for the degree of
BACHOLAR OF SCIENCE
IN
COMPUTER SCIENCE
DEPARTMENT OF COMPUTER SCIENCE
GOVERNMENT COLLEGE UNIVERSITY, FAISALABAD
June 2018
1
The Declaration page should be written as per the following page pattern.
DECLARATION
The work reported in this thesis was carried out by me under the supervision of -
_________________________ Department of __________________ GC
University, Faisalabad, Pakistan.
I hereby declare that the title of Project ___________________________ and the
contents of thesis are the product of my own research and no part has been copied
from any published source (except the references, standard mathematical or genetic
models /equations /formulas /protocols etc). I further declare that this work has not
been submitted for award of any other degree /diploma. The University may take
action if the information provided is found inaccurate at any stage.
Names & Signatures of the Students/Scholars
Anas Javed Malik Umar
2014-GCUF-15241 2014-GCUF-15255
_________________ _________________
2
CERTIFICATE BY THE PROJECT SUPERVISOR
This is to certify that Anas Javed Roll No. 15241 and Malik Umer Roll No.
15255 has successfully completed the final project named as: Aggression
Exorcist, at the Department of Computer Science, Government College
University, Faisalabad, Sahiwal Campus, to fulfill the partial requirement of the
degree of BS (CS).
Internal Examiner
Name: ____________________________
Signature: ________________________
External Examiner
Name: ____________________________
Signature: ________________________
Chairperson
Department of Computer Science
Government College University Faisalabad
3
Summary
The application Mobile Card Scanner will scan the recharge card and
successfully recharge the card of any network like Jazz, Zong etc. User can scan
any mobile number and can call on that number. This application also have option
of friendly chat with friends and other people.
Acknowledgement
First of all, we are very grateful to Almighty ALLAH who gave us opportunity,
strength, determination and wisdom to achieve our goal. Without support of
ALLAH, this could not have been possible.
We would like to thanks to our supervisors “Sir Ahsan Humayun “and “Sir
Ahsan Ali”, who not only served as our supervisor but also encouraged and
challenged us throughout our project. He patiently guided us through the process,
never accepting less than my best efforts.
Last, but not the least, we would like to thanks to our parents for giving us
life in the first place, for educating us with aspects from both arts and sciences, for
unconditional support and encouragement to pursue us interests and for all the
things they have done for us. Finally, we would like to express our gratitude for the
faculty members of Computer Sciences Department of GCUF and thank them for
their cooperation and timely assistance.
Anas Javed
Malik Umer
4
Table of Contents
Summary and Acknowledgement ……………………………………………………………………...... 4
Table of Contents.............................................................................................................................. 5
Project Title........................................................................................................................................ 7
1- Project Overview........................................................................................................................... 8
1.1- Project Overview Statement .................................................................................................. 9
1.2- Background ............................................................................................................................. 9
1.3- The Scope of the Product....................................................................................................... 9
1.4-Features of Developed System............................................................................................. 10
1.5- Mission................................................................................................................................... 10
1.6- Developed System ................................................................................................................ 10
1.7- Problem Definition................................................................................................................. 10
1.8- Tools & Technology.............................................................................................................. 11
1.8.1 Software Tools................................................................................................................ 11
1.8.2 Hardware Tools.............................................................................................................. 11
2- Requirement Elicitation.............................................................................................................. 12
2.1- Introduction ......................................................................................................................... 13
2.2- The Hands-on Users of the product...................................................................................13
2.4- Activity diagram for Scanning Process ............................................................................21
2.5- Activity diagram for Chat Process ....................................................................................22
2.6- CFG Diagram ....................................................................................................................... 23
2.7- CFD Diagram ....................................................................................................................... 24
3- System Design ............................................................................................................................ 25
3.1- Sequence Diagrams ............................................................................................................. 26
4- Methodolgy & Workplan............................................................................................................ 28
4.0 Methodolgy & Workplan........................................................................................................ 29
4.1 Proposed Application Architecture......................................................................................29
4.2 Existing Methodology............................................................................................................ 29
4.2.1 Waterfall Model................................................................................................................... 29
4.2.2 Incremental Model.............................................................................................................. 31
4.2.3 Agile Model…………………………………………………………………………………………32
4.3 Comparison Table of three Models.......................................................................................33
4.4 Adopted Methodology............................................................................................................ 34
4.5 Roles & Responsibilities........................................................................................................ 34
5
5- System Implementation.............................................................................................................. 35
5.0 System Implementation......................................................................................................... 36
5.1 Introduction............................................................................................................................ 36
5.2 Android Screenshots............................................................................................................. 36
5.2.1 Main Activity..................................................................................................................... 36
5.2.2 Scanner............................................................................................................................ 38
5.2.3 Detect text........................................................................................................................ 39
5.2.4 Share Button .................................................................................................................... 41
5.2.5 Select Network................................................................................................................. 42
5.2.6 OCR Capture Activity ...................................................................................................... 43
5.2.7 Chat ................................................................................................................................. 45
5.2.4 About Us .......................................................................................................................... 47
6- Application Architecture............................................................................................................. 48
6.0 Application Architecture........................................................................................................ 49
7- System Testing............................................................................................................................ 51
7.1 System Testing...................................................................................................................... 52
7.2 Introduction............................................................................................................................ 52
7.3 Testing Plan............................................................................................................................ 52
7.4 Unit Testing............................................................................................................................. 52
7.5 System Testing....................................................................................................................... 53
7.6 Integration Testing................................................................................................................. 53
7.7 User AcceptanceTesting........................................................................................................ 53
7.8 Test Cases............................................................................................................................... 54
7.9 Testing Results....................................................................................................................... 57
8 –Conclusion & Future Work........................................................................................................ 60
8.1- Conclusion & Future Work.................................................................................................. 61
8.2-Conclusion............................................................................................................................. 61
6
Project Title
Mobile Card Scanner
7
Chapter 1:
Project Overview
8
1.1 Project Overview Statement
The objectives of the "Mobile Card Scanner" is to scan digits from recharge card
and then user will have option to select network. Then user have notification to
successfully load. If user scan any mobile number from paper or any other media
like mobile or Pc then he/she can able to make a call on that number. User can also
share recharge card digits or any mobile number through message. User can
communicate with people by using chat option.User can login through email id.
1.2 Background
As such there is no existing system specific for recharge card at the moment. that’s
why we develop this application to provide factlity of recharge card through this
modern way.
1.3 The Scope of product
Acording to the increasing demand of technology we develop this application.
People can save their time because by using this application people scan recharge
digits and since people dial the digits which is time consuming. But now people
can save their time. We also provide a platform for public to communicate with
each other and spend time to talk with each other.
9
1.4 Features of developed system
Main features of the developed system are as follow:
Scan recharge card through OCR
Network Selection
Make call by scanning number
Share Recahrge code
Auto focus
Provide Chat Facility
Login to chat through email
Sign-out option
1.5 Mission
Our mission is to provide easiness to people in this modern Era. This app saves lot
of time because scanning is better as compared to dial digits.
1.6 Developed System
The developed app will change the way by introducing this new way of recharge.
1.7 Problem Definition
User can stay connecting with the application 24 hours a day with a slight
restrictions of internet connection avilability while using chat option. But there is
no need for internet during scaning procedure. This is a cost freely application for
users.
10
1.8 Tools and Technology:
Tools we use in this project are as follows:
1.8.1 Software Tools:
Android Studio
Google Firebase Database server
1.8.2 Hardware Tools:
Android device
11
Chapter 2:
Requirement Elicitation
12
2.1 Introduction
In this chapter analysis of requirement is carried out by using UML diagrams and
functional and non-functional diagrams.
2.2 The Hands-on Users of the product
Users are human beings who interface with the product in some way. Users are
also known as Actor. Use case diagrams are a set of use cases, actors, and their
relationships. They represent the use case view of a system. A single use case
diagram captures a particular functionality of a system. Hence to model the entire
system, a number of use case diagrams are used.
There are two types of user interact with the product:
Admin
User
Each of these types of users has different use of system so each of them has
their own requirements.
13
Username Users
User Role User can scan the recharge card
User can scan mobile number from paper or any
other material
User have option to select network of which type
he/she want to recharge
User can make a Phone call by scanning number
User can share phone number with anyone
User can share recharge code with anyone
User can make an account for using Chat function
by giving a valid email
User can send or receive messages
User can sign out from account
User can contact with Admin
Username Admin
Admin Role Admin is responsible for database
Admin is responsible for all data security of Users
Admin can see all Users
Admin can remove any User
14
Fig 2.1
15
Fig 2.2
16
Fig 2.3
17
Fig 2.4
18
User
Sr # Use Case Title Description
1 Scanner User can scan text from recharge card or other paper
Material
2 Chat User can send messages to friends
Chat
Sr # Use Case Title Description
1 Log in User will login by giving valid email id
2 Chat Panel User can send messages to his/her friends and
see can see chat history
3 Sign out User can sign out from account
19
Scanning
Sr # Use Case Title Description
1 Recharge User can recharge mobile account using this option.
2 Share Code User can share recharge code with friends
3 Call User can make a call by scanning a phone number
4 Message User can send notes or other text using this option
20
2.4 Activity Diagram for Scanning Process
Fig 2.5
21
2.5 Activity diagram for Chat Process
Fig 2.6
22
2.6 CFG Diagram
Fig 2.7
23
2.7 CFG for Scanning
Fig 2.8
24
Chapter 3 :
System design
25
3.1 Sequence diagram
A sequence diagram is an interaction diagram that shows how objects operate with
one another and in what order. It is a construct of a message sequence chart.
A sequence diagram shows object interactions arranged in time sequence. It
depicts the objects and classes involved in the scenario and the sequence of
messages exchanged between the objects needed to carry out the functionality of
the scenario. Sequence diagrams are typically associated with use case realizations
in the Logical View of the system under development.
A sequence diagram shows, as parallel vertical lines (lifelines), different
processes or objects that live simultaneously, and, as horizontal arrows, the
messages exchanged between them, in the order in which they occur. This allows
the specification of simple runtime scenarios in a graphical manner.
26
Fig 3.1
27
Chapter 4:
Methodology & Workplan
28
4.0 Methodology & Workplan
In this chapter, we will discuss that what are the existing methodologies and
which one we have chosen for implementation of this project in an effective
way, also we will discuss advantages of adopted methodology.
4.1 Proposed Application Architecture
The problems which are occurred in the existing applications are overcome in
proposed application. In this application we are implemented all of the
functionality by using any device with internet access for organization to
handling the communication between the Admin and User.
4.2 Existing Methodology:
There are the following existing methodologies
4.2.1 Waterfall Model
In the software development process, the very first model that is published
from other engineering processes that is cascaded from one phase to another
is known as Waterfall model. This model is also known as linear sequential
model. In the waterfall model, firstly all of the requirements gathered.
After gathering all of the requirements and analysis of all the
requirements further move to next phase that is making the design of a
project and then implementation, testing and maintenance phases. As all of
the next phases of this model is dependent on previous phase. All the phases
worked as a waterfall after one another.
29
It is a documentation driven model. In this model, feedback of the client
is received at the end of the project and when the product is delivered to the
user. Hence, mistake in the product requirement specification is discovered
after delivered to the user. This is time and cost consuming methodology, that is
why we have not used this methodology in developing this project.
The waterfall model is further described in the following diagram:
Figure 4.1 Water fall Model
30
4.2.2 Incremental Model
To overcome the drawbacks of the waterfall model, incremental model is
used. In incremental model, the product is developed in increments and
partitioned into smaller pieces. These smaller pieces, then built and
delivered to client in increments. Quick response from clients. Each module
is smaller than compare to whole module.
Figure 4.2 Incremental Model
31
4.2.3 Agile Model
Agile model is useful when there is no hope for changings in product after
deployment. It is a particular approach to project management that is utilized
in software development. This method assists teams in responding to the
unpredictability of constructing software. It uses incremental, iterative work
sequences that are commonly known as sprints. The ability to create and
respond to change in order to succeed in an uncertain and turbulent
environment.
Figure 4.3 Agile Model
32
4.3 Comparison Table of three Models
Model Strengths Weaknesses
1). Minimizes planning overhead
1). Inflexible
since it can be done up front.
2).Only the final phase produces
Waterfall 2). Structure minimizes wasted
Model
a no documentation deliverable.
effort, so it works well for
3). Backing up to address
technically weak or inexperienced
mistakes is difficult.
staff.
1). Develop high-risk or major
functions first.
2). Risk is spread across smaller
increments instead of concentrating
in one large development.
1). Requires good planning and
3). Lessons learned at the end of
design.
each incremental delivery can
2). Requires early definition of a
result in positive revisions for the
complete and fully functional
Incremental next increment.
Model
system to allow for the
4). Customers get important
definition of increments.
functionality early, and have an
3). The model does not allow
opportunity to respond to each
for iterations within each
build.
increment.
5). Each release delivers an
operational product. · Initial
product delivery is faster.
6). Reduces the risk of failure and
changing the requirements.
1). Inflexible
1). Allows for changes to be made
2). Project can become a series
after the initial planning.
of code sprints in lack of proper
Agile Model 2). Easier to add features that will
management.
keep you up to date with the latest
3). Initial project doesn’t have a
developments in your industry.
definitive plan
Table 4.1 Comparison Table of three Models
33
4.4 Adopted Methodology:
Incremental model is used to develop this project, in which we
Figure 4.3.1 Adopted Methodology
divided our work in multiple modules. All these modules are further divided into
more easily managed modules which made up the actual implementation of the
requirements.
4.5 Roles & Responsibilities:
Project development team is consisting of three members. In order to
accomplish a goal, documentation and development is equally distributed
among them and each member work on parallel to avoid wastage of time.
34
Chapter 5:
System Implementation
35
5.0 System Implementation
In this chapter, we’ll focus on an implementation of our application. Where user
can perform many activities on android application.
5.1 Introduction
The most important goal of this phase is to develop the application. The work in
this phase should be much more straightforward as a result of the work done in the
planning and design phases.
This phase involves changing design specifications into executable
programs. When the design is there, developers can have an idea on looks of
application. All that is needed by developers is to put them at one place to
understand about the intended project.
5.2 Android Screenshots
5.2.1 Main Activity
Main Activity or front page of application have two main modules. One is
Scanner and other is Group Chat.
36
Fig 5.1
37
5.2.2 Scanner
Scanner has various functions. It has option of camera auto focus according to user
demand and also has option for flash light. At the bottom right side, FAB button is
placed. Which is used for recharge and call and at the bottom left side button is
used for Sharing of code.
38
5.2.3 Detect Text
Fig 5.2
39
Fig 5.3
40
5.2.4 Share Button
Fig 5.4
41
5.2.5 Select Network
Fig 5.5
42
5.2.6 OCR Capture Activity
When user want to scan text then he/she will click on detect text button and
scanning process starts from there.
43
Fig 5.6
44
5.2.6 Chat
45
46
5.2.7 About Us
Fig 5.9
47
Chapter 6:
Application Architecture
48
6.1-Applications Architecture
The applications architecture is specified on the basis of business and functional
requirements. This involves defining the interaction between application
packages, databases, and middleware systems in terms of functional coverage. This
helps identify any integration problems or gaps in functional coverage. A
migration plan can then be drawn up for systems which are at the end of
the software life cycle or which have inherent technological risks.
Applications architecture tries to ensure the suite of applications being used
by an organization to create the composite architecture
is scalable, reliable, available and manageable.
Applications architecture means managing how multiple applications are
poised to work together. It is different from software architecture, which deals with
technical designs of how a system is built.
49
Fig 6.1
50
Chapter 7:
System Testing
51
7.1 System Testing
In this chapter, we will discuss the testing phase of developed application “Mobile
Card Scanner” in different manner to know that how much efficient and effective
application is.
7.2 Introduction
A process of performing as application or program with the intention of finding
errors and whether the application is fulfilling user needs. It can also be defined as
the ability of a program in meeting the required or desired results.
In many methodologies of software engineering, a separate phase is called
phase of testing which is performed after the completion of the
implementation. There is a benefit in using this approach that it is hard to see one's
own mistakes, and a fresh eye can find observable errors much faster than the
person who has read the material many times.
7.3 Testing Plan
A process of performing as application or program with the intention of finding
errors and whether the application is fulfilling user needs.
7.4 Unit Testing
The software units in an application are modules and routines that are assembled
and integrated to perform a specific function. Unit testing focuses first on modules,
independently of one another, to locate errors. This enables, to detect errors in
coding and logic that are contained within each module. The various controls are
tested to ensure that each performs its action as required.
Commonly used method is White-Box Testing method. Every time a
component of the program is changed, it can be run for testing that is the biggest
52
and famous benefit of this testing phase. Issues that are arises during this phase,
allowing to be resolved as quickly as possible. Unit testing is familiar by software
developers. It allows them to test their application units before move them to
testers for formal testing.
7.5 System Testing
To test the complete application as a whole, system testing has been used. It is
beneficial to check whether the application meets its requirements and fulfill
Quality Standards.
7.6 Integration Testing
Integration testing allows the software developers to integrate all of the
components/ units of the application within a program and then test them in a
group. Basically, this testing level is used to catch the defects in the user interface
between the functions/ modules. It is useful to determine how logically and
efficiently all the units/ components are running together.
Here the streaming module and encoding module options are integrated and
tested. This testing provides the assurance that the application is well integrated
functional unit with smooth transition of data.
7.7 User Acceptance Testing
User acceptance of an application is the key factor for the success of any
application. The application under consideration is tested for user acceptance by
constantly keeping in touch with the application users at time of developing and
making changes whenever required.
53
7.8 Test Cases
Test Cases Objectives
1 To make sure that user can easily
understand and can use the application
2 Make sure that user can easily Scan the
mobile card
Make sure that user can view
3
4 Make sure request send successfully
5 Make sure code share successfully
6 Make sure auto focus work properly
Make sure that flash light on or off
according to User input
7
54
Make sure Recharge process done
successfully
8
9 Make sure that accountt created
successfully
Make sure User use a valid email for login
10
Make Sure User enters a correct password
11
Make sure User can see chat history
12
Make sure Sign out work properly
13
Make sure Admin can see all Users
14
Make Sure Admin can remove any User
15
55
Make sure that About Us links works
16 properly
User can call by scanning number
17
Table 7.1 : Testing Cases
7.9 Testing Results
CRITERIA TEST STATUS REMARKS
All the graphical user interface
56
options display successfully. Test successful None
User can Scan the mobile card
Test successful
None
Camera Auto focus
Test successful None
Network Selection
Test successful None
Recharge is performed
Successfully Test successful None
User get notification after
Test successful None
recharge process done
User can call by scanning Test successful
number None
User can Share recarge code Test successful
or phone number None
Enter valid login user Name Test successful
None
and password and then press
57
login
Add using firebase database Test successful
None
Sent message Test successful
None
Receive Message Test successful
None
Admin view Test successful
None
Admin can remove can see all Test successful
None
Users
About Us works Successfully Test successful
None
Table 7.2 : Testing Result
58
59
Chapter 8:
Conclusion & Future Work
8.1 Conclusion & Future Work
In this chapter, we will discuss the results and discussions of this framework
“Mobile Card Scanner” with conclude remarks and will also discuss related
future work of this application.
8.2 Conclusion
We are very delightedly working on this project and being able to develop a
system to integrate with the local need of our country and its citizens. This
documentation gives whole detail of a Mobile Card Scanner system on android
60
phones. The platform independent language Java is used for the implementation.
Along with that Google Firebase database is used to store messages and other data
of Users. Our application will help people by reducing their time by working in the
future. This application can be modified according to any kind of need at any time.
We successfully develop an application which saves lot of time and also provide a
way by which people can communicate with each other.
61