Professional Documents
Culture Documents
Final Project Report: Locate A Tutor
Final Project Report: Locate A Tutor
Final Project Report: Locate A Tutor
Locate a Tutor
Project Supervisor
Said Nabi
Submitted By
F19024A196
Muhammad Pervaiz mc180203260
<<Group Member Name>> <<VU ID>>
In our opinion, it is satisfactory and up to the mark and therefore fulfills the
requirements of BS in Computer Sciences.
Said Nabi
Supervisor,
Software Projects & Research Section,
Department of Computer Sciences
Virtual University of Pakistan
___________________
(Signature)
___________________
(Signature)
Accepted By:
_____________
(For office use)
EXORDIUM
Page
2
In the name of Allah, the Compassionate, the
Merciful.
Page
3
DEDICATION
Page
4
ACKNOWLEDGEMENT
This work would not have been possible without the Allah Almighty. I am
especially indebted to the chairman of Virtual University Pakistan, whose
active and reliable work helped me achieve my goals. I am grateful to all
of those with whom I have had the pleasure to work during this and other
related projects. Each of them has provided me extensive personal and
professional guidance and taught me a great deal about software design,
development, testing and life in general.
I would especially like to thank Prof. M. Said Nabi, the supervisor of my
project. As my teacher and mentor, he has taught me more than I could
ever give him credit for here. He has taught me, what a good developer
(and person) should be. Nobody has been more important to me in the
pursuit of this project than the members of my family. I would like to
thank my parents, whose love and guidance are with me in whatever I
pursue. They are the ultimate role models.
Page
5
PREFACE
Page
6
TABLE OF CONTENTS
CHAPTER NO. 1
GATHERING & ANALYZING INFO.....................................................9
1.3 SCOPE
1.6.1 Usability
1.6.2 Reliability
1.6.3 Supportability
CHAPTER NO. 2
PLANNING THE PROJECT..............................................................36
2.1 INTRODUCTION
CHAPTER NO. 3
DESIGNING THE PROJECT............................................................39
3.1 INTRODUCTION
CHAPTER NO.4
DEVELOPMENT.............................................................................60
4.1 DEVELOPMENT PLAN (ARCHITECTURE DIAGRAM)
Page
8
CHAPTER 1
Gathering & Analyzing Info
Page
9
1.Problem Statement:
When a student or parents wants to search for a tutor, he/she has to search through
newspaper advertisement or asks from people around who can recommend a highly
qualified and expert tutor with affordable fees. However, it become very difficult to
find a suitable tutor if you don’t have any connection.
Day by day, more and more students have problem in finding a tutor of their choice.
Some have problems in the qualification or high dues. Teachers as well sometimes face
problem in finding a job i.e. a place to teach. Students belonging to different places
have difficulty in finding a tutor around them.
We have seen rapid evolution of e-learning. So, the point of this application is to help
users get the most out of internet. A platform where teachers and students can find each
other.
"Locate a Tutor" is for all those who are looking for teachers for their children for their
future or some student search teacher for himself. As education is a necessity today, so
Page
10
many students need a tutor for guidance in study. As well as for teachers, it will
become easy to find students who are looking for qualified teachers.
3. Scope
Tutor:
Student:
● Fee Negotiation
Page
11
4 Tools & Technologies used:
When a project is started the first matter to establish is to assess the feasibility of a
project or product. Feasibility means the state or degree of being conveniently done.
We will discuss how feasible it is to make a web portal which allows us to make
profiles and groups online for questioning and answering. The answers will be rated
and the most rated or voted answers will be displayed on the main webpage. This
project is 100% feasible.
1. Technical
2. Operational
3. Economic
4. Schedule
5. Specification
6. Information
7. Motivational
Page
12
8. Legal and Ethical
Technical Feasibility deals with asking the question as to whether the system can be
developed or not. This project is possible in all technical ways. I will develop this
project using tools like Android studio browsers like Google Chrome. The main
programming language will be Java to handle all the functionality and logic. Java is a
high level programming language used for many platforms like Desktop etc. XML is a
standard design language used by programmers and tools. XML language will be used
to design the UIs of this application. It is very flexible and easy to use, yet powerful
and full of features. Google provides free Firebase database for limited storage
capacity, The access is seamless and returns data within seconds depending on the
user's internet speed. The application will be storing only the data of users like name,
number, location etc which doesn't take much space. So millions of users' data can be
stored in free storage. If required, more storage capacity can be purchased without
having to modify anything in the project.
Evaluation of technical ability of the users to operate and use this application is the
main aim of operational feasibility. We believe that this project will be easy to use and
the testing will not leave any errors in the coding. We will develop this application
following the regulations of developing the successful project. Our solution providing
system is also so strong. Our experience in android development and tools of
development will enable us to find errors easily and provide solution efficiently. End
users will feel so comfortable using this project.
The main aim of economic feasibility is to measure the cost and benefits in the project.
If we see professionally the cost of this project is not so much because tools are free but
the coding and development cost high due to its complex functionality. When
functionality is high level cost does matter because in less cost it is not possible to
make a professional and error free project. This android project is feasible
economically because it will give design and functionality balanced with the cost.
Page
13
Justification for the benefit/cost analysis relative to the project is to be measured in
economic feasibility. It will satisfy both tangible and intangible benefits.
Time is the most important factor especially in development process. Time is managed
only when we follow the procedure and regulations. When the procedure is not
followed hurdles waste time. The project will be made following the steps in order.
Requirements are the features that the system must have or a constraint that must be
accepted for the customer. The requirements of this project are entirely feasible and
complete. We can modify the requirements as the development process is started but
we cannot change the requirements in testing process because it will consume time.
The information in this section means the requirements of specification and the
requirements for the development of the specifications and features of project. A good
project is developed when the given requirements are clear and information is
feasibility. Information about this project is feasible and clear.
The idea of this project is not copied. This project meets the requirements of ethical
feasibility and it is clear that its functions and privacy policies will not harm the values
of anyone. It fulfills all the ethical and moral values and gives a reliable platform for
students and teachers.
Page
14
3.1 Use Case Diagram
Page
15
Tutor:
Page
16
Student:
Page
17
3.2 Usage Scenarios
UC-01: Sign Up
Pre-Condition: None
Page
18
Extension of: None
User Clicks on the Sign up button on main System shows an Interface which has some
screen (i.e. login screen). fields (Name, Email, Phone Number, Role
i.e. Student or Teacher, Experience,
Location).
User Clicks inputs the required fields. The interface shows the text being entered
and has a button: Sign up.
User Clicks on Confirm button. System shows an interface where user has to
enter the verification code sent to his
email/phone number. It also has a Continue
button.
User enters the verification code and clicks System show a processing dialog and shows
Continue button. dashboard if verification code is correct.
[FR-01] Fulfilled.
User Clicks on the profile button visible on System shows an Interface which has the
dashboard. information of user (Name, Email, Phone
Number, Role i.e. Student or Teacher,
Experience, Location) . It also has an
Update button.
User Clicks on Update button. The interface shows the same information
now being able to edit. It also has a Done
button.
User makes the changes he wants to do. System Shows a confirmation dialog.
User Clicks on Confirm button. System shows his profile again with updated
information.
[FR-05] Fulfilled.
Page
20
UC-03: Deactivate account
Pre-Condition: User must be logged in to the system.
User Clicks on the profile button visible on System shows an Interface which has the
dashboard. information of user (Name, Email, Phone
Number, Role i.e. Student or Teacher,
Experience, Location) . It also has a
Deactivate button.
User Clicks on Confirm button. System shows an interface where user has to
enter verification code sent to the registered
phone/email. It also has a Continue button.
User inputs the verification code and clicks System shows a processing dialog and
Continue. shows Login screen.
[FR-04] Fulfilled.
Page
21
Pre-Condition: None.
User Clicks on the add location when System shows a maps interface where the
signing up or updating profile. GPS location of user is being shown.
It also has a Add Location button.
User Clicks on Confirm button. System shows the previous screen again.
[FR-06] Fulfilled.
User Clicks on the profile of the user he System shows an interface containing the
wants to view. information of that user (Name,
email/phone, Location, Role, Experience,
Rating etc.).
[FR-08] Fulfilled.
Page
23
Pre-Condition: User must be logged in to the system.
User Clicks on the Location in the profile of System opens the Maps application (by
a user. Google LLC).
[FR-09] Fulfilled.
Actor: Teacher
[FR-10] Fulfilled.
Page
25
Actor: Teacher
User Clicks on the name of student from the System shows an Interface which has the
list of students whom he want to provide information of that student (Name, Email,
services. Phone Number, Location, Grade) . It also
has a Send request to teach.
User Clicks on Send request button.. The interface shows the that the request has
been sent to student.
[FR-11] Fulfilled.
Actor: Teacher
User Clicks on the Received requests visible System shows an Interface which has a list
on dashboard. of students who have sent requests for
services. Each student has an accept and a
reject button.
User Clicks on Accept button. The interface shows that the request of that
student has been accepted.
[FR-12] Fulfilled.
Actor: Teacher
User Clicks on the Received requests visible System shows an Interface which has a list
on dashboard. of students who have sent requests for
services. Each student has an accept and a
reject button.
User Clicks on Reject button. The interface shows that the request of that
student has been rejected.
[FR-13] Fulfilled.
Actor: Teacher
User Clicks on the user he want to negotiate System shows an Interface which shows
fee with. information of that user. It also has a
Negotiate Fee button.
User Clicks on Negotiate fee button. The interface shows a text field where user
can type how he wants to negotiate about
the fee. It also has a Submit button.
User clicks on the confirm button. System sends the request to other user and
shows previous screen again.
Post Condition: The request to negotiate fee has been sent to other user.
[FR-14] Fulfilled.
Actor: Student
User Clicks on the Search button visible on System shows an Interface where user can
dashboard. input name, location, Experience, Grade,
rating and hourly fee. It also has a Search
button.
User inputs the fields as desired and clicks The interface shows a list of teachers
Search button. meeting the required criteria of search.
[FR-15] Fulfilled.
Actor: Student
User Clicks on the name of teacher he wants System shows an Interface showing the
to send request to. profile of that teacher. It also has a Request
to teach button.
User clicks on the Request to teach button. The interface shows a confirmation dialog.
User clicks Confirm button. System show that the request has been sent
to the teacher.
Post Condition: The request to provide services has been sent to the teacher.
[FR-17] Fulfilled.
Actor: Student
User Clicks on the name of teacher he wants System shows an Interface showing the
to rate. profile of that teacher. It also has a Rate
tutor button.
User clicks on the Rate tutor button. The interface shows a dialog having five
stars. User can select number of stars he
want to give. this interface also has a Submit
button.
User clicks on the number of stars he wants System show that the rating has been saved
to give and clicks Submit. and show previous screen again.
Post Condition: The rating of teacher has been added to his profile.
[FR-19] Fulfilled.
Actor: Student
User Clicks on the name of teacher he wants System shows an Interface showing the
to give review. profile of that teacher. It also has a Give
review button.
User clicks on the Give review button. The interface shows a dialog having a text
field. This interface also has a Submit
button.
User types his review and clicks Submit. System show that the review has been saved
and show previous screen again.
Post Condition: The review of the teacher has been added to his profile.
[FR-20] Fulfilled.
Usability
1. Ease of learning. The system must be easy to learn for both novices and users with
experience from similar systems.
2. Task efficiency. The system must be efficient for the frequent user.
Page
33
3. Ease of remembering. The system must be easy to remember for the casual user.
5. Subjective satisfaction. The user must feel satisfied with the system.
Reliability
The system must be available for use 24 hours a day and 7 days a week. It should be
reliable above 90% at 10,000 cycles.
Supportability
The system must be able to run and be fully functional on more than 95% Android
devices currently used across the world.
It should also be able to use across the globe wherever Google Maps is available.
The system must be designed in such a way that it can be updated meeting the future
requirements.
The system must be able to work using any internet connection types and other
variables such as speed, latency and limit.
Page
34
4. System Requirements
Common:
FR-01 System shall allow the user to sign up by entering required details.
FR-02 System shall be able to verify the user's email address or phone number
registered with account.
FR-03 System shall allow the user to enter verification code to verify his phone/email
FR-06 System shall allow the user to add his location in his profile.
FR-08 System shall allow the user to view profile of other user(s).
FR-09 System shall allow the user to open location of other user in Google maps.
Tutor:
FR-10 System shall allow the tutor to view a list of students seeking tuition.
FR-11 System shall allow the tutor to send the request to student for providing his/her
services.
FR-12 System shall allow the tutor to accept requests from the students.
FR-13 System shall allow the tutor to reject requests from the students.
FR-14 System shall allow the tutor to negotiate the fee with the students.
Page
35
Student:
FR-15 System shall allow the student to search the tutors (by providing subject,
qualification, gender, location, availability time, and fees)
FR-16 System shall be able to display a list of tutors according to the search criteria given
by the student.
FR-17 System shall allow the student to send request to hire tutor.
FR-18 System shall allow the student to send request for negotiation of fees.
FR-19 System shall allow the student to rate the tutor for his services.
FR-20 System shall allow the student to give review to the tutor.
Page
36
CHAPTER 2
Planning the Project
Page
37
Adopted Methodology:
Introduction:
The goal for all project managers is to bring a project to completion on time, within the
budgeted costs, and to meet the planned performance or end-product goals by
orchestrating all resources assigned to the project effectively and efficiently. To achieve
this, we must follow a standard methodology for software development. This means
that the Adapting and following a methodology is a crucial part of software
development otherwise the project may run late or out of budget/cost meanwhile
causing many other problems.
Available Methodologies:
Available software development methodologies are many and can be customized as per
requirement of the project. Some of them are as:
Chosen Methodolgy:
The adopted methodology is VU Process Model which is a combination of Waterfall
and Spiral Model.
2. Planning Phase:
In this phase we adopted methodology to complete the project, also prepared the
Schedule using Gantt chart to know that which phase will be completed in how many
days.
Work Plan:
Page
39
CHAPTER 3
Designing the Project
Page
40
Introduction:
Software Design: It is the first step in moving from problem domain to solution
domain. The purpose of the design phase is to plan a solution of the problem specified
by the requirements document. Starting with what is needed, design takes towards how
to satisfy the needs.
The design of a system is perhaps the most critical factor affecting the quality of the
software. It has a major impact on the project during later phases, particularly during
testing and maintenance. The output of this phase is the design document. This
documents is similar to a blueprint or plan for the solution and is used later during
implementation, testing and maintenance.
2. Detailed Design:
It identifies the internal logic of the various modules. During this phase further details
data structures and algorithmic design of each of the modules is specified. Once the
design is complete, most of the major decisions about the system have been made.
However, many of the details about coding the designs, which often depend on the
programming language chosen, are not specified during design.
4. Architecture Diagram:
Users i.e. Teachers and students will interact with the application which works online.
When saving or viewing anyone's location from the application, Google Maps Database
is used. When a user saves its location , it is saved in Firebase Database. The Firebase
DB also contains all other information such as name, address, phone, email etc. The
requests and responses are both ways.
Page
41
3. Sequence Diagrams:
A sequence diagram indicates a round trip from sending the request to one page to
receiving the response on same/other page. It will contain all the layers of the system.
The use of sequence diagrams is to make sure that the control follows the architecture
i.e. from .jsp page; the request should not go directly to database interaction layer. This
phase is most important sub phase of low level design. The sequence contains the steps
of how a particular workflow should take place inside the method. If a workflow
contains the involvement of more than one method/existing method(s) then the
corresponding class name and method name should also be present against the
respective step. The algorithm will make the task of developer a lot easier. It will serve
as a guide of how to implement a particular use case.
Page
42
3.2 Update Profile:
Page
43
3.4 Add Location:
Page
44
3.6 View location of a user:
Page
45
3.7 View list of students seeking tuition:
Page
46
3.9 Accept request of teaching:
Page
47
3.11 Request for fee negotiation:
Page
48
3.13 Send request to provide services:
Page
49
3.14 Rate Tutor:
5. Class Diagram:
Page
50
Once we have table structures ready, we can easily identify which classes need to be
created i.e. bean/DTOs, service/business layer classes, database layer classes etc. We
can also identify which methods will be required in these classes. Hence, we can create
class diagrams of all the classes. A sample class diagram is shown here. It consists of
attributes and methods of a class and also, relationships among the classes. The use of
class diagrams is to guide the developer during the implementation. Ideally, we should
go ahead and implement those classes. That will make developer’s task easy.
Class Details:
A class diagram should is followed by the table containing the information about the
classes and their methods i.e. which method performs which action, what is the
significance of each argument of the method etc, hence, making the implementation of
the method a cakewalk.
Page
51
Page
52
6. Database Design:
Page
53
Graphical User Interfaces:
Page
54
Home / Dashboard:
Page
55
Find Tutor by Filter:
Page
56
Profile of Tutor:
Page
57
Location of a User in Google Maps:
Page
58
Update Profile:
Page
59
Change Password:
Page
60
Page
61
Negotiate Fee with Tutor:
Page
62
CHAPTER 4
Development
Page
63
Page
64
The Development plan was too large to show here, so it’s in a separate file (Project
Plan.mpp)
Page
65