You are on page 1of 53

University Institute of Information

Technology

PROJECT REPORT
ON
ANDROID APP
OUICK LEARN_MCQ

SUBMITTED TO: SUBMITTED BY:


SATISH SIR PRATIBHA SHARMA (61550)
AARZOO THAKUR (61553)
VIMAL KOUNDLE (62201)
VISHAL SHARMA (61521)
ACKNOWLEDGEMENT
It is great pleasure to present this report on the project named QUICKLEARN MCQ
undertaken by us as part of our B. Tech (I.T.) curriculum.
We are thankful to our university and college respectively i.e. University Institute Of
Information Technology(H.P.U), Shimla for offering us such a wonderful, challenging
opportunity and we express our deepest thanks to all coordinators, for providing all the possible
help and assistance and their constant encouragement.

It is a pleasure that we find ourselves penning down these lines to express our sincere thanks to
the people who helped us along the way in completing our project. We find inadequate words to
express our sincere gratitude towards them.

The faculty of Pre examination coaching centre as a big project has given this project to us. We
are thankful to Prof. P.K. Ahluwalia for giving us this opportunity and believing in us.
Without his valuable supervision and beneficial criticism, this project would not have been
fulfilled. He gave us suggestion and help which have made our endeavour a great success.

We are thankful to Sir Satish our project guide under whose guidance, it became possible for us
to design the efficient project and fulfil its requirements.

We are indebted to Prof. Manu Sood for giving us this opportunity to work on this project.

We are indebted to teacher and all our friends for their help in the preparation and valuable
encouragement by way of discussion and suggestion.

At last, but not least we are thankful to our parents for the all goodwill and understanding, they
showed for us.
CERTIFICATE
This is certified that these students of B.Tech (I.T.) at University Institute of Information
Technology Himachal Pradesh have successfully carried out the work presented in this project-
report entitled QUICK LEARN MCQ for providing android app for pre examination coaching
centre during the academic session March-June 2017 is a bonafide piece of project work carried
out by

Pratibha Sharma (61550)


Aarzoo Thakur (61553)
Vimal Koundle (62201)
Vishal Agnihotri (61521)
Project Summary:

Title : Quick Learn System

Definition : Android app for the Pre examination


Coaching Centre, Himachal Pradesh
University

Developed at : University Institute of Information


Technology, H.P.U.

Team Size :4

Team Members : Pratibha Sharma (61749)


Aarzoo Thakur (61757)
Vimal Koundle (62201)
Vishal Sharma (61521)

Development Platform : Android Studio


Notepad++
Wamp Server
SQLite Database

Language used : MYSQL, JAVA, PHP, XML, HTML, CSS


Office Automation tools : Ms-Word

Project Guide : Prof. Satish


TABLE OF CONTENTS
1. System Concept Development
1.1 Background Problem
1.2 Statement of the formulation of the project
2. System Analysis
2.1 Existing System
2.2 Proposed System
2.3 Objectives of the Proposed System
2.4 Feasibility Study
3. Software Requirement Specification
3.1 Specific Requirements
3.2 External Interface Requirements
3.3 Hardware Requirements
3.4 Software Requirements
3.5 Performance Requirements
4. Process Modeling
4.1 DFD
4.2 ER Diagram
5. System Design
5.1 Data Design
5.2 Architectural and component-level Design
5.3Software Interface Description
5.4User Interface Design

6. Testing
7. Implementation
8. Conclusion & Scope for further development
SYSTEM DEVELOPMENT LIFE CYCLE-The Systems Development Life
Cycle (SDLC) provides the foundation for the processes used to develop an information system.
1. SYSTEM CONCEPT DEVELOPMENT

1.1 Background problem

The whole process of assigning test and evaluating their scores after the test, is done manually
till date. It is very time consuming .Also it is difficult to keep the answer sheets being generated
as well as the maintenance of the record of each examination. The chance of loss of records is
high and record searching is difficult. Result processing takes more time and the presence of
more invigilators is a must if there are more number of students to write the exam.
So this project addresses this major concern and has put technology into force to develop an
android app for the students competing for various competitive examinations so that they can
take various tests and prepare themselves. This will also help the teachers assess the students
with problems and help them ahead. With the advent of technology, the manual hectic work has
been done away. This android app is a step towards encouraging students to work with
technology and use a different way of learning and for the teachers to improvise the way of
teaching.
1.2Statement of the formulation of the project

The project was proposed to us by Professor P.K. Ahluwalia Sir, Respected Professor of Physics
Himachal Pradesh University ex director of UIIT also for the pre examination coaching center of
HPU. This project proposed us (4 students of I.T.) to develop an android app to be made for
students that could help them take tests and excel in their respective competitive examination.
This project wanted us to make this app capable of feeding questions by the respective teachers
at back end and help them exercise control over them.

This project wanted us to do cumulative assessment of the tests.

This app will serve two purposes one it will be for the students those who are registered
candidates and also for the students who cant come and work in the institute they can study and
work on assignments sitting at home.

This project proposes to remove manual work and put technology into force and improve the
way of learning.

The statement of the formulation of the project was done in various meetings conducted under
the guidance of Professor P.K. Ahluwalia, Professsor Joginder Dhiman and Sir Satish.

We noted down the synopsis of the project to keep note of the details and features to be included
in the app. Under the guidance of respective teachers we continued our work.

A whatsapp group was also created in order to keep track of the work and suggestions if any.
2. SYSTEM ANALYSIS

System analysis is not a preliminary study. It is an in-depth study of end user information needs
that produces functional requirements that are used as the basis for the design of a new
information system. System involves detailed study of:

a. The information needs of the organization and end user.

b. The activities, resources and products of any present information system.

c. The information system capabilities required to meet your information needs.


2.1 Existing system
The existing system of teaching is hectic and cumbersome. The existing system puts manual
teaching more into force which consumes time and lot of energy. With the increasing
competition all over India it is very difficult for an average student to come out with limited
resources at hand. The manual work of creating assignments is too time consuming and not
efficient. The world is running at a great speed and to keep par with it and to progress we need
great efforts on our part to improvise our way of learning and education system. The youth needs
best teachers and quality education to grow ahead and be at par with the growing competition.
With the advent of technology and good software technology at hand the project proposes to use
new technology that is android app to come up effectively as an educational tool.
e
2.2 Proposed System

The new system removes the manual work of assessments and uses the latest technology android
into force. The proposed system will teach and do cumulative assessments on its part of the
respective tests undertaken by the student.

Each student will have its respective id as the username and respective student password to login
into account.

The app will have SQLite database at its back end that will feed questions into the app. The
server will be connected that will help in connection. The database of the students and the tests
undertaken will be saved for future references too.

The SQLite database is then connected to a Web Database linked to a Website which allow
teachers to insert Question and update the question bank. Also the website provide information
of students, teachers registered to QuickLearn. Website also give information about Pre-
Examination Coaching Centre

This app will be multipurpose as this project is first such project undertaken to help students
study different subjects for their respective competitive examinations.
The app also will welcome feedback from the users for further improvements.

2.3 Objectives of the proposed system

The proposed system aims to create an android app that will serve the students studying for
various competitive examinations like HAS, IAS, JEE, NEET etc.

This app will under one project will serve the students of various competitive examinations and
help in the learning with more efficiency. This app will cumulative assessment of the marks of
the students. The tests undertaken by the students will be given or set by the teachers themselves
who will be able to check the students themselves and do thorough assessments.

2.4 Feasibility study

Feasibility Study The statement dont try to fix it unless you understand it apply describe the
feasibility study stage of system analysis. The goal of feasibility study is to evaluate alternative
system and to purpose the most feasible and desirable system for development.

It consist of the following:

1. Statement of the problem

2. Summary of findings and recommendations

3. Details of findings

4. Recommendations and conclusions


There is a measure of how beneficial the development of the information system will be to an
organization. This is done by investigating the existing system in the area under investigation or
generally ideas about a new system. It is a test of a system proposal according to its workability,
impact on the organization, ability to meet user needs, and effective use of resources.

Three key considerations are involved in the feasibility analysis: economic, technical, and legal.
FEASIBILITY STUDY

BEHAVIOURA ECONOMI
TECHNICAL
L C
Economic feasibility
Economic analysis is the most frequently used method for evaluating the effectiveness
of a proposed system. It is more commonly known as cost benefit analysis, the procedure to
determine the benefits and saving that are expected from a candidate system and compare them
with costs. If the benefits outweigh costs then a decision is made to design and implement the
system. Otherwise make alterations in the proposed system.
The innovation of the new system has much influence on the economical side of the
company. Manual system is highly cost driven due to the high labor costs. So if a company
registers with the Quick learn MCQ app, they can automate their day-to-day activities. Thus the
system is economically feasible.

Technical feasibility
In examining Technical feasibility of the system, more importance is given to the
hardware interaction part of the system. The assessments of technical feasibility centers on the
existing system and to what extent it can support the proposed addition. This was based on an
outline design of system requirements in turns of inputs, files, programs, procedures, and staff. It
involves financial considerations to accommodate technical enhancements. Quick Learn MCQ
being an app that has a good interface, user friendly and help users easily adapt to it. This app
comes with a website that help teachers put questions for students.
Legal feasibility
People are inherently resistant to change, and computers and android applications have
been known to facilitate change. An estimate should be made about the reaction of the user staff
towards the development of a computerized system. The introduction of a candidate system
requires special effort to educate, sell and train the staff for conducting the business.
The system is designed such that even a mobile ignorant person can interact with the
system freely. So the system requires not much effort to train and educate people, the system is
that much legally feasible.
Behavioural Feasibility:
People are resistant to change, and computers and mobile platforms have been known to
facilitate change. An estimate should be made of how strong a reaction the user staff is likely to
have toward the development

2.5 PROTOTYPING-

Prototyping is the process of building a model system. In terms of an information system


prototype are employed to help system designers build an information system that intuitive &
easy to manipulate end users. Prototyping is an iterative process that is part of analysis phase of
system development of life cycle.
OUR PROTOTYPE MODEL:

We made small prototypes of the model just to get an idea of how we could put our plan into
action. The protypes were done in android studio by making XML sheets of the model in order
that we could connect them and put them into action.

Though the structure of new model was different from the old one we made prototypes for the
work itself.
Prototype Modal of Website Login Page

Prototype of Website Homepage

ADVANTAGES OF PROTOTYPING:

Prototype reduce the development time.

It reduce the development cost.


It requires the users involvement.

Its results are higher user satisfaction.

Prototype are an active, not passive, model that end user can see, touch & feel.

Prototyping can increase creativity because it allows for quicker user feedback which can lead
to better solutions.

DISADVANTAGES OF PROTOTYPING:

Prototyping often leads to premature commitment to a design.

Prototyping can reduce creativity in designs.

Not suitable for large applications.

Structure of system can be damaged since many changes could be made.

Developer misunderstanding of user objective

3. SOFTWARE REQUIREMENT SPECIFICATION

3.1 Specific Requirements


Since the Administrator and the student/user are the main target group of our software, we will
only concern about some important functions for the admin and the user.

Administrator:-
The administrator is the one who manipulates and maintains the system. He can enter
into the Website by entering login name and password
That is, he is responsible for creating exams that include subject selection and assigning
scores etc.
Again, He can manage Teachers who add questions to the database
Add new user to the database and issue a valid ID for the user.
Admin Verifies New request of a teacher who want to add question to database
He is also responsible for sending the result to the email id provided by the user at the
start of his registration.

Teachers:-
Can request to become question adder.
2

Admin verifies the request of a teacher.

Students/Users:-
Can do the member registration
After the registration, he will be issued with valid ID by the Administrator. The user can
log into the system with this ID.
After successfully login into the system, the user moves to the instruction web page
where he will get instruction about the examination process.
Then after clicking the start button the exam starts and timer also starts .In this manner,
the user can take up the test and on clicking the submit button , he will get the result of
that section immediately.

He must get the test result to his email id provided at the start of the registration
During the exam, he is allowed to go to the previous questions using a previous button.
At the end system displays the initial web page.
3.2 External Interface Requirements
It include the following interfaces
User Interfaces
Software Interfaces
Hardware Interfaces
User Interfaces:-
The interface must be easy to understand. The user interface includes
screen formats/organization: The introductory screen will be the first to be displayed
which will allow the users to do the member registration.
window format/organization: When the user chooses some other option, then the
information pertaining to that choice will be displayed in a new window which ensures
multiple windows to be visible on the screen and the users can switch between them.
data format: The data entered by the users will be alpha numeric.
end messages: When there are some exceptions raising error like entering invalid details,
then error messages will be displayed prompting the users to re-enter the details.
Hardware Interfaces:-
Server side hardware
Hardware recommended by all the software needed.
Communication hardware to serve client requests

Client side hardware


Hardware recommended by respective clients operating system and web browser.
Communication hardware to communicate the server.

Software Interfaces:-

Server side software


Web server software, PHP
Wamp server
Database tools: SQLite Database
Compatible operating system: Windows XP
Client side software
Android studio 2.3.1
Communications Interfaces:-
http - Hypertext Transfer Protocol is a transaction oriented client/server protocol between web
browser & a Web Server.
TCP\IP: Transmission Control Protocol/Internet Protocol, the suite of communication protocols
used to connect hosts on the Internet. TCP/IP uses several protocols, the two main ones being
TCP and IP.
3.3 Hardware Requirements
Processor : Pentium IV
Ram : 4-16 GB
Hdd : 2 GB
Monitor : svga color
Key board : normal
Mouse : normal
Platform : Android Studio

3.4 Software Requirements

Operating System : Windows XP, Windows 7, 8

Front End : Android Studio

Back End : SQL server 2005


Web server : , Wamp Server

Browser : Internet Explorer

3.5 Performance Requirements


System should be able handle multiple users
Database updating should follow transaction processing to avoid data inconsistency,

4. PROCESS MODELLING
4.1 DATA FLOW DIAGRAM
A DFD also known as bubble chart, has the purpose of clarifying system requirements
and identifying major transformations. It shows the flow of data through a system. It is a
graphical tool because it presents a picture. The DFD may be partitioned into levels that
represent increasing information flow and may be partitioned into levels that represent increasing
information flow and functional detail. Four simple notations are used to complete a DFD. These
notations are given below:-
DATA FLOW:-The data flow is used to describe the movement of information from
one part of the system to another part. Flows represent data in motion. It is a pipe line through
which information flows. Data flow is represented by an arrow.

PROCESS:- A circle or bubble represents a process that transforms


incoming data to outgoing data. Process shows a part of the system that transform inputs to

output s.
EXTERNAL ENTITY:-A square defines a source or destination of system data. External
entities represent any entity that supplies or receive information from the system but is not a part

of the system.

DATA STORE:- The data store represents a logical file. A logical file can represent either a
data store symbol which can represent either a data structure or a physical file on disk. The data
store is used to collect data at rest or a temporary repository of data. It is represented by open
rectangle.

OUTPUT:-The output symbol is used when a hard copy is produced and the user of the copies
cannot be clearly specified or there are several users of the output.
4.1ALL LEVEL DFDS OF THE PROJECT:

ADMINISTRATOR
0 Level DFD
UIIT RECORD
PRE EXAM
COACHING
CENTRE manage

EXAMINATIO store
N Student record
store
STUDENTS

Test Record

1 Level DFD

enter

administrator Question paper

manages
register Student record
Admin
use
Give Test
store test result

authorised display
Student
Display Result
2 Level DFD:

STUDENT
details

LOGIN
Maintain store
ADMIN manage Student program

AUTHENTIC
manages ATING use

INVALID USER failed


valid Mark Calculations
use
GIVE
RESULT use
show
Question paper

SHOW RESULT
2 LEVEL DFD:
Pre examination
coaching centre Take exam
details
ready to take exam
Pre examination
coaching centre
enter Exam details

enter
admin

registered

Students Details

use
source App login
login

view record Marks Statement


Test record use

Display result

4.2ER DIAGRAM:

An entity relationship diagram (ERD) shows the relationships of entity sets stored in a database.
An entity in this context is a component of data. In other words, ER diagrams illustrate the
logical structure of databases.

At first glance an entity relationship diagram looks very much like a flowchart. It is the
specialized symbols, and the meanings of those symbols, that make it unique
QUESTION
LAST
FIRST EMAIL-ID PASSWORD
NAME
NAME

EXAM
STUDENT REGISTRATION GIVE

MANAGE
VIEW

PWD

RESULT CREATE ADMIN

User name
Teachers first
ADMI
name
N N-
ID

pwd TEACHER ADD


Q.num
ber
Email-id

gender questi
on QUESTION
department
Clg-name
option
4.3PERT CHARTS

Pert Charts are a tool used for showing how activities/tasks in a project are related to each
other.

A PERT chart is used to estimate the duration of a project by using critical path analysis.

The critical path is the longest path through a collection of tasks or activities which are critical to
the step-by-step completion of the project. There are usually a variety of paths or sequences of
tasks that often occur at the same time. The only way that it is possible to calculate the longest
path is to add up how long each of these sequences will take. The number of days or months for
the critical path indicates the shortest time that it will take to complete a project.

Network diagrams are often used in preference to PERT charts.

PERT chart projects are organised in terms of tasks and milestones. Microsoft Project, a project
management software tool, uses rectangles connected by arrows to indicate predecessors and
successors (that is, what task comes before and what after).

PERT charts help to estimate the time needed to complete a project, specifying actual dates for
tasks and allocating resources to them. Try to get access to Microsoft Project and use the tutorial
to explore PERT charts.
5. SYSTEM DESIGN
The design phase decides how the new system will operate.

5.1 Data Design


Data design creates a model of data and or information that is represented at a high level
of abstraction. The structure of data has always been an important part of software design. The
data design activity translates these elements of requirement model into data structure at the
software component level. In actuality, the design of data begins during the creation of the
analysis model.
The database modelling involves Normalization of the database structure so as to
avoid data redundancy. The different levels of normalization are first level, second level and
third level. Normally normalization up to 3rd level is followed. But in certain cases we
normalize up to fourth level is called Boyce code normal form. In this project we have
normalized up to second level. Also we have added a bit of renormalization into the databases for
easy generation of reports in the future.
Data structure Description:-

Data structures that are passed among components, Data structured that are available to major
portions of the architecture, Files created for interim use are described.

SQLite Database:

SQLite is an open source SQL database that stores data to a text file on a device. Android comes
in with built in SQLite database implementation.

SQLite supports all the relational database features. In order to access this database, you don't
need to establish any kind of connections for it like JDBC, ODBC etc.

Database Package:
The main package is android.database.sqlite that contains the classes to manage your own
databases
Database - Creation
In order to create a database you just need to call this method openOrCreateDatabase with your
database name and mode as a parameter. It returns an instance of SQLite database which you
have to receive in your own object. Its syntax is given below

SQLiteDatabase mydatabase = openOrCreateDatabase("your database name",MODE_PRIVATE,null);

Apart from this, there are other functions available in the database package , that does this job.
They are listed below

Sr.No Method & Description

1 open Database(String path, SQLiteDatabase.CursorFactory factory,


int flags, DatabaseErrorHandler errorHandler)

This method only opens the existing database with the appropriate flag
mode. The common flags mode could be OPEN_READWRITE
OPEN_READONLY

2
open Database(String path, SQLiteDatabase.CursorFactory factory,
int flags)

It is similar to the above method as it also opens the existing database but
it does not define any handler to handle the errors of databases

3 openOrCreateDatabase(String path, SQLiteDatabase.CursorFactory


factory)It not only opens but create the database if it not exists. This
method is equivalent to open Database method.

4
openOrCreateDatabase(File file, SQLiteDatabase.CursorFactory
factory)

This method is similar to above method but it takes the File object as a
path rather than a string. It is equivalent to file.getPath()
Database - Insertion
We can create table or insert data into table using execSQL method defined in SQLiteDatabase
class. Its syntax is given below

mydatabase.execSQL ("CREATE TABLE IF NOT EXISTS TutorialsPoint (Username VARCHAR, Password


VARCHAR);");
mydatabase.execSQL("INSERT INTO TutorialsPoint VALUES('admin','admin');");

This will insert some values into our table in our database. Another method that also does the
same job but take some additional parameter is given below

Sr.No Method & Description

1 execSQL(String sql, Object[] bindArgs)

This method not only insert data , but also used to update or modify
already existing data in database using bind arguments

Database - Fetching
We can retrieve anything from database using an object of the Cursor class.
We will call a method of this class called rawQuery and it will return a result
set with the cursor pointing to the table. We can move the cursor forward
and retrieve the data.

Cursor resultSet = mydatbase.rawQuery("Select * from TutorialsPoint, null);


resultSet.moveToFirst();
String username = resultSet.getString(0);
String password = resultSet.getString(1);

There are other functions available in the Cursor class that allows us to
effectively retrieve the data. That includes
Sr.No Method & Description

1
getColumnCount()

This method return the total number of columns of the table.

2 getColumnIndex(String columnName)

This method returns the index number of a column by specifying the


name of the column

3
getColumnName(int columnIndex)

This method returns the name of the column by specifying the index of
the column

4 getColumnNames()

This method returns the array of all the column names of the table.

5
getCount()

This method returns the total number of rows in the cursor

6 getPosition()

This method returns the current position of the cursor in the table

7
isClosed()

This method returns true if the cursor is closed and return false otherwise
Database - Helper class
For managing all the operations related to the database, a helper class has been given and is
called SQLiteOpenHelper. It automatically manages the creation and update of the database. Its
syntax is given below:

public class DBHelper extends SQLiteOpenHelper {


public DBHelper(){
super(context,DATABASE_NAME, null,1);
}
public void onCreate(SQLiteDatabase db) {}
public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {}
}

Database description

5.2 Architectural and component-level Design


Design is the first step in the development phase for any engineered product or system. The
design is the transition form the user oriented view to the programmer view. Design phase act as
an edge between the software specification phase and the software development phase which
satisfies the requirements. The system transforms a logical representation of what a given system
is required to be, into the physical specification. Design starts with the requirement specification
and converts it into physical specification. System designs is a creative art of inventing and
developing inputs, databases, offline files, methods and procedures, for processing data to get
meaningful output that satisfy the organization objectives. Through the design phase
consideration to the human factors, i.e., the inputs to the users will have on the system.
Some of the main factors that have to be noted using the design of the system are:
Practicability
System must be capable of being operated over a long period of time and must have ease of use.
Efficiency
Should make better use of resources available. Efficiency involves
Accuracy, timeliness and comprehensiveness of system output.
Cost : Aim of minimum cost and better results
Security : Physical security of data
Program Structure
Top-down programming is the opposite of bottom-up programming. It refers to a style of
programming where an application is constructed starting with a high-level description of what it
is supposed to do, and breaking the specification down into simpler and simpler pieces, until a
level has been reached that corresponds to the primitives of the programming language to be
used. Top-down programming tends to generate modules that are based on functionality, usually
in the form of functions or procedures. Typically, the high-level specification of the system states
functionality. This high-level description is then refined to be a sequence or a loop of simpler
functions or procedures, that are then themselves refined, etc. In this style of programming, there
is a great risk that implementation details of many data structures have to be shared between
modules, and thus globally exposed. This in turn makes it tempting for other modules to use
these implementation details, thereby creating unwanted dependencies.
Description for Components

There are four types of the modules


1: Student Module
2: Course Module
3: Exam Module
4: Administrator module
1. Student Module: - The student module contain another module-

1.1 Registration Module: - Each of the students must first register with the software. For the
registration part of the student will have to enter his details like name, address etc. and get a User
Id from the software. Once the student register with software they are able to give the exam.

2. Course Module: - The course module contain another three module-


2.1. Course Registration: -This modules contain all the information about different courses.
2.2. Question Entry: - This module contains all the question of different subjects. The questions
are multiple types.
2.3. Mark Entry: - This module contains the mark details of different subjects.
3. Exam Module: - This module is used for performing examination process. Time slot is allotted
for exam. Two hour for each exam. Copy writing not possible in the exam. Result generation is
also the part of this module. As the part of the result generation make the mark list. The mark list
contains Register number, name, course, subject, semester, mark, etc.
4. Administrators Module: - The module protected by user id and password. This is encrypted
format. So Ordinary users of the software will not be permitted to enter this area of the software.
The module will be focusing on the maintenance like Master Data entry operation.
5.3 Software Interface Description
Software interface is the one that forms the major part of the project .Interface should be best
suited to meet the user needs. A good software welcomes more people to work in the
environment. An environment friendly and easy software helps users to easily adapt to the
surroundings can easily work more with it. A good software interface welcomes more users to
come and use the app.
5.4 User Interface Design
System needs mainly following forms: a login form with security features, registration form for
new students, a test feature for students to take tests and cumulative assessments of the test.
FRONT END DESIGNING TECHNOLOGY

All about Android Studio:

ABOUT ANDROID

Android delivers a whole set of software package for mobile devices: AN OS, middle-ware
and key mobile applications.
Android is a Linux-based OS designed primarily for touch screen mobile devices like smart
phones and tablet computers. android was developed by the OHA( Open handset Alliance), light-
emitting diode by Google, and different companies.
Android is a combination of 3 components:
1. A free, open source OS for mobile device
2. AN open-source development platform for making mobile application.
3. Devices, significantly mobile phones, that run the android OS and also the application created
for it.
Android App development Open
Android OS was designed from the ground-up to modify developers to make compelling mobile
applications that take full advantage of all a phone should provide. It had been designed to be
really open as an example, AN application will decision upon any of the phones core
functionality like creating calls, causing text messages, or exploitation the camera, permitting
developers to make richer and a lot of cohesive experiences for users. android is made on the
open Linux Kernel. moreover, it utilizes a custom virtual machine that was designed to optimize
memory and hardware resources in an exceedingly mobile environment. Android is open source;
it are often liberally extended to include new innovative technologies as they emerge.
No application boundaries
Android breaks down the barriers to putting together new and innovative applications. as an
example, a developer will mix data from the online with information on an individuals mobile
like the users contacts, calendar, or geographic location to produce a additional relevant user
experience. With android, a developer will build an application that allows users to view the
location of their friends and be alerted after they are within the neighborhood giving them an
opportunity to connect.

Fast and easy application development


Android provides access to a good vary of helpful libraries and tools which will be wont to
build made applications. as an example, robot allows developers to get the location of the device,
and allows devices to communicate with each other enabling strong peertopeer social
applications. additionally, android includes a full set of tools that are designed from the bottom
up alongside the platform providing developers with high productivity and deep insight into their
applications.

What is an Activity?
An activity represents one screen with a user interface. as an example, AN email application
might need one activity that shows a listing of recent emails, Another activity to compose an
email, and another activity for reading emails. If AN application has over one activity, then one
in all them should be marked as the activity thats presented once the appliance is launched.
ACTIVITY LIFECYCLE:-
Monitoring key loops:
You may have an interest in monitoring these 3 loops in your activity:

The complete lifetime:


The complete lifetime takes place between the primary decision to onCreate() and also the final
call to onDestroy(). The activity performs all global setup in onCreate() and releases all
remaining resources in onDestroy().
As an example, if you create a thread to download a file from the web within the background, its
going to be initialized in the onCreate() method. That thread in the stopped within the
onDestroy() method.
The visible lifetime:
The visible lifetime of the activity takes place between the onStart() and onStop() methods.
during now, the user will see the activity onscreen (though its going to not be in the foreground
interacting with the user, which may happen once the user is interacting with a dialog box).
Between these 2 methods, youll maintain the resources that are required to indicate and run your
activity.As an example, youll create an event handler to watch the state of the phone. The phone
state will change, and this event handler will inform the activity of the phone getting into
airplane mode and react consequently youd set up the event handler in onStart() and tear down
any resources youre accessing in onStop(). The onStart () and onStop() methods is called
multiple times because the activity becomes visible or hidden to the user.
The foreground lifetime:
The foreground lifetime of the activity begins at the call to onResume() and ends at the call to
onPause() during now, the activity is in front of all different activities and is interacting with the
user. AN activity commonly toggles between onResume() and onPause() multiple times. As an
example, once the device goes to sleep or once a replacement activity handles a specific event
so, the code in these methods must be fairly light-weight
Intent:
It is connected to either the external world of application or internal world of application ,Such
as, opening a pdf is an intent and connect to the web browser etc.

DIFFERENT KINDS OF INTENT:

2. EXPLICIT INTENT:
Explicitly starting new activities in android application. Explicitly select an Activity class to
start, create a new Intent, specifying the current application. Context and activity class to launch.
Intent intent = new Intent (MyActivity.this, MySecondAcitivity.class);
StartActivity(intent); After startActivity is called, the new Activity (in this example
MySecondActivity) will be created and become visible and active, moving to the top of the
Activity stack. Calling finish on the new Activity or pressing the hardware back button, will
close it and remove it from the stack.

2. BROADCAST INTENT: Broadcast Intents are used to notify listeners of system or


application events, extending the even-drivers programming model between applications.
Broadcast Intents helps make your application more open; by broadcasting an event using an
Intent you let yourself and third-party developers react to events without having to modify your
original application.
Android uses broadcast Intents extensively to broadcast system events like battery-charging
levels, network connections, incoming calls and Boot OS.

3. PENDING INTENT: The Pending Intent class provides a mechanism for creating Intents that
can be fired by another application a later time. A pending Intent is commonly used to package
an Intent will be fired in response to a future event, such as a widget view being clicked or a
Notification being selected from the notification panel.

.apk Extension:
.apk extension for an Android Package file, which typically contains all of the files related to a
single Android application. The file itself is a compressed collection of an AndroidMainfest.xml
file, application code (.dex files), resource file and other files. A project is compiled into a
single .apk file.
Importance of Android in the mobile market:
Developers can write and register apps that will specifically run under the Android environment.
This means that every mobile device that is Android enabled will be able to support and run
these apps. With the growing popularity of Android mobile devices, developers can take
advantage of this trend by creating and uploading their apps on the Android Market for
distribution to anyone who wants to download it.

Android Architecture:
Android Architecture is made up of 4 key components:
Linux Kernel
Libraries
Android Framework
Android Applications

Android Architecture:
Android Architecture is made up of 4 key components:
Linux Kernel
Libraries
Android Framework
Android Applications

BACK END DESIGNING TECHNOLOGY

PHP , HTML AND CSS:

PHP:In the design php formed the designing software of the website we made. Along
with it we also used CSS for its designing.

The PHP Hypertext Pre-processor (PHP) is a programming language that allows web developers
to create dynamic content that interacts with databases. PHP is basically used for developing web
based software applications. This tutorial helps you to build your base with PHP.

PHP code may be embedded into HTML or HTML5 mark-up, or it can be used in combination with
various web template systems, web content management systems and web frameworks. PHP code
is usually processed by a PHP interpreter implemented as a module in the web server or as
a Common Gateway Interface (CGI) executable. The web server software combines the results of
the interpreted and executed PHP code, which may be any type of data, including images, with the
generated web page. PHP code may also be executed with a command-line interface (CLI) and can
be used to implement standalone graphical applications.[7]

Data types
PHP stores integers in a platform-dependent range, either a 64-bit or 32-
bit signed integer equivalent to the C-language long type. Unsigned integers are converted to signed
values in certain situations; this behaviour is different from that of other programming
languages. Integer variables can be assigned using decimal (positive and negative), octal,
hexadecimal, and binary notations.

Functions
PHP defines a large array of functions in the core language and many are also available in various
extensions; these functions are well documented in the online PHP documentation. [99] However, the
built-in library has a wide variety of naming conventions and associated inconsistencies, as
described under history above.

Custom functions may be defined by the developer, e.g.:

function myAge($birthYear) { // defines a


function, this one is named "myAge"
$yearsOld = date('Y') - $birthYear; // calculates
the age
return $yearsOld . year . ($yearsOld != 1 ? 's' : ''); // returns the
age in a descriptive form
}

echo 'I am currently ' . myAge(1981) . ' old.'; // outputs the


text concatenated
// with the
return value of myAge()
// As the result of this syntax, myAge() is called.

In 2017, the output of the above sample program is 'I am currently 36 years old.'

HOW THINGS WORK:


WAMP Server
WAMP is acronym for Windows, Apache, MySQL and PHP, Perl, Python. WAMP software is
one click installer which creates an environment for developing PHP, MySQL web application.
By installing this software you will be installing Apache, MySQL and PHP. Alternatively you
can use XAMP Server also.
DATABASE Structure

6. Testing
Generally, it has been specified thought for testing that:
Testing is the critical element of any software quality assurance and represents the ultimate
review of specification, design and code generation.

Software testing has a dual function; it is used to establish the presence of defects in
program and it is used to help judge whether or not the program is usable in practice. Thus
software testing is used for validation and verification, which ensure that software conforms to
its specification and meets the need of the software customer.
Developer resorted Alpha testing, which usually comes in after the basic design of the
program has been completed. The project scientist will look over the program and give
suggestions and ideas to improve or to correct the design. They also report and give after a
program has been created.

6.1 Features of Testing:


6.1.1 Testability:
Software Testability is simply how easily a computer program can be tasted. The check list
that follows provides a set of characteristics that lead to testable software.
Operability
Observables
Controllability
Decomposability
Simplicity
Stability
Understand ability

Following are the attributes of the Good Test:


A good test has a high probability of finding an error.
A good test is not redundant.
A good test should be Best of Breed.
A good test would be neither too simple nor too complex.

6.1.2 Compartmentalization:
In this step we divide the project into number of manageable activities and task like
Selection Module
System Admin data module
Dept. Admin data module
Store and assign rendered module
Employee data module
Task creation data module
Task allocation and reply data module
Testing Module

6.1.3 Interdependency:
Interdependencies of each compartmentalized activity were then found out. Some tasks
must occur in sequence while there are many tasks, which can occur in parallel.
6.1.4 Software Inspection:
Analyze and check system representations such as the requirements document, design,
diagrams and the program source code. They may be applied at all the stages of process.
Figure 7.1 (Testing Process)

6.2 Test Strategy:


6.2.1 The Testing Process:
Developer tests the software process activity such as design, implementation and the
requirement engineering. Because, design errors are very costly to repair when the system has
been started to operate. Therefore, it is quite obvious to repair them at early stage of the system.
So, analysis is the most important process of any project.
7.2.2 Requirements Tractability:
As most interested portion is whether the system is meeting its requirements or not, for
that testing should be planned so that all requirements are individually tested. Developer checked
the output of certain combinations of input, which gives desirable results, or not. Strictly stick to
our requirements specifications, give you the path to get desirable results from the system.
7.2.3 Tested Items:
Our tested items are like:
Data fetching from the database
Data insertion, updating and deleting in the database
Form access to particular login

7.2.4 Testing Schedule:


Developer has tested each procedure back to back so that errors and omissions can be
found as earliest as possible. Once the system has been developed by fully developer tested it on
other machines, which differs in configuration.

7.3 Testing Methods:


Software testing involves executing an implementation of the software which tests data
and examining the outputs of the software and its operational behavior to check that it is
performing as required.
7.3.1 Statistical Testing:
Statistical testing is used to test the programs performance and reliability and to check
how it works under operational conditions. Tests are designed to reflect the actual user inputs and
their frequency.
The stages involved in the static analysis for this system are follows:
Control Flow Analysis
Unreachable code
Unconditional branches into loops
Data Use analysis
Variable used before initialization
Variables declared but never used
Variables assigned twice but never used between assignments
Possible array bound violations
Declared variables
Interface Analysis
Parameter type mismatches
Parameter number mismatches
Non-usage of the results of function
Uncalled functions and procedures
Storage Management Faults
Data not stored in proper tables
Data cannot be fetched from proper table

7.3.2 Defect Testing:


Defect testing is intended to find inconsistencies between a program and its
specifications. These inconsistencies are usually due to the program faults or defects.
7.3.3 Unit Testing:
The Developer carries out unit testing in order to check if the particular module or unit of
code is working fine. The unit testing comes at the very basic level as it is carried out as and
when the unit of the code is developed or a particular functionality is built.
7.3.4 Loop Testing:
Tester has tested the some condition in a code of application. So they test the looping in source
code of application for finding miss route or any error or wrong direction of flow in code.
7.3.5 Black-Box Testing:
In black box testing or functional testing, the developer is concerned about the output of
the module and software, i.e. whether the software gives proper output as per the requirements or
not. In another words, these testing aim to test a program behavior against specification without
making any reference to the internal structure of the program or the algorithms used. Therefore,
the source code is not needed, and so even purchased modules can be tested. The program just
gets a certain input and its functionality is examined by observing the output.
This can be done in the following way:
Input Interface
Processing
Output Interface

The tested program gets certain inputs. Then the program does its job and generates a certain
output, which is collected by a second interface. This result is then compared to the excepted
output, which has been determined before the test.
7.3.6 Whitebox Testing:
It is also called GLASS BOX or STRUCTURAL testing. Tester has access to the system
design.
Simple Loops
Nested Loops
Concatenated Loops
Unstructured Loops
Continuous Loops
They can:
Examine the design document
View source code
Individual path examine
Logical path examine one time
Logical decision on their true and false
The intention in white-box testing is to ensure that all possible feasible flow of control
path through a sub-program is traversed while the software is under tested. This is not the same
as saying that all statements in the sub-program will be executed as it is possible for all
statements to be executed but for not all of the possible paths to be traversed. However, the
conversed is true; whether all the possible paths through a sub-program are traversed then all
statements in sub-programs will necessarily be executed.
When considering the number of possible paths through a sub-program two other factors
need to be remembered. The first is that some of the possible paths through a sub-program
turnout upon investigation to be non- feasible paths. The second consideration is that the number
of possible paths to a sub-program indicated by a flow-graph analysis will indicate the minimum
number of paths to ensure complete coverage. This may be less than the total number of paths
which are possible when combinations of paths are allowed.
White-box testing is used as an important primary testing approach. Here, code is
inspected to see what it does. Tests are designed to exercise the code. Code is tested using code
scripts driver etc. which are employed to directly interfaced with and drive the code.
The tester can analyze the code and used the knowledge about the structure of a
component to derive the test data.

Advantages of White box testing:


As the knowledge of internal coding structure is prerequisite, it becomes very easy to
find out which type of input / data can help in testing the application effectively.
The other advantage of white box testing is that it helps in optimizing the code.
It helps in removing the extra lines of code, which can bring in hidden defects.

7.3.7 Structure Testing:


Developer has done his path testing to exercise every independent execution path through
a component or program. If every independent path is executed then all statements in the
components must have been executed at least once. The structure of our program is also cheeked.

7.3.8 Integration Testing:


After our individual modules Developer tested out Developer go to the integrated to
create a complete system. This integration process involves building the system for problems
that arise from component interactions.
Developer has applied top-down strategy to validate high-level components of a system
before design and implementations have been completed. Because, our development process
started with high-level components and Developer worked down the component hierarchy.

7.3.9 Performance Testing:


Performance testing is designed to test the runtime performance of the system within the
context of the system. These tests Developer performed as module level as developer as system
level. Individual modules developers tested for required performance.

7.3.10 Condition Testing:


Condition testing is a test case design method that exercises the logical conditions
contained in a program module. If the condition is incorrect, then as least one part of the
condition is incorrect. It may include:
Boolean variable error
String index out of Bound error
Null pointer Assignment
Input Output Connection Exceptions
Arithmetic expression error
Parsing (conversion) errors
Image unloaded errors

7.3.11 Interface Testing:


Interface testing is integral part of integration testing. Therefore, developer checked for
the following.
Interface misuse
Interface misunderstanding

Developer examined the code to be tested and explicitly list each call to an external component.
In the system, standards tests for various modules have been performed, which are follows.
All the menu functions and sub menu functions have been checked.
Validations for all inputs are done.
All required fields are not left blank.

7.3.12 Object Testing:


Object testing is to test object as individual components, which are often larger than
single function. Here following activities have taken place.
Testing the individual operations associated with object.

Testing individual object classes.

Testing cluster of objects.

Testing object oriented systems.

Now we will discuss how testing and debugging is done of this application. Our application can
be divided into parts like:
To make queries to database and retrieve information from it.

Reduce some memory requirements for the database.


Maintain database so that unauthorized access cannot affect.

7.1 System Implementation:


Implementation is the stage where theory is converted into practical. The implementation is a
vital step in ensuring the success of new systems. Even a well-designed system can fail if it is
not properly implemented.

IMPLEMENTATION

SYSTEM END USER ACQUISITION


S/W
DOCUMENTATION TRAINNING OF H/W,S/W &
DEVELOPMENT OR
SERVICES
MODIFICATION

HOW THINGS WORKED:


.

Prerequisites:

1. Android working with Volley Library Used to make HTTP calls.


2. Android Login and Registration Screen Design Explained the designing of Login and
Registration screens.
API (Application Programming Interface)
Folllowing
Bibliography:
http://www.androidhive.info/2012/01/android-login-and-registration-with-php-mysql-and-
sqlite/

https://en.wikipedia.org/wiki/WampServer

https://en.wikipedia.org/wiki/PHP

https://www.google.co.in/search?
q=connecting+android+with+php+mysql+flowcharts+and+diagrams&tbm=isch&tbo=u&source=
univ&sa=X&ved=0ahUKEwiJ67zggI3UAhUBNo8KHSDOCTsQ7AkIPQ&biw=1366&bih=609#imgrc=
_

https://en.wikipedia.org/wiki/Android_Studio