Project Report Final - Find My Tutor
Project Report Final - Find My Tutor
at
BACHELOR OF ENGINEERING
in
COMPUTER SCIENCE & ENGINEERING
Submitted by:
Name - Abhishek Mishra
University ID - 17BCS2542
CHANDIGARH UNIVERSITY,GHARUAN,MOHALI
CONTENTS
Candidate’s Declaration i
Abstract ii
Acknowledgement iii
Table of contents iv
2.1 XML 13
2.2 Android 20
2.3 PHP 25
2.4 Database 31
2.5 SQL 34
3.1 Diagrams __
3.2 Table Structure __
3.3 Screenshots
3.4
4.1 Conclusion __
4.2 Future Scope __
REFERENCES __
CANDIDATE'S DECLARATION
I “ABHISHEK MISHRA” hereby declare that I have undertaken six weeks industrial training at
“SPIC Centre of Excellence” during a period from 3rd June to 15th July in partial fulfillment of
requirements for the award of degree of B.E (COMPUTER SCIENCE & ENGINEERING) at
The six weeks industrial training Viva–Voce Examination of__________________ has been
held on ____________ and accepted.
The era of mobile technology opens the windows to the Android App. The websites are
vanishing and the mobile phones are emerging. It’s time to change from conventional websites to
App’s, which has become the part of our daily routine.
Now a days these computers and internet are providing every information as a knowledge
source. Even though everything is automated in the field of learning we prefer for traditional
method. In this busy world searching of tutors for any subject is a very difficult job. In order to
make it simple here with we proposed an idea to find a subject expert tutor through android
application ‘Find My Tutor’. The proposed work has the common platform where the teacher
and the student can access on their respective available views. In this application students can
register and view the availability of the subject expert based on the registered nearest location of
the tutor. The locations are mapped based on the latitude and longitudinal of the students. Based
on the students’ selection the slot of days and tutor will be blocked for their special classes and
then they will be intimated through notifications. This system will be helpful for students and the
parents to find the tutor in the nearby location
The development for an android device and its data traffic characteristics is of interest, which is
also included in this report. This report also includes existing systems in android. This report also
includes flow charts etc. regarding my project. This report serves as a guideline to intermediate
developers, seeking solutions to problems.
Find My Tutor
ACKNOWLEDGEMENT
I would like to express My whole hearted gratitude towards my esteemed guide Mr. Ashok
Kashav for his able guidance, monitoring and encouraging attitude and searching supervision
throughout my study which enable me to successfully complete my project. Without his help and
valuable suggestion, this report would not have been the light of the day. The blessing, help and
guidance given by him time to time shall carry me a long way in the journey of life on which I
am about to embark.
Lastly, I would like to thank almighty and my parents for their moral support and my friends
with whom I shared my day-to-day experience and received lots of suggestions that improved
my quality of work.
TABLE OF CONTENTS
Introduction to Company
Introduction to Project
Android Introduction
Definition
Versions of Android
Features of Android
Android Architecture
Android Core Building Blocks
Overview of the Project
Project Name and Its Introduction
Scope of the Project
Benefits
Existing Systems and Proposed Systems
Existing System and its Advantages
Proposed Systems and its Advantages
User Requirement Analysis
Functional Requirements
Operational Requirements
Software Requirements Specifications
Feasibility Study
Definition
Types of Feasibility Study
Objective Of The Project
Technologies Used
Front and Back End
Front - End
XML
What Is XML?
Difference Between XML and HTML
How XML Simplifies Things?
Different XML Files Used in Android
Features Of XML
How XML Separates from HTML
XML simplifies Data Sharing
ANDROID
Definition
Features of Android
Applications of Android
Versions Of Android
Description of Android Versions
Android Architecture
Android Core Building Blocks
Back – End
PHP
Definition
What is a PHP File?
Why PHP?
What do I Need?
PHP Variables
Global and Local Scope
PHP Data Types
Features of PHP
DATABASE
What is Data?
What is Database?
What is SQL?
Product Design
Product Prospective
Product Functions
User Characteristics
Operating Environment
Constraints
System Design
System Design
Detailed Design
Database Design
Determining Data to be Stored
Logically Structuring Data
ER – Diagrams
Definition
Example of ER Diagram
Assumptions and Dependencies
Dependencies
Software Component Dependencies
Database Tables OR Table Structure
Data Flow Diagrams (DFD)
Definition
DFD Symbols
DFD Diagrams
Specific Requirements
Hardware Requirements
Software Requirements
Implementation
Introduction to Languages
Any Other Supporting Languages
Implementation with Screenshots/Figures
Testing
Definition
Need For Testing
Types of Testing
Selection of Test Cases
Functional Testing
Structural Testing
Test Plan
Steps Followed in Testing Overall Software
Conclusion and Future Scope
Conclusion
Scope
References/ Bibliography
INTRODUCTION TO COMPANY
The Society for Promotion of IT in Chandigarh (SPIC) has been set up under the aegis of the
Department of Information Technology, Chandigarh Administration for implementing the
various plans of the Administration to promote the IT industry in Chandigarh. The Chairperson
of the Society is the Adviser to the Administrator.
OBJECTIVES
To promote application of Information Technology in the Union Territory of Chandigarh in
accordance with the IT Policy of Chandigarh Administration.
To carry out all such activities that are commensurate with the IT vision of the Chandigarh
Administration as outlined in IT Policy.
To promote e-Governance, Software Exports, create IT Infrastructure, generate jobs in IT as
outlined in the IT Mission of the Chandigarh Administration.
To facilitate the establishment and functioning of data processing computer centres.
To provide consultancy services and impart training in various disciplines of Information
Technology.
To facilitate the development of software packages as well as related items and undertake turn
key project / assignments in India and abroad in Information Technology by public and private
sector companies in the Union Territory of Chandigarh in order to promote the application of
Information Technology for the benefit of citizens of Chandigarh.
S.R.
OCCUPATION & ADDRESS DESIGNATION
NO
The era of mobile technology opens the windows to the Android App. The websites are
vanishing and the mobile phones are emerging. It’s time to change from conventional websites to
App’s, which has become the part of our daily routine. We are introducing the ‘Find My Tutor’
the android application, the mini tuition finder app, is an aim to to find a subject expert tutor. The
proposed work has the common platform where the teacher and the student can access on their
respective available views.
WHAT IS ANDROID??
Android is a software package and linux based operating system for mobile devices such as
tablet computers and smartphones,.
It is developed by Google and later the OHA (Open Handset Alliance). Java language is mainly
used to write the android code even though other languages can be used.
The goal of android project is to create a successful real-world product that improves the mobile
experience for end users.
There are many code names of android such as Lollipop, Kitkat, Jelly Bean, Ice cream
Sandwich, Froyo, Ecliar, Donut etc.
It's a consortium of 84 companies such as Google, Samsung, AKM, synaptics, KDDI, Garmin,
Teleca, EBay, and Intel etc.
It was established on 5th November, 2007, led by Google. It is committed to advance open
standards, provide services and deploy handsets using the Android Platform.
Features of Android:-
After learning what is android, let's see the features of android. The important features of android
are given below:
1) It is open-source.
3) There are a lot of mobile applications that can be chosen by the consumer.
4) It provides many interesting features like weather details, opening screen, live RSS (Really
Simple Syndication) feeds etc.
5) It provides support for messaging services(SMS and MMS), web browser, storage (SQLite),
connectivity (GSM, CDMA, Blue Tooth, Wi-Fi etc.), media, handset layout etc.
Let's see the android versions, codenames and API Level provided by Google.
1.5 Cupcake 3
1.6 Donut 4
2.1 Éclair 7
2.2 Froyo 8
4.4 KitKat 19
5.0 Lollipop 21
Alpha – In this (Android 1.0) was the first versions of Android operating System by Google. It has basic
functionality with a simple browser and other Google apps like Gmail, Maps and YouTube.
Beta – Later on with Android 1.1 few more functionality added, the API changes from Level 1in
Android 1.0 to Level 2. It supports attachment with MMS.
Cupcake – Cupcake was Android second version with new features as well as the Androidframework
API updated. It was Android 1.5 with on Screen Keyboard , Bluetooth and Updated UI for applications.
Donut – It was Android 1.6 nicknamed as DONUT. It added support for CDMA, additionalscreen sizes,
talk to speech engine and battery indicator.
Éclair – Android 2.0-2.1 as like other versions this also come up with a nickname as ÉCLAIRand lot
more functions & features. It come up with Bluetooth 2.1, live wallpaper, HTML 5support, ability to
search sms & mms, flash support, digital zoom and more camera features.
Froyo – Android version 2.2-2.2.3 introduced with USB tethering & WiFi hotspot functionality and
apps can now be installed on memory card. Support Adobe flash, increased speed and performance of
applications with new features.
Gingerbread – Gingerbread (Android 2.3-2.3.7) introduced with updated User Interface which provide
more ease to use. Features are like sensors, multiple cameras(Front & back), virtual keyboard, better text
suggestion, voice input capability and press hold copy paste capability.
Honeycomb – This Android platform Honeycomb was designed for large screens like tablets so
interface elements like virtual keyboard optimized for bigger screen. Home screen is optimized, tabs are
introduced in browser with additional incognito mode and video chat & Gtalk is supported.
Ice Cream Sandwich – Ice Cream sandwich come in 2011 bringing all new look. It gives more ease to
user like user can quickly swipe to close the apps, new gallery layout and built in photo editor.
Jelly Bean – Google made Operating System more responsive with Jelly Bean and introduces file
sharing with Android Beam. Restricted profile, Dial Pad complete, supported other languages like
Hindi, changed camera UI.
KitKat – Kitkat come up in 2013 with API Level 19. It has wireless printing capability, new dailer id,
chrome webview and screen recording.
Lollipop – Android version 5.0-5.1.1 come up with improved RAM and battery management. Further
restyling through Material design, no interrupts feature, unlock phone through Bluetooth trusted devices,
print previews and smart lock feature.
Marshmallow – Marshmallow was released in year 2015, come up with smarter battery and doze mode
(it prevents certain task from running if the phone being setting idle), Now On Tap, better privacy
settings, easier to upgrade phone, Fingerprint sensor and built in visual voice mail.
Nougat – Android Nougat was made official in 2016 with updated emoji, 72 newly added, multi
window view (switch between apps with double tap), smarter battery with data saver mode, more
secured and high quality virtual reality with new dimensions.
Android Architecture:-
linux kernel
native libraries (middleware),
Android Runtime
Application Framework
Applications
An android component is simply a piece of code that has a well defined life cycle e.g. Activity,
Receiver, Service etc.
The core building blocks or fundamental components of android are activities, views, intents,
services, content providers, fragments and AndroidManifest.xml.
Activity :-
View :-
A view is the UI element such as button, label, text field etc. Anything that you see is a view.
Intent :-
Service:-
There are two types of services local and remote. Local service is accessed from within the
application whereas remote service is accessed remotely from other applications running on the
same device.
Content Provider:-
Fragments are like parts of activity. An activity can display one or more fragments on the screen
at the same time.
AndroidManifest.xml:-
It contains informations about activities, content providers, permissions etc. It is like the
web.xml file in Java EE.
It is used to test the android application without the need for mobile or tablet etc. It can be
created in different configurations to emulate different types of real devices.
OVERVIEW OF PROJECT
A project in Android Studio contains everything that defines your workspace for an app, from
source code and assets, to test code and build configurations. The name of My Project is Find
My Tutor. The main aim of the Tuition Finder Java Project is to complement the efforts of
teachers to integrate technology and link the students to the Internet in educationally productive
ways. It provides a friendly interactive environment. We have developed an Android application
to help students to take extra classes. This application helps to schedule their tuition classes with
tutors. Therefore students can clear their doubts easily. Students can search for their tutors based
on subject and location. Staffs who are convenient can found and the tuition timings can be
scheduled. On getting a prompt message from the staff, the schedule of the tutor is made visible
for the students. Students can view the schedule and book their appointment similar to cinema
ticket booking.
SCOPE:-
This application will be a substitute for the official websites of universities and colleges. This
application will be designed to maximize the ease of use of official website of universities and
colleges in mobile view.
Specifically, the application is designed to communicate and to notify the updates from the
university website. The application will facilitate interface between students, the universities and
colleges via database. The scope of this project is to provide the information of all the
universities. The scope of android app development in IT and other sectors in India can be
evaluated from the fact that many of the IT Industries generate their revenue majorly through
their online android applications.
BENEFITS:-
Low Investment: Android is an open source platform and the software development kit
(SDK) is freely available to developers. Further, being a JavaScript based platform, it is
easy to master and execute.
Easy customization: Android offers versatility with easy customization options, thus
enabling developers to create applications with diverse functionalities. Whether it is
complex technical customization or web application integration, Android provides ample
space for executing customizations.
EXISTING SYSTEMS
DEFINITION: In Existing System, we have seen over the years that the process of
booking the appointments is a long and tiresome process. It is a tasking process in which
patients have to either stand in long lines or contact the hospitals directly in order to
approach the doctor of their choice . Also their isn’t any proper protocol for the doctors to
cancel the appointment. Therefore DOCAPP is an attempt to present all the doctors on a
single platform and bridge the existing gap.
DISADVANTAGES OF EXISTING SYSTEM: The process is very much time
consuming.
PROPOSED SYSTEM
DEFINITION: The proposed system which would be a miniature of hospitals and
doctors in one website. The information and notifications can be easily accessed by one
touch on the android application. Our system primarily focuses on building an efficient
an user friendly Android Mobile Application for Find My Tutor. The application will be
installed on the user’s smartphone. It intends to provide an interface to the user who will
require the details of particular teachers. Apart from that, the application would support
strong user authentication and quick transmission of data via the web service.
Every new activity, every new product, every new project in the workplace is created in response
to a business need. Yet we often find ourselves in situations where, despite spending tremendous
time and resources, there's a mismatch between what has been designed and what is actually
needed.
To make analysis easier, consider grouping the requirements into these four categories:
Operational Requirements – These define operations that must be carried out in the
background to keep the product or process functioning over a period of time.
Technical Requirements – These define the technical issues that must be considered to
successfully implement the process or create the product.
Transitional Requirements – These are the steps needed to implement the new product or
process smoothly.
INTRODUCTION
PURPOSE:
The purpose of this project is to present a detailed description of android application
‘Findmytutor.apk’. It will explain the importance and features of the application, the interface of
the application, what the application will do, the constraints under which it must operate.
DOCUMENT CONVENTIONS:
FEASIBILITY STUDY
There are four main feasibility assessments for technology projects. As many mobile (and
digital) projects are customer facing, as opposed to just internal to the organization, it is essential
to add a fifth: go-to-market feasibility.
Technical feasibility
Schedule feasibility
Operational feasibility
Economic feasibility
The good news is that mobile projects fair a lot better. According to the Standish Group Chaos
Database 2015, 69% of mobile projects finish on time, on budget and with a satisfactory
outcome, compared with only 29 percent in non-mobile projects.
This success rate is probably helped by the fact that mobile projects for large organizations tend
to be smaller and involve less integration with existing company IT infrastructure.
The bad news is that 26% of mobile projects are delivered late, over budget or with an
unsatisfactory result and an additional 5% fail (cancelled or not used). To avoid your project
joining the unsuccessful third, you need to undertake a comprehensive technology feasibility
study.
Operational Feasibility
Where technical feasibility considers if it is technically possible, operational assessment asks: is
the organization ready for the project and its impact and what are the business, cultural, legal etc.
hurdles that might stop it working in practice?
There is some overlap with business fit in the previous column, which considered how the
project fitted with corporate culture and the need to establish stakeholder goals.
But the operational feasibility goes much deeper and much broader than this.
Schedule feasibility
This step evaluates if the project can be delivered on time and if the time frame is realistic. Time
to market is particularly important for mobile projects as the motivation is often to a) exploit a
gap in the market; b) meet an identified customer or business need; or c) it is planned to coincide
with a particular event e.g. sporting; product launch; or promotion.
How long each element of the development process will take, including design, testing and
revisions.
Accounting for operational issues such as training staff, internal politics, arranging licenses and
third-party relationships and ironing out legal issues.
If adequate provision has been made for scheduling maintenance and regular updates post
launch.
This process helps evaluate if the project should/could be simplified to ensure faster speed to
market by introducing efficiencies and/or saving features for the first scheduled update.
Economical Feasibility
Economic analysis is the most frequently used method for the effectiveness of a candidate
system. More commonly known as cost/benefit analysis, the procedure is to determine the
benefits and savings that are expected from a candidate system and compare them with costs. It
benefits outweigh costs, then the decision is made to design and implement the system.
Otherwise, further justification or alterations in the proposed system will have to be made if it is
to have a chance of being approved. This is an ongoing effort that improves in accuracy at each
phase of system lifecycle. In today’s world the two important factors that judge the success of an
online project is the Data Security and Speed of the Data Access.
The Objective of the Project is to develop tools such as Listeners, and using various Layouts and
Widgets in Android Applications. The candidates create interactive applications in smart phone
with multiple activities including audio, video and notifications. They learn how to create
applications using SQLite database and publish App on Google Play.
The main Objective of the Project is to save time of the user and it helps the user to build
and deploy his/ her Android application.
This project helps the Students to understand the operation of the application, application
lifecycle, configuration files, intents, and activities.
The candidates may also have an in-depth understanding of broadcast receivers and
services.
The networking capabilities such as JAVA Sockets, JAVA XML and JSON are taught.
The trainee may develop a basic application that acts as a working example of all the
topics covered in the class.
TECHNOLOGIES USED
FRONT-END USED:
XML: XML stands for Extensible Markup Language. XML is a markup language much
like HTML used to describe data. XML tags are not predefined in XML. We must define our
own Tags. Xml as itself is well readable both by human and machine. Also, it is scalable and
simple to develop. In Android we use xml for designing our layouts because xml is lightweight
language so it doesn’t make our layout heavy.
XML stores data in plain text format. This provides a software- and hardware-independent way
of storing, transporting, and sharing data.
XML also makes it easier to expand or upgrade to new operating systems, new applications, or
new browsers, without losing data.
With XML, data can be available to all kinds of "reading machines" like people, computers,
voice machines, news feeds, etc.
XML Elements:
An XML document contains XML Elements.An XML element is everything from (including)
the element's start tag to (including) the element's end tag.An element can contain:
text
attributes
other elements
or a mix of the above
XML elements can have attributes, just like HTML.Attributes are designed to contain data
related to a specific element.XML Attributes must be Quoted. Attribute values must always be
quoted. Either single or double quotes can be used.
What is X-Query?
X-Query is to XML what SQL is to databases’-Query was designed to query XML data.
2. Manifest xml File(Mainfest.xml): This xml is used to define all the components of our
application. It includes the names of our application packages, our Activities, receivers, services
and the permissions that our application needs. For Example – Suppose we need to use internet
in our app then we need to define Internet permission in this file.
Location in Android Studio:
It is located inside app > manifests folder
3. Strings xml File(strings.xml): This xml file is used to replace the Hard-coded strings with
a single string. We define all the strings in this xml file and then access them in our app(Activity
or in Layout XML files) from this file. This file enhance the reusability of the code.
Location in Android Studio:
4. Styles xml File(styles.xml): This xml is used to define different styles and looks for the
UI(User Interface) of application. We define our custom themes and styles in this file.
XML is widely used in the era of web development. It is also used to simplify data storage and
data sharing.
If you need to display dynamic data in your HTML document, it will take a lot of work to edit
the HTML each time the data changes.
With XML, data can be stored in separate XML files. This way you can focus on using
HTML/CSS for display and layout, and be sure that changes in the underlying data will not
require any changes to the HTML.
With a few lines of JavaScript code, you can read an external XML file and update the data
content of your web page.
In the real world, computer systems and databases contain data in incompatible formats.
XML data is stored in plain text format. This provides a software- and hardware-independent
way of storing data.
This makes it much easier to create data that can be shared by different applications.
One of the most time-consuming challenges for developers is to exchange data between
incompatible systems over the Internet.
Exchanging data as XML greatly reduces this complexity, since the data can be read by different
incompatible applications.
ANDROID
Android is a software package and linux based operating system for mobile devices such as
tablet computers and smartphones.
It is developed by Google and later the OHA (Open Handset Alliance). Java language is mainly
used to write the android code even though other languages can be used.
The goal of android project is to create a successful real-world product that improves the mobile
experience for end users.
There are many code names of android such as Lollipop, Kitkat, Jelly Bean, Ice cream
Sandwich, Froyo, Ecliar, Donut
etc.
Features of Android
After learning what is android, let's see the features of android. The important features of android
are given below:
1) It is open-source.
3) There are a lot of mobile applications that can be chosen by the consumer.
4) It provides many interesting features like weather details, opening screen, live RSS (Really
Simple Syndication) feeds etc.
It provides support for messaging services(SMS and MMS), web browser, storage (SQLite),
connectivity (GSM, CDMA, Blue Tooth, Wi-Fi etc.), media, handset layout etc.
Applications
• Each component performs a different role in the overall application behavior, and each one
can be activated individually (even by other applications).
• The manifest file must declare all components in the application and should also declare all
application requirements, such as the minimum version of Android required and any hardware
configurations required.
• Non-code application resources (images, strings, layout files, etc.) should include
alternatives for different device configurations (such as different strings for different languages).
Google, for software development and application development, had launched two competitions
ADC1 and ADC2 for the most innovative applications for Android. It offered prizes of USD 10
million combined in ADC1 and 2. ADC1 was launched in January 2008 and ADC 2 was
launched in May 2009. These competitions helped Google a lot in making Android better, more
user friendly, advanced and interactive.
Let's see the android versions, codenames and API Level provided by Google.
Android Architecture
Linux Kernel
Native Libraries (middleware),
Android Runtime
Application Framework
Applications
An android component is simply a piece of code that has a well defined life cycle e.g. Activity,
Receiver, Service etc.
The core building blocks or fundamental components of android are activities, views, intents,
services, content providers, fragments and AndroidManifest.xml.
Activity:
View:
A view is the UI element such as button, label, text field etc. Anything that you see is a view.
Intent:
Service
There are two types of services local and remote. Local service is accessed from within the
application whereas remote service is accessed remotely from other applications running on the
same device.
Content Provider
Fragment
Fragments are like parts of activity. An activity can display one or more fragments on the screen
at the same time.
AndroidManifest.xml
It contains information about activities, content providers, permissions etc. It is like the web.xml
file in Java EE.
Android Virtual Device (AVD)
It is used to test the android application without the need for mobile or tablet etc. It can be
created in different configurations to emulate different types of real devices.
BACK-END USED:
PHP:
DEFINITION:
PHP files can contain text, HTML, CSS, JavaScript, and PHP code
PHP code are executed on the server, and the result is returned to the browser as plain
HTML
PHP files have extension ".php"
With PHP you are not limited to output HTML. You can output images, PDF files, and even
Flash movies. You can also output any text, such as XHTML and XML.
Why PHP?
What Do I Need?
If your server has activated support for PHP you do not need to do anything.
Just create some .php files, place them in your web directory, and the server will automatically
parse them for you.
In PHP, a variable starts with the $ sign, followed by the name of the variable:
Example:
<?php
$x= "Helloworld!";
$x= 5;
$y= 10.5;
?>
PHP Variables:
A variable can have a short name (like x and y) or a more descriptive name (age, car name, total
volume).
A variable starts with the $ sign, followed by the name of the variable
A variable name must start with a letter or the underscore character
A variable name cannot start with a number
A variable name can only contain alpha-numeric characters and underscores (A-z, 0-9,
and)
Variable names are case-sensitive ($age and $AGE are two different variables)
Output Variables
The PHP echo statement is often used to output data to the screen.
In the example above, notice that we did not have to tell PHP which data type the variable is.
PHP automatically converts the variable to the correct data type, depending on its value.
In other languages such as C, C++, and Java, the programmer must declare the name and type of
the variable before using it.
The scope of a variable is the part of the script where the variable can be referenced/used.
local
global
static
A variable declared outside a function has a GLOBAL SCOPE and can only be accessed outside
a function.
A variable declared within a function has a LOCAL SCOPE and can only be accessed within
that function.
Variables can store data of different types, and different data types can do different things.
String
Integer
Float (floating point numbers - also called double)
Boolean
Array
Object
NULL
Resource
PHP String
A string is a sequence of characters, like "Hello world!".A string can be any text inside quotes.
You can use single or double quotes.
PHP Integer
PHP Array
PHP Operators
Operators are used to perform operations on variables and values.PHP divides the operators in
the following groups:
Arithmetic operators
Assignment operators
Comparison operators
Increment/Decrement operators
Logical operators
String operators
Array operators
Features of PHP: It is most popular and frequently used worldwide scripting language,
the main reason of popularity is; It is open source and very simple.
Simple
Faster
Interpreted
Open Source
Case Sensitive
Simplicity
Efficiency
Platform Independent
Security
Flexibility
Familiarity
Simple
It is very simple and easy to use, compare to other scripting language it is very simple and
easy.
Interpreted
Open Source
Open source means you no need to pay for use php, you can free download and use.
Platform Independent
PHP code will be run on every platform, Linux, UNIX, Mac OS X, and Windows.
Case Sensitive
PHP is case sensitive scripting language at time of variable declaration. In PHP, all keywords
(e.g. if, else, while, echo, etc.), classes, functions, and user-defined functions are NOT case-
sensitive.
DATABASE
What is Data?
In simple words data can be facts related to any object in consideration. For example your name,
age, height, weight, etc are some data related to you. A picture, image, file, pdf etc can also be
considered data.
What is a Database?
Database is a systematic collection of data. Databases support storage and manipulation of data.
Databases make data management easy.
An online telephone directory would definitely use database to store data pertaining to people,
phone numbers, other contact details, etc.
Your electricity service provider is obviously using a database to manage billing, client related
issues, to handle fault data, etc.
Face book needs to store, manipulate and present data related to members, their friends, member
activities, messages, advertisements and lot more.
What is SQL?
PRODUCT DESIGN
PRODUCT PERSPECTIVE:
The ‘DOCAPP’ application will be a new android based online application. It will be
implemented with SDK Manager.
PRODUCT FUNCTIONS:
The product should have an easy to use main menu, from which the rest of the features or
functions can be accessed.
USER CHRACTERSTICS:
Our application hopes to draw on three main user groups. The students almost all of them have
smart phones. About half of those smart phones are android, and more than half of those Android
phones are fit to run DOCAPP’. These users are obsessed with social media, and almost all of
them actively use at least one of the following: Facebook, Twitter, Instagram, and Whatsapp.
The application will be helpful to patients, doctors, hospitals , those are not familiar with many
of the hospitals and doctors. Members of this group may be interested in learning more about
hospitals and doctors.
The group that is probably going to be using the app most and thus the most important group is
the patients.
OPERATING ENVIRONMENT:
The application will only be available for the Android Operating Systems. The application shall
only be used with compatible android devices. The user shall use this application on Android OS
2.2(API 28) or any later version of the Android OS.
CONSTRAINTS:
Resource Limits:
The user’s device shall have a working data plan or wifi connection.
The user’s device shall have sufficient memory storage to install the application.
The user’s device shall have sufficient battery life to run the application.
SYSTEM DESIGN:
The design of an information system produces the details that clearly describe- how a system
will need the requirement, identified during the system analysis. System specialist often refers to
this stage or logical design, in contrast to process of developing program software, which is
referred to as a physical design. The system describes the data to be input, calculated or stored.
Designers are responsible for providing programmers with complete and clear outlined software
specifications. Design is essentially the bridge between requirement specification and the final
solution for satisfying the requirement DESIHN PHASE.
The goal of the design process is to produce a model or representation of a system on the
basis of which a system can be designed. The design process for software can be divided
into 2 different phases:
System Design
Detailed Design
SYSTEM DESIGN:
This is the first level and it focuses on deciding which module is needed for the system, the
specification of the modules, and how the modules should be interconnected so that
combination of these provides the desired output. That is what is called System Design.
DETAILED DESIGN:
The internal logic and working of each module described in system design is decided in this
phase.
DATABASE DESIGN
Database design is the process of producing a detailed data model of a database. This data
model contains all the needed logical and physical design choices and physical storage
parameters needed to generate a design in a data definition language, which can then be used to
create a database. A fully attributed data model contains detailed attributes for each entity.
The term database design can be used to describe many different parts of the design of an
overall database system. Principally, and most correctly, it can be thought of as the logical design
of the base data structures used to store the data. In the relational model these are the
tables and views. In an object database the entities and relationships map directly to object
classes and named relationships. However, the term database design could also be used to apply
to the overall process of designing, not just the base data structures, but also the forms and
queries used as part of the overall database application within the database management system
(DBMS).
The process of doing database design generally consists of a number of steps which will be
carried out by the database designer. Usually, the designer must:
In a majority of cases, a person who is doing the design of a database is a person with expertise
in the area of database design, rather than expertise in the domain from which the data to be
stored is drawn e.g. financial information, biological information etc. Therefore, the data to be
stored in the database must be determined in cooperation with a person who does have expertise
in that domain, and who is aware of what data must be stored within the system.
This process is one which is generally considered part of requirements analysis and requires skill
on the part of the database designer to elicit the needed information from those with the domain
knowledge. This is because those with the necessary domain knowledge frequently cannot
express clearly what their system requirements for the database are as they are unaccustomed to
thinking in terms of the discrete data elements which must be stored. Data to be stored can be
determined by Requirement Specification.
Database designs also include ER diagrams. An ER diagram is a diagram that helps to design
databases in an efficient way.
Attributes in ER diagrams are usually modelled as an oval with the name of the attribute, linked
to the entity or relationship that contains the attribute. Relational Database
NORMALIZATION
In the field of relational database design, normalization is a systematic way of ensuring that a
database structure is suitable for general-purpose querying and free of certain undesirable
characteristics—insertion, update, and deletion anomalies that could lead to loss of data integrity.
A standard piece of database design guidance is that the designer should create a fully
normalized design; selective denormoralization can subsequently be performed, but only
for performance reasons. However, some modelling disciplines, such as the dimensional
modelling approach to data design, explicitly recommend non-normalized designs, i.e. designs
that in large part do not adhere to 3NF. Normalization consists of normal forms that are 1NF,
2NF, 3NF, BOYCE-CODD NF (3.5NF), 4NF and 5NF
Schema refinement
Schema refinement of the database specifies that the data is normalized to reduce data
insufficiency and conflicts.
Physical design
The physical design of the database specifies the physical configuration of the database on the
storage media. This includes detailed specification of data elements, data types, indexing options
and other parameters residing in the DBMS data dictionary. It is the detailed design of a system
that includes modules & the database's hardware & software specifications of the system
Dependencies:
The application shall be used with the assumption the Android API and licensing agreement
remains the same.
Software Component Dependencies:
The application shall be used with the assumption that the built in camera application operates
correctly.
The Application shall be used with the assumption that the device’s Network Interface Card
(NIC) and the driver are operating correctly.
TABLE STRUCTURE
In a project, Database Tables are the most important component. It is where the data is actually
stored. These tables are not shown to the user. The user has access to the data stored in these
tables through the forms made in the front-end tool by the programmer. In this project, PHP is
used as a backend tool. The database used in our project consists of the following tools:
Table Number - #1
Table Number - #2
Table Number - #4
Table Number - #5
Table Number - #6
Table Number - #8
A data flow diagram (DFD) maps out the flow of information for any process or system. It uses
defined symbols like rectangles, circles and arrows, plus short text labels, to show data inputs,
outputs, storage points and the routes between each destination. Data flowcharts can range from
simple, even hand-drawn process overviews, to in-depth, multi-level DFDs that dig progressively
deeper into how the data is handled. They can be used to analyze an existing system or model a
new one. Like all the best diagrams and charts, a DFD can often visually “say” things that would
be hard to explain in words, and they work for both technical and nontechnical audiences, from
developer to CEO. That’s why DFDs remain so popular after all these years. While they work
well for data flow software and systems, they are less applicable nowadays to visualizing
interactive, real-time or database-oriented software or systems.
The DFD was first developed by Larry Constantine as a way of expressing system requirements
ina graphical form. A DFD also known as a bubble chart has a purpose of clarifying system
requirements and identifying major transformation that will become the program in the system
design.
DFD SYMBOLS
Using any convention’s DFD rules or guidelines, the symbols depict the four components of data
flow diagrams.
1. External entity: an outside system that sends or receives data, communicating with the
system being diagrammed. They are the sources and destinations of information entering
or leaving the system. They might be an outside organization or person, a computer
system or a business system. They are also known as terminators, sources and sinks or
actors. They are typically drawn on the edges of the diagram.
2. Process: any process that changes the data, producing an output. It might perform
computations, or sort data based on logic, or direct the data flow based on business rules.
A short label is used to describe the process, such as “Submit payment.”
3. Data store: files or repositories that hold information for later use, such as a database
table or a membership form. Each data store receives a simple label, such as “Orders.”
4. Data flow: the route that data takes between the external entities, processes and data
stores. It portrays the interface between the other components and is shown with arrows,
typically labelled with a short data name, like “Billing details.”
HARDWARE REQUIREMENTS:
Processor32 bit(minimum)-64 bit(maximum)(Intel Core i3, 1.8GHz)
RAM 4 GB
Hard Disk 4GB
SOFTWARE REQUIREMENTS:
Android Studio
Xampp Server
Notepad++
Browser like Internet Explorer, Mozilla, Chrome
OPERATING SYSTEM:
WINDOWS7 , WINDOWS 8, WINDOWS 10
IMPLEMENTATION
Once the physical system has been designed in detail, the next stage is to turn the design into a
working system. Implementation is the stage of a project during which the design of a system is
tested, debugged and made operational. Thus, it can be considered to be the most crucial stage in
achieving a successful new system and in giving the users confidence that the new system will
work and be effective. In order to implement the proposed system the following are the various
hardware and software requirements are required to achieve good performance.
DATABASE
What is Data?
In simple words data can be facts related to any object in consideration. For example your name,
age, height, weight, etc are some data related to you. A picture , image , file, pdf etc can also be
considered data.
What is a Database?
Database is a systematic collection of data. Databases support storage and manipulation of data.
Databases make data management easy.
An online telephone directory would definitely use database to store data pertaining to people,
phone numbers, other contact details, etc.
Your electricity service provider is obviously using a database to manage billing, client related
issues, to handle fault data, etc.
Facebook needs to store, manipulate and present data related to members, their friends, member
activities, messages, advertisements and lot more.
What is SQL?
Structured Query language (SQL) pronounced as "S-Q-L" or sometimes as "See-Quel"is
actually the standard language for dealing with Relational Databases.SQL programming can be
effectively used to insert, search, update, delete database records. That doesn't mean SQL cannot
do things beyond that. In fact it can do lot of things including, but not limited to, optimizing and
maintenance of databases.
Testing is the major quality control measure employed during software development. Testing is
the process of executing a program with the intent of finding an error. No piece of code is
completely ready unless it has been fully tested. This stage is very important as at this stage it is
verified whether the code developed meet the requirement specifications or not. Moreover, all
validations are also checked in the testing stage.
Testing is vital to success of the system. Testing makes a logical assumption that if all the parts
of the system are Correct, the goal will be successfully achieved. Inadequate testing or non-
testing leads to errors that may not appear until months later. A small system error can
conceivably explode into a much larger problem effective testing early in the process translates
directly into long-term cost saving from a reduced number of errors.
Second reason for testing is its utility as a user-oriented vehicle before implementation.
Finally, Testing leads to software reliability. Identifying and removing faults, during testing can
make the software more reliable. This increases user’s confidence in the system.
Types of testing:
Unit Testing
Integration Testing
Functional Testing
System Testing
Stress Testing
Performance Testing
Usability Testing
Acceptance Testing
Regression Testing
Beta Testing
These different levels of testing attempt to detect different types of faults. The relation of the
faults introduced in different phases, and the different levels of testing are shown:
UNIT TESTING:
Unit testing is the testing of an individual unit or group of related units. It falls under the class of
white box testing. It is often done by the programmer to test that the unit he/she has implemented
is producing expected output against given input.
INTEGRATION TESTING:
Integration testing is testing in which a group of components are combined to produce output.
Also, the interaction between software and hardware is tested in integration testing if software
and hardware components have any relation. It may fall under both white box testing and black
box testing.
SYSTEM TESTING:
System testing is the testing to ensure that by putting the software in different environments (e.g.,
Operating Systems) it still works. System testing is done with full system implementation and
environment. It falls under the class of black box testing.
ACCEPTANCE TESTING:
Acceptance testing is often done by the customer to ensure that the delivered product meets the
requirements and works as the customer expected. It falls under the class of black box testing.
FUNCTIONAL TESTING:
Functional testing is the testing to ensure that the specified functionality required in the system
requirements works. It falls under the class of black box testing.
STRESS TESTING:
Stress testing is the testing to evaluate how system behaves under unfavorable conditions.
Testing is conducted at beyond limits of the specifications. It falls under the class of black box
testing.
PERFORMANCE TESTING:
Performance testing is the testing to assess the speed and effectiveness of the system and to make
sure it is generating results within a specified time as in performance requirements. It falls under
the class of black box testing.
USABILITY TESTING:
Usability testing is performed to the perspective of the client, to evaluate how the GUI is user-
friendly? How easily can the client learn? After learning how to use, how proficiently can the
client perform? How pleasing is it to use its design? This falls under the class of black box
testing.
BETA TESTING:
Beta testing is the testing which is done by end users, a team outside development, or publicly
releasing full pre-version of the product which is known as beta version. The aim of beta testing
is to cover unexpected errors. It falls under the class of black box testing.
SELECTION OF TEST CASES
For testing to be successfully, proper selection of test cases is essential. There are two different
approaches to selecting cases :- Functional Testing and Structural Testing.
STRUCTURAL TESTING:In Structural Testing, the test cases are decided bases on the
logic of the module to be tested. One common coverage criterion is statement coverage, which
requires that test cases be selected so that together they execute each statement exactly once.
TEST PLAN
The testing is an extremely critical and time consuming activity. It requires proper planning of
the overall testing process. Testing process starts with a test plan. This plan identifies all the
testing related activities that must be performed and specified the schedule, allocates the
resources and specified guidelines for testing. The test plan specifies conditions that should be
tested, different units to be tested, and the manner in which the modules will be integrated
together.
First of all, unit testing was performed. Each and every module f the system was tested
separately, so that there are no syntax and logical errors.
Integration testing was performed next by combining tested modules into subsystems. Here, we
test module integrations.
When the development of hole system was completed, we performed overall system testing to
discover any remaining errors.
Next, we performed testing by installing the software in the computer lab. After testing some
errors, not uncovered earlier, were discovered. They are mainly field size errors and some other
minor problems. All errors found were corrected.
CONCLUSION
The era of mobile technology opens the windows to the android app. The websites are vanishing
and the smart phones are emerging. It is the time to change from conventional websites to apps
which has become the part of our daily routine, we are introducing ‘Find My Tutor’ in which
students and the faculty and students can register. Based on the latitude and longitudinal mapping the
tutor location is mapped to the student. The search of the subject expert is also filtered based on the
location so that it will be easy for the finders to select the appropriate tutor. Based on the students
selection the tutors will be made available for their special classes and then they will be intimated
through notifications. This system provides an efficient search and gives effective result for the users..
FUTURE SCOPE
Currently the Android Application works as an offline application which only allows access data
from the application. In Future, the Application will be working as online application which
includes the features like getting full syllabus of the course in just one click. The Application can
be easily shared and rated by the users.
4
Bibliography
Google
Android Tutorials