Sei sulla pagina 1di 197

ASTE TEWODROS CAMPUS NAVIGATION SYSTEM

ASTE TEWODROS CAMPUS NAVIGATION SYSTEM

INDUSTRIAL PROJECT

PROJECT PARTICIPANTS
LishanEticha
Sathyanarayanan Devendran

UNDER THE GUIDANCE OF

Advisor Daniel Mahetot

30May 2016
Declaration

This is to declare that the project work which is done under the supervision of Instructor Daniel
Mahetotand having the title University of Gondar Navigation System for AtseTewodros campus is
the sole contribution of:

Sathyanarayanan Devendran
LishanEticha

No part of the project work has been reproduced illegally (copy and paste) which can be considered
as Plagiarism. All referenced parts have been used to argue the idea and cited properly. We will be
responsible and liable for any consequence if violation of this declaration occurs.

Date: 15/01/2016

Group members:

FULL NAME SIGNATURE


LishanEticha _________________
Sathyanarayanan Devendran _________________
Acknowledgement
Any accomplishment requires the blessing of the God. This work is not any different to that. So the
first thanks goes to God!!
"We have taken efforts in this project. However, it would not have been possible without the kind
support and help of many individuals. We would like to extend our sincere thanks to all of them.

We are highly indebted to Instructor Daniel Mahetotfor his guidance and constant supervision as
well as for providing necessary information regarding the project & also for his support in
completing this documentation.

We would like to express our special gratitude and thanks to Dr. AsefaGetaneh for giving such
attention and time.

Our thanks and appreciations also go to people who have willingly helped us out with their
abilities."
Contents

Chapter 1Introduction ........................................................................................................................................ 1


1. Background ................................................................................................................................................ 1
2. Statement of the problem and Justification ................................................................................................ 3
3. Project Objective ........................................................................................................................................ 4
3.1. General Objective of the System ....................................................................................................... 4
3.2. Specific Objective of the System ....................................................................................................... 4
4. Scope of the Project ................................................................................................................................... 5
5. System Development Methodology ........................................................................................................... 5
5.1. Investigation (fact-finding) methods .................................................................................................. 5
5.2. System Development Tools ............................................................................................................... 6
6. Significance of the Project ......................................................................................................................... 6
7. Beneficiaries .............................................................................................................................................. 7
8. Time Schedule ........................................................................................................................................... 8
Chapter 2 Requirement Gathering and Analysis................................................................................................ 9
1. Introduction ................................................................................................................................................ 9
2. Current System........................................................................................................................................... 9
2.1. Major function of the current system description .............................................................................. 9
2.2. Problem of the existing system .......................................................................................................... 9
3. Requirement Gathering ............................................................................................................................ 10
3.1. Requirement Gathering Methodologies ........................................................................................... 10
3.2. Results Found................................................................................................................................... 11
4. Proposed System ...................................................................................................................................... 12
4.1. Overview .......................................................................................................................................... 12
4.2. Functional requirement .................................................................................................................... 13
4.3. Non-Functional Requirement ........................................................................................................... 15
4.3.1. User Interface and Human factors............................................................................................ 15
4.3.2. Documentation ......................................................................................................................... 15
4.3.3. Hardware Consideration .......................................................................................................... 15
4.3.4. Performance Characteristics .................................................................................................... 15
4.3.5. Error Handling and Extreme Conditions.................................................................................. 16
4.3.6. Quality Issues ........................................................................................................................... 16
4.3.7. System Modifications .............................................................................................................. 16
4.3.8. Physical Environment .............................................................................................................. 17
4.3.9. Security Issues ......................................................................................................................... 17
4.3.10. Resource Issues ........................................................................................................................ 17
5. System Model .......................................................................................................................................... 18
5.1. Scenario............................................................................................................................................ 18
5.2. Use case Model ................................................................................................................................ 25
5.2.1. Use case Diagram..................................................................................................................... 25
5.2.2. Description of Use case Model ................................................................................................ 27
5.3. Activity Diagram ............................................................................................................................. 52
5.4. Object Model ................................................................................................................................... 72
5.4.1. Data Dictionary ........................................................................................................................ 72
5.4.2. Class Modeling ........................................................................................................................ 74
5.4.3. Dynamic Modeling .................................................................................................................. 75
5.5. User Interface ................................................................................................................................. 102
Chapter 3System Design ................................................................................................................................ 111
1. Introduction ............................................................................................................................................ 111
1.1. Design Goals .................................................................................................................................. 111
1.1.1. Documentation ....................................................................................................................... 111
1.1.2. Low operating cost ................................................................................................................. 112
1.1.3. Minimize response time ......................................................................................................... 112
1.1.4. High availability..................................................................................................................... 112
2. Current Software Architecture ............................................................................................................... 112
3. Proposed Software Architecture ............................................................................................................ 112
3.1. Overview ........................................................................................................................................ 112
3.2. Subsystem decomposition .............................................................................................................. 113
3.3. Hardware/Software Mapping ......................................................................................................... 115
3.4. Persistent Data Management .......................................................................................................... 116
3.5. Access control and security............................................................................................................ 118
3.6. Subsystem Services ........................................................................................................................ 119
4. Detailed Class Diagram ......................................................................................................................... 122
5. Packages ................................................................................................................................................. 126
Chapter 4 Implementation........................................................................................................................... 128
1.1. Mapping Models to code................................................................................................................ 128
1.1.1. Mapping associations ............................................................................................................. 128
1.2 Source codes of major classes, packages or interfaces .................................................................. 136
1.3 Screen Images ................................................................................................................................ 169
Conclusion and Recommendation ............................................................................................................. 183
Glossary ......................................................................................................................................................... 183
Recommendation ........................................................................................................................................... 185
References ...................................................................................................................................................... 185
ANNEX ......................................................................................................................................................... 185

List of Figures
Figure 1 Time Schedule ....................................................................................................................... 8
Figure 2 Use case ............................................................................................................................... 26
Figure 3 Activity Diagram search Location....................................................................................... 52
Figure 4 Activity Diagram navigate to search result ......................................................................... 52
Figure 5 Activity Diagram switch search result view ........................................................................ 53
Figure 6 Activity Diagram change map view setting ........................................................................ 53
Figure 7 Activity Diagram change Navigation speed setting ............................................................ 53
Figure 8 Activity Diagram change volume setting ............................................................................ 54
Figure 9 Activity Diagram change voice guidance setting ................................................................ 54
Figure 10 Activity Diagram set way point ......................................................................................... 55
Figure 11 Activity Diagram navigate to destination way point ......................................................... 55
Figure 12 Activity Diagram detect current location .......................................................................... 56
Figure 13 Activity Diagram view dormitory information ................................................................. 56
Figure 14 Activity Diagram navigate to dormitory ........................................................................... 57
Figure 15 Activity Diagram view course schedule ............................................................................ 57
Figure 16 Activity Diagram navigate to class room .......................................................................... 58
Figure 17 Activity Diagram view exam schedule.............................................................................. 58
Figure 18 Activity Diagram navigate to exam room ......................................................................... 59
Figure 19 Activity Diagram view clearance information .................................................................. 59
Figure 20 Activity Diagram navigate to clearance room ................................................................... 60
Figure 21 Activity Diagram view registration information ............................................................... 60
Figure 22 Activity Diagram navigate to registration room ................................................................ 61
Figure 23 Activity Diagram view lounge information ...................................................................... 61
Figure 24 Activity Diagram navigate to lounge ................................................................................ 62
Figure 25 Activity Diagram user log in ............................................................................................. 62
Figure 26 Activity Diagram register user .......................................................................................... 63
Figure 27 Activity Diagram enter Location information ................................................................... 63
Figure 28 Activity Diagram edit Location information ..................................................................... 64
Figure 29 Activity Diagram delete user account ............................................................................... 65
Figure 30 Activity Diagram enter course schedule............................................................................ 65
Figure 31 Activity Diagram edit course schedule.............................................................................. 66
Figure 32 Activity Diagram enter registration information ............................................................... 66
Figure 33 Activity Diagram edit registration information ................................................................. 67
Figure 34 Activity Diagram enter exam schedule ............................................................................. 67
Figure 35 Activity Diagram edit exam schedule ............................................................................... 68
Figure 36 Activity Diagram enter dormitory information ................................................................. 68
Figure 37 Activity Diagram edit dormitory information ................................................................... 69
Figure 38 Activity Diagram delete dormitory information................................................................ 70
Figure 39 Activity Diagram Enter Lounge Information .................................................................... 71
Figure 40 Activity Diagram edit lounge information ........................................................................ 71
Figure 41 Class Diagram ................................................................................................................... 74
Figure 42 Sequence Diagram search Location .................................................................................. 75
Figure 43 Sequence Diagram Navigate to search Result ................................................................... 76
Figure 44 Sequence Diagram Switch Result View ............................................................................ 76
Figure 45 Sequence Diagram Set Way Point ..................................................................................... 77
Figure 46 Change Map View Setting................................................................................................. 78
Figure 47 Sequence Diagram Change Volume Setting ..................................................................... 78
Figure 48 Sequence Diagram change navigation Speed Setting ....................................................... 79
Figure 49 Sequence Diagram Change Voice Guidance Setting ........................................................ 79
Figure 50 Sequence Diagram Detect Current Location ..................................................................... 80
Figure 51 Sequence Diagram view Dormitory Information .............................................................. 81
Figure 52 Sequence Diagram course schedule Information .............................................................. 82
Figure 53 Sequence Diagram view Exam Schedule Information ...................................................... 83
Figure 54 Sequence Diagram view Registration Information ........................................................... 84
Figure 55 Sequence Diagram view Lounge Information ................................................................... 85
Figure 56 Sequence Diagram Navigate to Destination Way point .................................................... 86
Figure 57 Sequence Diagram Navigate To Class Room ................................................................... 86
Figure 58 Sequence Diagram Navigate To Dormitory ...................................................................... 87
Figure 59 Sequence Diagram Navigate To Clearance Room ............................................................ 87
Figure 60 Sequence Diagram Navigate To Lounge ........................................................................... 88
Figure 61 Sequence Diagram Navigate To Registration Room......................................................... 88
Figure 62 Sequence Diagram view Clearance Information ............................................................... 89
Figure 63 Sequence Diagram User Login .......................................................................................... 89
Figure 64 Sequence Diagram Register User ...................................................................................... 90
Figure 65 Sequence Diagram Delete User Account .......................................................................... 91
Figure 66 Sequence Diagram enter location Information .................................................................. 92
Figure 67 Sequence Diagram edit Location Information .................................................................. 93
Figure 68 Sequence Diagram enter Dormitory Information .............................................................. 94
Figure 69 Sequence Diagram edit Dormitory Information ................................................................ 95
Figure 70 Sequence Diagram delete Dormitory Information ............................................................ 96
Figure 71 Sequence Diagram enter Course Schedule ........................................................................ 97
Figure 72 Sequence Diagram enter exam schedule ........................................................................... 97
Figure 73 Sequence Diagram edit Course Schedule .......................................................................... 98
Figure 74 Sequence Diagram edit Exam Schedule ............................................................................ 99
Figure 75 Sequence Diagram enter registration information ........................................................... 100
Figure 76 Sequence Diagram edit registration information ............................................................. 100
Figure 77 Sequence Diagram enter lounge information .................................................................. 101
Figure 78 Sequence Diagram edit Lounge Information .................................................................. 101
Figure 79 User Interface Main Menu............................................................................................... 102
Figure 80 User Interface Navigation Menu ..................................................................................... 102
Figure 81 User Interface Set Starting Way Point Location Menu ................................................... 102
Figure 82 User Interface Setting Button .......................................................................................... 103
Figure 83 User Interface Setting Menu ............................................................................................ 103
Figure 84 User Interface Map View Setting .................................................................................... 103
Figure 85 User Interface Setting Menu ............................................................................................ 104
Figure 86 User Interface Volume control Slider.............................................................................. 104
Figure 87 User Interface Navigation Speed control slide ................................................................ 104
Figure 88 User Interface voice Guidance setting ............................................................................. 105
Figure 89 User Interface Login Form .............................................................................................. 105
Figure 90 User Interface Administrator Operation Menus .............................................................. 106
Figure 91 User Interface department Head operation menus .......................................................... 107
Figure 92 User Interface dormitory manager operation menus ....................................................... 108
Figure 93 User Interface Lounge owner operation menus............................................................... 109
Figure 94 User Interface student navigation menus ........................................................................ 110
Figure 95 component diagram system data management part ......................................................... 114
Figure 96 Component Diagram navigation part .............................................................................. 115
Figure 97 Deployment Diagram ...................................................................................................... 116
Figure 98 Normalized data Base Schema ........................................................................................ 117
Figure 99 Component Diagram Subsystem Service ........................................................................ 121
Figure 100 Detailed Class Diagram ................................................................................................. 122
Figure 101 Package Diagram ........................................................................................................... 127

List of Tables

Table 1 Data Dictionary ..................................................................................................................... 74


Table 2 Access Control .................................................................................................................... 119
Abstract

Built environment is an important factor in people's daily life as they spend most of their
time moving from one place to another inside indoor and local environments. It is extremely
important for people to find their destination in large complex places holding to many buildings,
such as campuses, airports and other large organizations. 3D capabilities are becoming highly
demanded in most visualization-related applications. So far most navigation systems use 2D
maps to represent the environment. However, these maps do not provide adequate
information about object features, such as colors, textures and shapes. A 3D environment
provides users with more realistic spatial information. The goal of this project is to assist users in
navigating from one place to another by creating navigation software for AtseTewodros campus.

As stated in a number of studies to be able to build 3D navigation software several components


are needed: localization method such as detecting current user position, a digital 3D model,
algorithms for path finding and a guidance mechanism. In this project, additionally to these
components requirements of AtseTewodros campus’s students, visitors and employees were
gathered and analyzed. Through the project possible functionality of the system were identified,
the most appropriate design goals are stated, and suitable persistent data management approach is
selected. In this project Autodesk 3Ds Max and Unity3D game engine are used to implement the
navigation and visualization of 3D model. Finally, all different components were integrated with
each other and a 3D mobile navigation system for Android platform with three tire architectureis
developed.
Chapter 1Introduction

1. Background

Navigation system is a system that guides objects moving from one place to another place. The
history of navigation is old. Well known navigation tools that were intensively used in early
navigation are Maps. Maps have been used for centuries to transit users from one place to another.
In the last decade, navigation devices have used digital maps to locate the position of the user and
assist in providing navigational directions. Recently, maps have become more than just
visualization tool in navigation systems; they are now an aiding tool for enhancing the
reliability of the obtained navigation solutions. Now a day’s navigation system has evolved
froma paper map to an electronic map combined with route instructions, usually displayed on a
dashboard video screen[1]. So far most navigation systems use 2D maps to represent the real
world environment. However, these maps do not provide adequate information about object
features, such as colors, textures and shapes. But, a 3D map provides users with more realistic
spatial information and exact simulation of the real world.

In our project named ATCNS (AsteTewodros campus navigation System), we are going to
develop system that provides interactive 3D navigation for AtseTewodros campus.AtseTewodros
campus is the main campus in University of Gondar. The campus is located in the northern part of
Gondar with a huge coverage area of 2,323.02 by 6266.404 fit [2]. Currently the campus has no
automated navigation system developed for fresh and senior students, tourists, university
employees, car drivers or any other persons, which makes it harder to locate buildings, places or
parking slots in such a huge campus. The project feature includes displaying routs such as
drivable and pedestrian path in voice navigation and give the user to take run time decision in
the term of voice as well as text message. Services like Google maps, Google Latitude and GPS
system are playing a vital role in location based services and have become absolutely necessary in
recent year with vast amount of user Relying on them for direction but they are developed to
help users in outdoor location based services and their capability not yet been fully applied to
campuses or in most organizations [3]. For example, in our campus there are many buildings,
parking slots, new under developing buildings that no complete direction is provided by Google
map or GPS application. The problem address in this project is on using current advanced
technology to provide a mechanism to facilitate users with automated indoor navigation in

1
AtseTewodros campus. Our objective is to design and implement an easy to use system that
provides accurate location information based on the user’s current position.

The motivation behind ATCNS is in complete synchronization with navigational information


that is to organize the AtseTewodros campus’s information and make it universally accessible
and useful. The system developed will combine mobile solutions and geo-mapping to
provide critical information to campus students, campus visitors. Campus employees or any
person trying to seek information about some place that is unknown to him/her in
AtseTewodros campus. The application will have the capable of reducing the user’s frustration
and stress to a great extent as he will have all the information he needs to navigate on the
palm of his hands that is on his mobile device. The best part is that all the basic and
staticlocation information will be there with him/her all the time without requiring him to
have any access to any sort of internet service, but the system may require small Wi-Fi connection
to read the MAC address of the access point that the user mobile currently connected and locate the
user’s current location.

As most of the data that is the map information like distance between two buildings already
available so the cost of gathering information is minimized. The work that needs to be done is
organizing the available information properly and gather the remaining information. This
application will clearly reduce the user’s frustration of finding Location information in
AtseTewodros campus as it allows mapping services to be used by user’s who don’t have
24x7 access to internet. The application will surely be of great use to fresh students and
people visiting AtseTewodros campus. To make the system universally accessible the working of
the system will not only be based on the English language which is not understandable by all
types of user or visitor of AtseTewodros campus in case of rural area visitor it is difficult to interact
with system so we are going to develop application that provide additional universal language
called Visual Lingua or UPL (Universal Picture Language) which is more user friendly for rural
area visitor or tourists.

2
2. Statement of the problem and Justification

In AtseTewodros campus there is no automated location indicator system. As a result, this problem
increases the student’s or campus visitor’s frustration and stress of finding and locating a location to
a great extent. Although there are advanced technologies in the area of navigation such as Google
map and GPS they do not work indoor (or in most local areas)meaning they are developed to help
users in outdoor location based services and their capability not yet been fully applied to
campuses like AtseTewodros or for indoor services the direction within the campuses are not
available using Google map application, therefore. Currently there is no well-defined, accurate,
quicker and automated way of navigating a user from one location to another inAtseTewodros
campus. Generally students, campus employees or campus visitors fail to locate their desired places
accurately and on time because of four basic reasons:

1. There are high populated number of buildings and many new under developing buildings
reside in the campus
2. Huge coverage area of the campus itself.
3. Most building in the campus have similar architectural design and colors.
4. Currently, while students or campus visitors searching for locations they only have two
inaccurate and time wastage choices.
4.1 The first one is asking somebody for direction.
4.2 The second one is follow the direction boards installed in some places and the building
labels written on each building.

As a result

 There is high wastage of time while searching for locations. Therefore


o Students may fail to take their exam or fail to be punctual because most of the time
campus departments schedule different classes for different courses or exams.As a
result students encounter the difficulty of locating their class room on time.
o Campus employees or campus visitors may fail to be present or punctual in university
meeting due to the difficulty of locating meeting hall on time.
 Students or campus employees may enter to wrong building block and room because most
buildings located on same place have a similar architectural design and color.

3
 Students especially fresh students may face theft or robbery by the person who they ask to
guide them to some location in the campus.
 During clearance day students have the difficulty of knowing or locating clearance offices in
the campus and also have the difficulty of identifying which clearance office to go first and
which to go next.
 Since each department have a separate registration room students face the difficulty of
finding their department registration room on registration day.
 And generality there is some difficulty locating service providing places like lounges,
laundries, stationaries and shops.

To solve such kind of problems, AtseTewodros campus requires automated navigation systems that
confine location information in a single place and make it universally available.

3. Project Objective

3.1. General Objective of the System

The general objective of this project is to build a robust and flexible mobile based 3D navigation
system for AtseTewodros campus that could be used to navigate users to their desired location.

3.2. Specific Objective of the System

To achieve general objective of the system we used the following specific activities

 Collect MAC Address or BSSID of access points by connecting our wireless devices to each
access points installed in AtseTewodros campus for the purpose of implementing the
localization method such as detecting current user position.
 Prepare requirement gathering and analysis document to gather and analyze user
requirements this involves Use data collection methods: interview and observation to gather
system requirements..
 Prepare system design document to identify system design goals, to specify system
decomposition as well as architecture of the system.

4
4. Scope of the Project

The scope of the project is determined by the allocated time, resources and the client’s
requirements. Thescope of the system is limited;currentlythe system covers only AtseTewodros
campusof University of Gondar. The scope of the project focuses on providing students, campus
employees and campus visitors a navigation system with their current location displayed in a 3D
map of AtseTewodros campus on their mobile device and the shortest route plan when searching
for a location or a building. Presently the project does not consider a navigation system for visually
impaired peoples.For the purpose of making the system universally accessible the working of the
system is not only based on the English language which is not understandable by all types of
user or visitor of AtseTewodros campus in case of rural area visitor it is difficult to interact with
system so the project considers using additional universal language called Visual Lingua or UPL
(Universal Picture Language) which is more user friendly for rural area visitor or tourists.
Generally the project considers both foot/pedestrian navigation and car navigation.

5. System Development Methodology

Software development begins with a certain human need which can be articulated as a problem. We
stated the statement of problem above then we develop complete understanding on the topic. Next
we had some idea to solve the problems and then we formalize and change our idea to reality by
producing software. This will be achieved by software development, which involves eliciting
system requirements specification, system design, system implementation and finally system
testing. In other words, we also had to follow methodologies used in software engineering. We
divide the project into phases, with a simple implementation of a small set of the software
requirements and iteratively enhance the evolving versions until the complete system is
implemented and ready to be deployed.This indicates that our software development methodology
isiterative model.

5.1. Investigation (fact-finding) methods

There are several fact finding techniques or methods involved in system analysis phase that we will
use them throughout the system development life cycle.

5
5.1.1. Interviewing

Help us to collect information about the current situation from the user face-to-face by asking
questions prepared by the team.

5.1.2. Observing the organization

It allows as participating in or watching a person perform activities to learn about the current
situation or system. This is use full when the validity of date collection is in question or when the
complexity of certain aspect of the system prevents a clear explanation by the system.

5.1.3. Questionnaires

Involve attaining information from people who are concerned with the usage of the system. The
team prepares questions which are simple, clear and to the point. The questionnaire will be mailed
or given to peoples in hard copy then they will mail back or submit their answers letter.

5.2. System Development Tools

Software Tools
 Autodesk 3Ds Max is used for modeling the 3D models of AtseTewodros campus buildings,
road, parking slots and other 3d models.
 Unity3D is one of the latest Game Engine with the Android Development Tool plug-in, will
be used as the development environment for Javascript, C#, PHP, Booscript and shader
codes.
 WAMP SERVER is used for storing navigational, location and student information
permanently.
 Edraw Max for drawing UML software diagrams.
 Notepad++ for coding PHP web language.
 Mono Developer Editor for coding C#, Javascript, Booscriptand shader languages

6. Significance of the Project

The proposed navigation system offers many advantages to the user; it reduces the student’s,
campus employee’s or campus visitor’s frustration and stress of finding a location to a great extent.
The main significance of the project includes:

6
 The system allows users to retrieve information about their current location with the help of
their mobile devices without seeking any help.
 The project helps fresh students or campus visitors to have a better perception of Tewodros
campus’s geographical locations.
 The system provides accurate and quicker way of finding a location in Tewodros campus
this helps users:
o To reduces wastage of time on locating and searching places, buildings or car parking
slots.
o To be present on time in their exam room or to be punctual on their examination day.
o To find the shortest route plan when searching for a location or a building. Moreover, to
help the user to gain additional information on the locations and buildings of Tewodros
campus after his/her request.
 The project solves the limitation of advanced technologies like Google map and GPS system
by providing an indoor navigation system for AtseTewodros campus.

7. Beneficiaries

1. Fresh and senior students: can easily locate their dormitory, class room as well as any
buildings in Tewodros campus without any wastage of time. Can also receive class and
examination schedule, dormitory information as well as lounge information through their
mobile phone and navigate there.
2. Department Head: can easily provide class as well as examination schedules to students
through their mobile phone without requiring him to print and post the schedule in the
announcement board.
3. Campus Employees, Tourists and campus visitors: can easily locate campus buildings,
receive location information, and navigate to some location through their mobile phone.
4. Car drivers: can easily locate parking slots in AtseTewodros campus and navigate their.

7
8. Time Schedule

Figure 1 Time Schedule

8
Chapter 2 Requirement Gathering and Analysis

1. Introduction

Detailing System Requirements is the initial step of constructing the whole software system. It is a
description of the project requirements that we have been gather and analyze. Without
requirements, the goal is unclear and the construction may be off track. In this chapter,
requirements of the software system are defined through human natural language and use case. The
document is provided in order to ensure that the software we produce will be consistent with the
need of the system’s user. Stating these requirements explicitly helps insure that any potential
miscommunications are corrected at early stage.

The aim of this document is to gather and analyze and give an in-depth insight of the complete 3D
Indoor Navigation system by defining the current system problem statement in detail.
Nevertheless, it also concentrates on the functional and nonfunctional requirements of the system.

2. Current System

2.1. Major function of the current system description

In AtseTewodrows campus currently there are direction boards installed in some places and
building labels (or numbers) written on each building to help users to navigate to their desired
location. The current system involves asking peoples for direction. Whenever a user wants to
navigate somewhere in AtseTewodros campus the user has to look for some direction board and
building number or just ask somebody for direction and navigate there. For example, most of the
times in AtseTewodros campus student’s course and examination schedules are posted on their
department wall. When the student wants to navigate to his/her class or examination room first the
student has to look for the course or examination schedule posted on his/her department, then look
for some direction board or building number or just ask somebody for direction to navigate there.

2.2. Problem of the existing system

As explained above currently AtseTewodros campus has installed direction boards to assist users to
navigate in the campus.

9
It is usual that vast numbers of information and labels are shown on the directory boards. However,
humans have the cognitive limitations to process huge amount of information. Students or Visitors
often need to spend long time to filter out irrelevant labels and information, in order to focus on
their point of interests. They might also subject to disruption (problem) due to lost trace in the
direction board. At the same time, the direction board is subject to the limitation of maximum user
at a single point of time. Additionally, the main inefficiency of the direction board is its immobility.
Users need to memorize the place of interests, route to reach the place, and it is so difficult that
users need to memorize multiple places and routes. Visually challenged persons like people with
long sight problem often encounter tougher issues when they newly arrive at the campus. It is
almost impossible for them to use direction boards, as it does not provide the accessibility for those
visually challenged peoples. For instance, the fonts used in the directory are often small and
enriched with different colors and a style in order to make the directory has more attractive
appearance. Because of the inefficiency of direction boards students or campus visitors are forced to
ask somebody for direction which is also a time consuming and inefficient way of getting direction.

3. Requirement Gathering

This section describes the data collection methods that we use to solve the problem. How
information is gathered.

3.1. Requirement Gathering Methodologies

3.1.1. Observing the organization

It allows as participating in or watching a person perform activities to learn about the current
situation or system. This is use full when the validity of date collection is in question or when the
complexity of certain aspect of the system prevents a clear explanation by the system.

3.1.2. Interviewing:

Help us to collect information about the current situation from the user face-to-face by asking
questions prepared by the team. The team prepares two types of questions:

3.1.2.1. Open-Ended Questions

10
The team prepares questions that require more than one word answers. The answers come in the form of a
list, a few sentences or something longer such as a speech, paragraph or essay.

3.1.2.2. Close-Ended Questions

Involve attaining information from peoples who are concerned with the usage of the system. The
team prepares questions which are simple, clear, to the point and can be answered as only a "yes" or
"no" response.

3.2. Results Found

Results found while gathering requirements regarding the problem ofthe current navigation system
in AtseTewodros campus.

 Eight campus employees say that “due to the huge coverage area of the campus as well as
the increasing number of new buildings the difficulty and time wastage of locating buildings
in the campus will be high than ever”.
 Twelve students say that “because our department schedule different classes for different
course we face the difficulty of locating our class rooms”.
 Fifteen students say that “because our dormitory buildings have similar architectural design
and color we enter to the wrong dormitory block and room”.
 Ten students say that “due to the difficulty of locating their examination room on
examination day some of us failed to take the exam and some of us failed to be punctual”.
 Thirteen fresh students say that “since both the senior and fresh student’s cafeteria are
located on the same place having almost similar architectural design we enter to senior
cafeteria”.
 Two students say that “we face theft or robbery by the person who we ask to guide them to
some location in the campus”.
 Seventeen students say that “due to the high number of populated buildings with some of
them having similar architectural design and color we are facing a huge difficulty of
locating buildings”.

These results used us as a starting point to identify the main functionalities of the new system.

11
4. Proposed System

Proposed system is an automated mobile navigation System. Through this mobile application a user
can navigate anywhere in AtseTewodros campus accurately and in quick time. The reason we pick
mobile application is that almost all users in AtseTewodros campus have a mobile phone.
Therefore, the user will have all the information he needs to navigate somewhere in the
campus on the palm of his hand all the time with him. Although there are advanced technologies
in the area of navigation such as Google map and GPS they do not work indoor meaning they are
developed to help users in outdoor location based services, and their capability not yet been
fully applied to campuses or for indoor services. Location directions within campuses or inside
most organizations are not available using Google map application.

Our proposed system is better from the existing system because of the following advantages.

 High accuracy: The system guide users to their destinations within a reasonable distance
and accurate direction.
 Quick Time:The system uses the shortest route plan to navigate the user from starting point
to the user’s destination point, so that the system helps the user to reach his desired
destination in quicker time.
 Low-cost: The system does not require any simple or expensive infrastructural changes to
obtain accurate positioning data, that is our system uses an already installed wireless access
points in AtseTewodros campus without requiring even a single infrastructural change.
 Intuitive (providing correct information) user interface (UI): The system will have an
easy-to-use UI that displays navigation hints correctly based on the user’s current state. The
system will also take into account the obstacles surrounding the user to avoid displaying any
incorrect hints. For instance, it will not tell users to go straight if there is an obstacle
immediately ahead of them.

4.1. Overview

This section of the document provides a general description including high level functionality of the
system and the systems non-functional requirements defined in terms of human natural language
and use cases.

12
4.2. Functional requirement

Search location
The user should be able to search for a location, according to several search options. A user should
be able to select multiple search options in one search. The search options are.

o Search by building number and name


o Search by office number
o Search by Department Head name
o Search by class room
o Search by Department
o Search by Dormitory block and room number
o Search by combination of the above searching methods

Navigation to a place in the campus


A user should be able to select an element (like a building or a place) on a list or a location from the
search result and should be able to detect his/her current location/position. When a selection is
made, the user should be navigated to the destination place or building.

Provide Location Information


When starting place is selected and destination place is reached, information about the starting and
ending locations as well as the intermediate locations in between should be displayed to the user.

Provide Student Information


The student should be able to view Department Course and Examination schedules, view
Registration and Clearance information, as well as his/her dormitory block and room location
information.

Manage Location Information


In order to inform new location information to the user for example, if a road is blocked, the system
should allow the Administrator to enter and edit location information.

Manage student dormitory information


In order to help fresh and senior students to locate their dormitory block and room, the dormitory
manager should be able to enter and edit the student’s dormitory information.

13
o Enter student Full Name and Id Number
o Enter Student’s Dormitory block and room number

Manage Course and Exam Schedule


In order to inform students about their course and exam schedules as well as their class room and
exam room location information, the department head should be able to enter and edit course and
examination schedule information.

Manage Registration Information


In order to provide registration information such as registration building and room location
information for students, the department head should be able to enter and edit registration location
information.

Manage lounge information


In order provide lounge information to students or campus employees. The lounge owner should be
able to enter dish/food prices, hot and soft drink prices and should be able to edit the lounge
information if there are any changes on the price.

Register User
In order to allow the Department Head, Dormitory manager and Lounge Owner to enter student
dormitory information, course and exam schedule, and lounge information, the Administrator
should be able to register the Head, the dormitory manager and the lounge owner with user-name,
Email, Department /Lounge name or Dormitory block, and password.

Furthermore

 The system should get the destination data from the user and detect the user current location
using wireless access points,
 The system should calculate the shortest path between the currentposition and the
destination taking the user's navigation preferences into account,
 The system should provide an optimal route to the user by giving real-time instructions,
 The system should update the position of the user when the mobile device enter the process
of handoff between access points,
 The system should calculate wrong paths and give real-time instructions to the user to
correct his path.

14
 The system should calculate the user’s approximate position using the Wi-Fi access points
installed in Tewodros campus.

4.3. Non-Functional Requirement

4.3.1. User Interface and Human factors

The expert that is required from user is only knowledge of mobile phone usage, computer usage and
application interface access. The interface of the proposed system is very flexible for users. The
system uses English language as well as Visual Lingua or UPL (Universal Picture Language) so that
the user is not required to know English language to use the system.

4.3.2. Documentation

The documentation should only contain user manual to provide a small help guide and tool tips

4.3.3. Hardware Consideration

The hardware required to use the system are a mobile device. The mobile device can be a laptop
computer, mobile phone or a tablet with capability of wireless communication. The system must
interact with indoor as well as outdoor access points installed in Tewodros campus for the purpose
of locating the current position of the user.

4.3.4. Performance Characteristics

The proposed system must have 2 second response time and 4 second response time in the worst
case. The system can also support concurrent 400 users simultaneously this is with best response
time. The system must support parallel transactions involving different clients from different
location.

 Response Time: The output should be generated within a maximum of 4 seconds


depending on the internet connection speed and peak hours of the Internet usage.
 Capacity: System should serve 400 users simultaneously.
 Resource Utilization: The application should utilize minimum amount of CPU and
memory of the device.

15
4.3.5. Error Handling and Extreme Conditions

If the user enters incorrect input like inserting empty string, inserting a duplicated username in to
the database or login with unregistered username and password the system should display an
appropriate message for each error.

The system should handle exceptions listed below

 Login error (unauthorized login): the system shall handle an attempt to login with
incorrect username and password and display appropriate message.
 Submitting Empty String.
 Attempt to insert duplicated username into the database while registering.
 Inserting alphabetic value in integer text field.

If electric power goes off before committing transaction the transition should fire back.

The system should display navigation hints correctly based on the user’s current state. The system
should also take into account the obstacles surrounding the user to avoid displaying any incorrect
hints. For instance, it should not tell users to go straight if there is an obstacle immediately ahead of
them.

4.3.6. Quality Issues

 Reliability: The system should not fail more than once in a month.
 Usability: The system that we develop should be easy to learn and operate. It should
need only two days of training to use the system.
 Availability: The system should be available for all working hours (24 hours).
 Portability: The system should work on both android and windows operating systems.

4.3.7. System Modifications

As the world is capable of change from time to time; there will be future change to the system as a
result of new technology invention. Therefore the system can be upgrade to the new technology by
maintainer or the system developers.
System is a summation of simple modules that focuses to specific task. So the updating or editing is
easy rather than studying the whole parts. It may not necessary to change the complete system in

16
the future, because most of the data are not directly depending on with the phone or mobile device
so the system can be easily modified.

4.3.8. Physical Environment

User interface part of the system will be deployed on the user’s mobile phone and database part of
the system will be deployed on central server located in Tewodros campus. While users retrieving
data from the central server or getting positioning data (MAC ADDRESS) from wireless access
points, the system should with stand weather conditions such as high rain fall.

4.3.9. Security Issues

The system must give a maximum trial of 3 chances for user to enter their authentication
information for logging in to system after 3 chances the system must block the user from login to
the system for 5 minutes for first time and this should continue blocking the user for 24 hours.
Anonymous users should only have access information about locations only. User information like
password should be stored in the database in encrypted form.

4.3.10. Resource Issues

 Server : Minimum hardware requirements for Apache server are:


- CPU: 32 bit or 64 bit
- Cores: single core 3hz or higher dual core 2GHz or higher is recommended
 Client:
- CPU: 32 or 64 bit
- RAM: 600 MB or higher

17
5. System Model

5.1. Scenario

Search Location
User selects search location link. System displays Search Form. The user selects search option then
provides a keyword and submits the form. The system checks the availability of the Location and
display the search result for the location along with navigate to search result link.

Navigate to search Result Location


After the system displays search result user presses navigate to search result link. If connection is
available, the system automatically detects the current location of the user and display 3D
navigation route to the search result from the user’s current location.

Switch Search Result View


After the system displays search result user presses switch result view link. System changes the
search result view from list view to 2D map view.

Change map view setting


The user select setting Link then select map view setting link.The system display map View options
(3D view and top view), theuser select top view then system change the map view Setting and
display Top view map of Tewodros campus.

Change Navigation speed setting


The user select setting Link then select navigation speed setting link. The system displays speed
control slider (Slow, Normal and Fast), then the user adjusts the slider position and system changes
the navigation speed setting.

Change volume setting


The user select setting link then selects volume setting link. The system displays volume control
slider (low, medium, high and mute), then the user adjusts the slider position and system changes
the volume setting.

18
Change Voice Guidance Setting
The user selects setting link then select voice guidance setting link. The system displays voice
guidance options (Enable and Disable), then the selects disable voice guidance link and system
disables voice guidance.

Set Way Points


User selects start navigation link. System displays set starting way point menu. The user select set
starting way point menu and System displays sub menu with available locations in Tewodros
campus.User selects location and system set the starting way point and display set destination way
point menu .The user select set destination way point menu. System displays sub menu with
available locations in Tewodros campus. The user selects location then system set destination way
point.

Navigate to Destination Waypoints


User selects navigate to destination way point link. System displays Tewodros campus map and
navigate the user from starting way point to destination way point.

Detect Current Position


The user selects start navigation link. System displays set starting way point menu. The user selects
set starting way point menu. System displays submenu with available locations in Tewodros
campus with auto detect current location link. The user select auto detect current location link then
the system detects the approximate position of the user.

View Dormitory Information


Student selects view dormitory information menu. The system displays enter ID number Form.
Student enters his/her ID number and submits the form. System validates the entered ID number
and display dormitory information (dormitory block, dormitory number, and dormitory status) with
navigate to dormitory link.

Navigate to Dormitory
After viewing dormitory information student presses navigate to dormitory link. System
automatically detected the current location of the student and displays 3D navigation route to the
student’s dormitory block.

19
View Course Schedule
Student selects view course schedule menu.System displays enter department name Form. The
students enters department name and submit the form.The system displays department course
schedule information with navigate to class room link.

Navigate to Class Room


After viewing department course schedule, student presses navigate to class room link. System
automatically detects the current location of the student and display 3D navigation rout to the
student’s class room.

View Exam Schedule


Student selects view exam schedule menu. System displays enter department name Form. The
students enters department name and submit the form. The system displays department exam
schedule information with navigate to exam room link.

Navigate to Exam Room


After viewing department exam schedule, student presses navigate to exam room link. System
automatically detects the current location of the student and display 3D navigation rout to the
student’s exam room.

View Clearance Information


Student selects view clearance information menu. System displays enter department name Form.
The students enters department name and submit the form. The system displays clearance
information with navigate to clearance room link.\

Navigate to Clearance Rooms


After viewing clearance information, student presses navigate to clearance room link. System
automatically detects the current location of the student and display 3D navigation rout to the
clearance rooms in sequence.

View Registration Information


Student selects view registration information menu. System displays enter department name Form.
The students enters department name and submit the form. The system displays registration
information with navigate to registration room link.

20
Navigate to Registration Room
After viewing registration information student presses navigate to registration room link. System
automatically detects the current location of the student and display 3D navigation rout to the
registration room.

Administrator log-in
Administrator enters username and password. The system checks weather the entered username and
Password is valid. If it’s valid Administrator logs in to the system. The system displays all available
administration operations that the Administrator can perform.

Register User
Lounge owner request for create account. Administrator logs into the system with username and
password and select manage user account information link. Then the System displays create user
account link, edit user account link, and delete user account link. Admin selects create user account
link. System displays signup form and prompts the Admin to enter account information: (user
name, password, and lounge name). Admin prompt the lounge owner to enter the account
information. The Lounge owner fills all the information (user name, password, e-mail and lounge
name) and the Administrator submits the information to the system. The system validates the
information and creates Lounge owner Account and display message user created.

Delete User Account


Admin log in to the system with username and password. Admin selects manage user account
information link. System displays create user account link, edit user account link, and delete user
account link and Admin selects delete user account link. System displays User search Form. Admin
selects a search option then insert a key word and submit it to the system. System checks the
availability of the user and displaysa search result of user list with delete link.the Administrator
selects the user that is about to be removed and select delete. System prompts the Administrator if
he/she is sure to permanently remove the user. Administrator confirms. The system removes all the
information that the user has and displays user Deleted Notification.

Enter Location information


Administrator log in to the system with username and password and select manage location
information menu. System displays Enter Location Information and Edit Location Information
submenus. Administrator selects enter location information submenu. System displays add location

21
information form. Administrator enters Location information and submits the form. The system
validates and maintains the entered information.

Edit Location information


Administrator log in to the system with username and password and select manage location
information menu. System displays Enter Location Information and Edit Location Information
submenus. Administrator selects edit location information submenu. System displays previous
location information with edit location form. Administrator types the new Location information and
submits the form. System validates and edits the previous location information.

Enter Dormitory Information


Dormitory Manager logs in to the system with username and password,and select manage
dormitory information link. System display enter dormitory information link, Edit dormitory
information,and delete dormitory information links.Dormitory Manager Selectsenter dormitory
information link. System displays add dormitory information form. Dormitory Manager enters
student dormitory information and submits the form.The system validates and maintains the entered
information

Edit Dormitory Information


Dormitory Manager logs in to the system with username and password, and select manage
dormitory information link. System display enter dormitory information link, Edit dormitory
information, and delete dormitory information links. Dormitory Manager Selects edit dormitory
information link. System displays student search form. Dormitory Manager enters Student ID
number and submits the form. System displays the previous dormitory information of the student
withedit dormitory information form. Dormitory Manager enters new student dormitory
information and submits the form. The system validates the entered information and edits the
student information.

Delete Dormitory Information


Dormitory Manager logs in to the system with username and password, and select manage
dormitory information link. System display enter dormitory information link, Edit dormitory
information, and delete dormitory information links. Dormitory Manager Selects delete dormitory
information link. System displays student search form. Dormitory Manager enters Student ID
number and submits the form. System displays student dormitoryinformation with delete

22
link.Dormitory Manager select delete link. System prompts the Dormitory Manager if he/she is sure
to permanently remove the student dormitory information. Dormitory Manager confirms. The
system removes all the information that the student has and displays student dormitory information
Deleted Notification

Enter course schedule information


Department Head log in to the system with username and password and select manage course
schedule menu. System displays enter course schedule and edit course schedule submenus.
Department Head selects enter course schedule submenu. System displays add course schedule
form. Department Head enters course schedule information and submit the form. The system
validates and maintains the entered information.

Edit course schedule information


Department Head log in to the system with username and password andselect manage course
schedule menu. System displays enter course schedule and edit course schedule submenus.
Department Head selects edit course schedule submenu. System displays previous course schedule
information with edit course schedule form. Department Head types the new course schedule
information and submits the form. System validates and edits the previous course schedule.

Enter exam schedule information


Department Head log in to the system with username and password and select manage exam
schedule menu. System displays enter exam schedule and edit exam schedule submenus.
Department Head selects enter exam schedule submenu. System displays add exam schedule form.
Department Head enters exam schedule information and submits the form. The system validates
and maintains the entered information.

Edit exam schedule information


Department Head log in to the system with username and password and select manage exam
schedule menu. System displays enter exam schedule and edit exam schedule submenus.
Department Head selects edit exam schedule submenu. System displays previous exam schedule
information with edit exam schedule form. Department Head types the new exam schedule
information and submits the form. System validates and edits the previous exam schedule.

23
Lounge Owner Log-In
Lounge Owner enters username and password. The system checks weather the entered username
and Password is valid. If it’s valid Lounge owner logs in to the system. The system displays all
available operations that the lounge owner can perform.

Enter lounge information


Lounge owner log in to the system with username and password and select manage lounge
information menu. System displays enter lounge information and edit lounge information
submenus. Lounge owner selects enter lounge information submenu. System displays add lounge
information form. Lounge owner enters lounge information and submit the form. The system
validates and maintains the entered information.

Edit lounge information


Lounge owner log in to the system with username and password and select manage lounge
information menu. System displays enter lounge information and edit lounge information
submenus. Lounge owner selects edit lounge information submenu. System displays previous
lounge information with edit lounge information form. Lounge owner types the new lounge
information and submits the form. System validates and edits the previous lounge information.

24
5.2. Use case Model

5.2.1. Use case Diagram

25
Figure 2 Use case
Note thatOther Users stands for campus visitors and campus employees

26
5.2.2. Description of Use Case Model
Use case name:Search Location
Actor: Student, campus visitors, car drivers, campus employees
Summary: the user search for location in Tewodros campus.
Precondition: system is idle displaying navigation operations.
Main sequence:
1 The user selects search location link.
2 The system displays search form.
3 The user selectssearch options like: Search by Department Head name, Search by building
number and name, Search by office number, Search by class room, search by
Department,Search by Dormitory block, search by parking slots, search by car garage or
select a combination of this options and enter a key word then submits the form.
4 The system checks the availability of the location.
5 If the location is available the system displays the search result for the location( building
name and number, distance from the current location in meter, Facility name, Department
name ,switch result view link and show navigation link).
Alternative flow of event
Step 5: If the location is not available the system displays amessage location is not available in
AtseTewodros campus.
Post condition: the user gets search result about the location.

Use case name:Navigate to Search Result Location


Actor: Student, campus visitors, car drivers, campus employees
Summary:user views the rout or path to the search result location
Dependency: Include Search Location use case
Precondition: system is displaying search result information
Main sequence:
1 Include Search Location use case
2 User presses show navigation link.
3 If connection is available, system automatically detect the current location of the user
4 System displays 3D Navigation route to the search result location.

27
Alternative flow of event
Step 3: If connection is not available, the system displays Enter current location Form and prompt
the user to enter his/her current location.
Post condition: system displayed the route of the search result location.

Use case name:Switch Search Result View


Actor: Student, campus visitors, car drivers, campus employees
Summary:the user changes the result view.
Dependency: Include Search Location use case.
Precondition:system displays a search result in list view.
Main sequence:
1 Include search Location use case.
2 The user presses switch result view link.
3 The system displays 2D (two dimensional) map view of the search result location.
Post condition:The system changes the search result from list view to map view. .

Use case name:Change map view Setting


Actor: Student, campus visitors, car drivers, campus employees
Summary: the user changes system map view setting.
Precondition:system is displaying navigation route to some destination
Main sequence:
1 The user select setting link.
2 The system displays map view setting, navigation speed setting, volume setting and voice
guidance setting.
3 The user select map view setting link.
4 System displays map view options: 3D view, Top view.
5 The user selects 3D view/Top view.
6 System changes the map view.
Post condition:system changed the map view setting.

28
Use case name:Change Navigation speed Setting
Actor: Student, campus visitors, car drivers, campus employees
Summary: the user changes system navigation speed setting.
Precondition: system navigation speed is normal.
Main sequence:
1 The user select setting link.
2 The system displays map view setting, navigation speed setting, volume setting and voice
guidance setting.
3 The user select navigation speed setting.
4 System displays speed control slider: Slow, Normal and Fast.
5 The user adjusts the slider position.
6 System changes navigation speed setting.
Post condition: system changed the navigation speed setting.

Use case name:Change Volume Setting


Actor: Student, campus visitors, car drivers, campus employees
Summary: the user changes system volume setting.
Precondition: system volume setting is normal.
Main sequence:
1 The user select setting link.
2 The system displays map view setting, navigation speed setting, volume setting and voice
guidance setting.
3 The user selectsvolume setting.
4 System displays volume control slider: low volume, Normal volume, High volume and
Mute.
5 The user adjusts the slider position.
6 System changes volume setting..
Post condition: system changed the volume setting.

Use case name:Change Voice Guidance Setting


Actor: Student, campus visitors, car drivers, campus employees
Summary: the user changes system voice guidance setting.

29
Precondition: system voice guidance is enabled.
Main sequence:
1 The user select setting link.
2 The system displays map view setting, navigation speed setting, volume setting and voice
guidance setting.
3 The user selectsvoice guidance setting.
4 System displays voice guidance options: Enable voice guidance and Disable voice guidance.
5 The user selects disable voice guidance.
6 System disablesvoice guidance.
Post condition: system changed the voice guidance setting.

Use case name:Set Way Points


Actor: Student, campus visitors, car drivers, campus employees
Summary: the student set the starting and destination positions for navigation.
Precondition: system is idle displaying navigation operations.
Main sequence:
1 The user selects start navigation link.
2 The system displays set starting way point menu.
3 The user select set starting way point menu.
4 System displays sub menu with available locations in Twodros campus and auto detect
current location link.
5 The user selects location.
6 The system set the starting way point and display set destination way point menu.
7 The user select set destination way point menu.
8 System displays sub menu with available locations in Twodros campus.
9 The user selects location.
10 The system set the destination way point.
Post condition: system set starting and destination locations.

Use case name:Navigate To Destination Waypoint


Actor: Student, campus visitors, car drivers, campus employees
Summary: the user navigates to destination point.

30
Precondition: system sets starting and destination way points.
Dependency: Includes Set Way Point use case
Main sequence:
1 Includes Set Way Point Use case.
2 The user selects navigate link.
3 System display Tewodros campus map and navigate the user from starting way point to
destination way point.
Post condition: user reached his/her destination.

Use case name:Detect Current Position


Actor: Student, campus visitors, car drivers, campus employees
Summary:user detects the current location of him/her in Tewodros campus.
Precondition: system is idle displaying navigation operations.
Main sequence:
1 The user selects start navigation link.
2 The system displays set starting way point menu.
3 The user select set starting way point menu.
4 System displays sub menu with available locations in Twodros campus and auto detect
current location link.
5 The user select auto detect current location link.
6 If connection is available, the system detects the approximate position of the user with
respect to currently connected wireless access point, set the starting way point and display
information about the location.
Alternative sequence:
Step 6:If connection is not available the system prompts the user to select his location manually.
Post condition: system automatically detects the user current location.

Use case name:View DormitoryInformation


Actor: Student
Summary: student viewshis/her own dormitory information such as dormitory block and number
as well as status of the dormitory.
Precondition: system maintains student’s dormitory information.
Main sequence:

31
1 Student select view dormitory information menu.
2 System displays enter ID number form.
3 Student enters ID number and submits the form.
4 System validates if the entered ID number exists and the value is not empty string.
5 If the entered value is valid, system displays the dormitory information: dormitory block,
dormitorynumber, dormitory status, and navigate to dormitory link.
Alternative Sequence:
Step 6: if the entered ID number does not exist system displays error message: ID number does not
exist
If the entered value is empty string system displays error message: empty text field
Post condition: system displayed dormitory information

Use case name:Navigate to Dormitory


Actor: Student
Summary: student views the rout or path to his/her dormitory block
Dependency: Include view dormitory information use case
Precondition: system is displaying dormitory information.
Main sequence:
1 Include View Dormitory Information use case.
2 Student presses navigate to dormitory link.
3 If connection is available, system automatically detect the current location of the user
4 System displays 3D Navigation route to the dormitory location.
Alternative flow of event
Step 3: If connection is not available, the system displays Enter current location Form and prompt
the user to enter his/her current location.

Post condition: system displayed the student’s dormitory block and dormitory status.

Use case name:View Course Schedule


Actor: Student
Summary: student views his/her own department class and course schedule
Precondition: system maintains student’s Department course scheduleinformation.
Main sequence:

32
1 Student select view course schedule link.
2 System displays enter Department name Form.
3 Student enter department name and submit the form.
4 System validates if the department name exists and if the entered value is not an empty
string
5 If the entered value is valid, System displays Department course schedule information:
Course name, Instructor name, credit hours, Class room, and navigate to class room link.
Alternative sequence:
Step 6: if the entered department name does not exist system displays error message: Department
name does not exist
If the entered value is empty string system displays error message: empty text field
Post condition: system displayed Department course schedule information

Use case name:Navigate to Class Room


Actor: Student
Summary: student views the rout or path to his/her class room
Dependency: Include view class schedule use case
Precondition: system is displaying class schedule information.
Main sequence:
1 Include View Class Schedule use case.
2 Student presses navigate to class room link.
3 If connection is available, system automatically detect the current location of the user
4 System displays 3D Navigation route to student’s class room.

Alternative flow of event


Step 3: If connection is not available, the system displays Enter current location Form and prompt
the user to enter his/her current location.
Post condition: system displayed the student’s class room navigation route.

Use case name:View Exam Schedule


Actor: Student
Summary: student views his/her own department Exam schedule
Precondition: system maintains student’s Department exam schedule information.
Main sequence:

33
1 Student select view exam schedule menu.
2 System displays enter Department name Form.
3 Student enter department name and submit the form.
4 System validates if the department name exists and if the entered value is not an empty
string
5 If the entered value is valid, System displays Department exam schedule information:
Course name, Instructor name, credit hours, Class room, and navigate to exam room link.
Alternative sequence:
Step 6: if the entered department name does not exist system displays error message: Department
name does not exist
If the entered value is empty string system displays error message: empty text field
Post condition: system displayed Department course schedule information

Use case name:Navigate to Exam Room


Actor: Student
Summary: student views the rout or path to his/her exam room
Dependency: Include View ExamSchedule use case
Precondition: system is displaying exam schedule information.
Main sequence:
1 Include View Exam Schedule use case.
2 Student presses navigate to exam room link.
3 If connection is available, system automatically detect the current location of the user
4 System displays 3D Navigation route to student’s exam room.
Alternative flow of event
Step 3: If connection is not available, the system displays Enter current location Form and prompt
the user to enter his/her current location.
Post condition: system displayed the student’s exam room navigation route.

Use case name:View Clearance Information


Actor: Student
Summary: student views his/her own department class and course schedule

34
Precondition: system maintains student’s Department clearance day information.
Main sequence:
1 Student presses view clearance day informationmenu.
2 System displays enter Department name Form.
3 Student enters Department name.
4 System validates if the entered Department name exists and if the entered value is not empty
string.
5 If the entered value is valid, System displays clearance day information: clearance building
number, clearance room name and number, clearance room sequence, show navigation link.
Alternative sequence:
Step 6: if the entered department name does not exist system displays error message: Department
name does not exist
If the entered value is empty string system displays error message: empty text field
Post condition: system displayed student’s clearance information

Use case name:Navigate to Clearance Rooms


Actor: Student
Summary: student views the rout or path to each clearance rooms
Dependency: Include view clearance day information use case
Precondition: system is displaying clearance day information.
Main sequence:
1 Include View Clearance Information use case.
2 Studentpresses show navigation link.
3 If connection is available, system automatically detect the current location of the user
4 System displays 3D Navigation route to the clearance rooms in sequence.
Alternative flow of event
Step 3: If connection is not available, the system displays Enter current location Form and prompt
the user to enter his/her current location.
Post condition: system displayed the route of each clearance rooms.

Use case name:View Registration Information


Actor: Student

35
Summary: student views his/ her registration day information.
Precondition: system maintains student’s registration day information.
Main sequence:
1 Student presses view registration information menu.
2 System displays enter Department name Form.
3 Student enters department name.
4 System validates if the entered department name exists and if the entered value is not empty
string.
5 If the entered value is valid, System displays registration day information: registrar building
number, registration room name and number, and show navigation link.
Alternative sequence:
Step 6: if the entered department name does not exist system displays error message: Department
name does not exist
If the entered value is empty string system displays error message: empty text field
Post condition: system displayed registration day information

Use case name:Navigate to Registration Room


Actor: Student
Summary: student views the rout or path to registration room
Dependency: Include view registration day information use case
Precondition: system is displaying clearance day information.
Main sequence:
1 Include View Registration Information use case.
2 Student presses show navigation link.
3 If connection is available, system automatically detect the current location of the user
4 System displays 3D Navigation route to registration room form the student’s current
location.
Alternative flow of event
Step 3: If connection is not available, the system displays Enter current location Form and prompt
the user to enter his/her current location.
Post condition: system displayed the route to registrar office.

36
Use case name:View Lounge information
Actor: Student
Summary: student views lounge information like dish/food price, and soft/hot drink price.
Precondition: system maintains lounge information.
Main sequence:
1 Student presses view lounge information menu.
2 System displays enter lounge name Form.
3 Student enters lounge name.
4 System validates if the entered lounge name exists and if the entered value is not empty
string.
5 If the entered value is valid, system displays lounge information (lounge name, dish/food
price, hot and soft drink price) and show navigation link.
Alternative sequence:
Step 6: if the entered lounge name does not exist system displays error message: lounge
name does not exist
If the entered value is empty string system displays error message: empty text field
Post condition: system displayed lounge information

Use case name:Navigate to Lounge


Actor: Student
Summary: student views the rout or path to lounge
Dependency: Include view lounge information use case
Precondition: system is displaying lounge information.
Main sequence:
1 Include View Lounge Information use case.
2 Student presses show navigation link.
3 If connection is available, system automatically detect the current location of the user
4 System displays 3D Navigation route to lounge form the student’s current location.
Alternative flow of event
Step 3: If connection is not available, the system displays Enter current location Form and prompt
the user to enter his/her current location.

37
Post condition: system displayed the route to lounge.

Use case name:Administrator log-in


Actor: Admin
Summary: System validates Admin Identity
Precondition: system is idle displaying Login Form
Main sequence
1 Admin enters username and password.
2 System checks weather the entered username and password matches with the username and
password maintained in the system
3 If username and password matches Admin logs in to the system.
4 System displays all available administration operations like manage account information,
manage user account information,and manage location information
Alternative sequences
Step 3: If the system determines that the entered username or password are invalid the system
displays error message and prompt the Admin to enter valid username and password.
Post condition: The Admin has successfully logged in.

Use case name:Register User


Actor: Admin
Summary: The Admin registers or creates account through the system for lounge owner.
Dependency: Include Administrator log-in use case
Precondition: system is idle displaying administration operations.
Main sequence
1 Department Head/Lounge Owner request for create account
2 Include Administrator log-in use case
3 The Admin selects manage user account menu.
4 System displays create user account sub menu, edit user account sub menu, and delete user
account sub menu.
5 Admin selects create user account link.
6 System displays signup form.

38
7 Admin prompt the Department Head/Lounge Owner to enter account information: user
name, password and Email.
8 The Department Head/Lounge Owner fills all the information (user name, password,and e-
mail) and submits it to the system. .
9 The system validates if the entered username is not duplicated (or already exists), validate if
the entered password is at least four characters and validate if the entered values are not
empty string.
10 If the entered values are valid the system creates Department Head/Lounge Owner Account
and display the message user registered successfully.
Alternative sequences
Step 10: If the entered values are empty string the system display error message empty text field
: If the entered password is less than four characters, the system displays enter at least four
characters message.
: If the entered username already exists the system displays message that says lounge owner
with this username already exists.
Post condition:the Department Head/Lounge Owner has registered

Use case name:Delete User Account


Actor: Admin
Summary: Admin deletes lounge owner and department Head information.
Dependency: Includes Administrator log-in use case.
Precondition: the lounge owner or department Head has user account.
Main sequence
1 Includes Administrator log-in use case.
2 The Admin selects manage user account menu.
3 System displays create user account submenu, edit user account submenu, and delete user
account submenu.
4 Admin selects delete user account submenu.
5 System displays User search Form with search options: search by name and search by Id
number.
6 Admin selects a search option (search by name or search by Id number) then inserts a key
word and submit it to the system.

39
7 System checks the availability of the user
8 If user exists, System displays User List Table and delete link.
9 Admin selects the user information that is about to be removed and selects delete link. .
10 System prompts the Admin if he/she is sure to permanently delete the user information.
11 If Admin confirms that he/she is sure to remove user information the system removes all the
information that the user has and displays user Deleted Notification.
Alternative sequence
Step 8: if the user does not exist the system displays no such user exists message.
Step 11: If the Admin cancels the delete transaction the user information remains maintain on the
system.
Post condition: The user information has been removed.

Use case name:Enter Location information


Actor:Administrator
Summary: Administrator enters location information.
Dependency: Include Administrator Log-In
Precondition: system is idle displaying all available Administration operations.
Main sequence
1 Include Administrator Log-In use case.
2 Administrator selects Manage Location information menu.
3 System displays Enter Location Information and Edit Location Information submenus
4 Administrator selects Enter Location Information submenu.
5 System displays add location form.
6 Administrator types the Location information (Building number, Building name, Location
Description) to Location Information form, and submits the form.
7 The system validates if the entered values are not empty string.
8 If the entered values are valid, system inserts/maintains the Location information and
display Location information has successfully added message.
Alternative sequences
Step 8: If the system determines that the entered values are invalid the system displays error
message empty text field.
Post condition: System maintain/hold Location information.

40
Use case name:Edit Location Information
Actor:Administrator
Summary: Administrator editsLocation information.
Dependency: Include Administrator Log-In
Precondition: system maintains Location information.
Main sequence
1 Include Administrator Log-In use case.
2 Administrator selects Manage Location information menu.
3 System displays Enter Location Information and Edit Location Information submenus.
4 Administrator selects Edit Location Information submenu.
5 System displays search location form and prompt the Administrator to enter Location
Building number.
6 Administrator type in Building Number and submit the form.
7 If location exists, System displays previous Location information (Building number,
Building name, Location Description) and Edit Location InformationForm.
8 Administrator type in the new Location information (Building number, Building name,
Location Description) to the edit location information form, and submit the form.
9 The system validates if the entered values are not empty string.
10 If the entered values are valid, system inserts/maintains the location information and
display location information has successfully edited message.
Alternative sequences
Step 7: If the location does not exist system displays location does not exist message.
Step 10: If the system determines that the entered values are invalid the system displays error
message empty text field.
Post condition: System has edited location information.

Use case name:Department Head Log-In


Actor: Department Head
Summary: System validates Department Head Identity
Precondition: system is idle displaying Login Form

41
Main sequence
1 Department Head enters username and password.
2 System checks weather the entered username and password matches with the username and
password maintained in the system
3 If username and password matches Department Head logs in to the system.
4 System displays all available operations like manage account information, manage course
schedule, manage Exam schedule, manage registration information, and manage clearance
information.
Alternative sequences
Step 3: If the system determines that the entered username or password are invalid the system
displays error message and prompt the Department Head to enter valid username and password.
Post condition: The Department Head has successfully logged in.

Use case name:Enter course schedule information


Actor: Department Head
Summary: Department Head enters course schedule information.
Dependency: Include Department Head Log-In
Precondition: system is idle displaying all available Department Head’s operations.
Main sequence
1 Include Department Head Log-In use case.
2 Department Head selects Managecourse schedule information menu.
3 System displays enter course schedule and edit course schedule submenus
4 Department Head selects enter course schedule submenu.
5 System displays add course schedule form.
6 Department Head types the course schedule information (Department name, year of batch,
semester,course name, instructor name, credit hour, time, date, building number and class
room) to the course schedule form, and submit the form.
7 The system validates if the entered values are not empty string.
8 If the entered values are valid, system inserts/maintains the course schedule information
and display course schedule information has successfully added message.
Alternative sequences

42
Step 8: If the system determines that the entered values are invalid the system displays error
message.
Post condition: System maintain/holdcourse schedule information.

Use case name:Edit course schedule information


Actor: Department Head
Summary: Department Head edit course schedule information.
Dependency: Include Department Head Log-In
Precondition: system maintains course schedule information.
Main sequence
1 Include Department Head Log-In use case.
2 Department Head selects Manage course schedule information menu.
3 System displays enter course schedule and edit course schedule submenus.
4 Department Head selects edit course schedule submenu.
5 System displays search exam schedule form and prompt the department Head to select year
of batch.
6 Department Head select year of batch and submit the form.
7 System display previous course schedule information (Department name, year of batch,
semester, course name, instructor name, credit hour, time, date, building number and class
room) and edit course schedule form.
8 Department Head types the new course schedule information (Department name, batch
year, semester, course name, instructor name, credit hour, time, date, building number and
class room) to the edit course schedule form, and submit the form.
9 The system validates if the entered values are not empty string.
10 If the entered values are valid, system inserts/maintains the course schedule information
and display course schedule information has successfully edited message.
Alternative sequences
Step 10: If the system determines that the entered values are invalid the system displays error
message.
Post condition: System has edited course schedule information.

Use case name:Enter Registration information

43
Actor: Department Head
Summary: Department Head enters registration information.
Dependency: Include Department Head Log-In
Precondition: system is idle displaying all available Department Head’s operations.
Main sequence
1 Include Department Head Log-In use case.
2 Department Head selects Manage Registration information menu.
3 System displays enter registration information and edit registration information submenus
4 Department Head selects enter registration information submenu.
5 System displays add registration information form.
6 Department Head types registration information (faculty name, Department name,
registration building and registration room) to the add registration information form, and
submit the form.
7 The system validates if the entered values are not empty string.
8 If the entered values are valid, system inserts/maintains the registration information and
display registration information has successfully added message.
Alternative sequences
Step 8: If the system determines that the entered values are invalid the system displays error
message.
Post condition: System maintain/hold registration information.

Use case name:Edit registration information


Actor: Department Head
Summary: Department Head edit registration information.
Dependency: Include Department Head Log-In
Precondition: system maintains registration information.
Main sequence
1 Include Department Head Log-In use case.
2 Department Head selects Manage registration information menu.
3 System displays enter registration information and edit registration information submenus.
4 Department Head selects edit registration information submenu.

44
5 System display previous registration information (faculty name, Department name,
registration building and registration room) and edit registration information form.
6 Department Head types the new registration information (faculty name, Department name,
registration building and registration room) to the edit registration form, and submit the
form.
7 The system validates if the entered values are not empty string.
8 If the entered values are valid, system inserts/maintains the registration information and
display registration information has successfully edited message.
Alternative sequences
Step 8: If the system determines that the entered values are invalid the system displays error
message.
Post condition: System has edited registration information.

Use case name:Enter exam schedule information


Actor: Department Head
Summary: Department Head enters exam schedule information.
Dependency: Include Department Head Log-In
Precondition: system is idle displaying all available Department Head’s operations.
Main sequence
1 Include Department Head Log-In use case.
2 Department Head selects Manage exam schedule information menu.
3 System displays enter exam schedule and edit exam schedule submenu
4 Department Head selects enter exam schedule submenu.
5 System displays add exam schedule form.
6 Department Head types the exam schedule information (Department name, year of batch,
semester,course name, examiner name, time, date, building number and class room) to the
exam schedule form, and submits the form.
7 The system validates if the entered values are not empty string.
8 If the entered values are valid, system inserts/maintains the exam schedule information and
display exam schedule information has successfully added message.
Alternative sequences

45
Step 8: If the system determines that the entered values are invalid the system displays error
message.
Post condition: System maintain/hold exam schedule information.

Use case name:Edit exam schedule information


Actor: Department Head
Summary: Department Head edit exam schedule information.
Dependency: Include Department Head Log-In
Precondition: system maintains exam schedule information.
Main sequence
1 Include Department Head Log-In use case.
2 Department Head selects Manage exam schedule information menu.
3 System displays enter exam schedule and edit exam schedule submenus.
4 Department Head selects edit exam schedule submenu.
5 System displays search exam schedule form and prompt the department Head to select year
of batch.
6 Department Head select year of batch and submit the form.
7 System display previous exam schedule information of the batch (Department name, year
of batch, semester, course name, examiner name, time, date building number and class
room) and edit exam schedule form.
8 Department Head types the new exam schedule information (Department name, year of
batch, semester, course name, examiner name, time, date building number and class room)
to the edit exam schedule form, and submit the form.
9 The system validates if the entered values are not empty string.
10 If the entered values are valid, system inserts/maintains the course schedule information
and display exam schedule information has successfully edited message.
Alternative sequences
Step 10: If the system determines that the entered values are invalid the system displays error
message.
Post condition: System has edited course schedule information.

Use case name:Dormitory Manager Log-In

46
Actor: Lounge Owner
Summary: System validates Dormitory manager’s Identity
Precondition: system is idle displaying Login Form
Main sequence
1 Dormitory manager enters username and password.
2 System checks weather the entered username and password matches with the username and
password maintained in the system
3 If username and password matches Dormitory manager logs in to the system.
4 System displays all available operations like manage account information, and manage
dormitory information.
Alternative sequences
Step 3: If the system determines that the entered username or password are invalid the system
displays error message and prompt the Dormitory manager to enter valid username and password.
Post condition: The Dormitory manager has successfully logged in.

Use case name:Enter Dormitory Information


Actor: Dormitory Manager
Summary: Dormitory Manager enters or maintains student dormitory information into the system.
Dependency: Include Dormitory Manager Log-In
Precondition: system is idle displaying all available Dormitory Manager’s operations.
Main sequence
1 Include Dormitory Manager Log-In use case.
2 Dormitory Manager selects manage dormitory information menu
3 System displays Enter dormitory information, edit dormitory information, and delete
dormitory information.
4 Dormitory Manager Selects enter dormitory information submenu.
5 System displays add dormitory information form.
6 Dormitory Manager types the dormitory information (student full name, student id number,
student dormitory block and room number) to add dormitory information form, and submits
the form.
7 The system validates if the entered values are not empty string.

47
8 If the entered values are valid, system maintains the student dormitory information and
display dormitory information has successfully added message.
Alternative sequences
Step 8: If the system determines that the entered values are invalid the system displays error
message.
Post condition: System maintain/hold student information.

Use case name:Edit Dormitory Information


Actor: Dormitory Manager
Summary: Dormitory Manager edits or changes student dormitory information.
Dependency: Include Dormitory Manager Log-In
Precondition: system maintains/holds the student dormitory information.
Main sequence
1 Include Dormitory Manager Log-In use case.
2 Dormitory Manager selects manage dormitory information menu
3 System displays Enter dormitory information, edit dormitory information, and delete
dormitory information.
4 Dormitory Manager selects edit student information submenu.
5 System display student search form.
6 Dormitory Manager enters student ID number to the search form and submits the form.
7 System checks the availability of the student
8 If student exists, system display student previous dormitory information (student full name,
student id number, student dormitory block and room number) and edit student dormitory
information form.
9 Dormitory Manager types the new student dormitory information (student full name,
student id number, student dormitory block and room number) to the edit student dormitory
form, and submits the form.
10 The system validates if the entered values are not empty string.
11 If the entered values are valid, system inserts the edited student dormitory information and
display student dormitory information has successfully edited message.
Alternative sequences

48
Step 3: If the system determines that the entered values are invalid the system displays error
message.
Post condition: System inserted the edited student dormitory information.

Use case name:Delete dormitory Information


Actor: Dormitory Manager
Summary: Dormitory Manager deletes student dormitory information information.
Dependency: Includes Dormitory Manager log-in use case.
Precondition: The system maintains/hold the student’s dormitory information.
Main sequence
1 Includes Dormitory Manager log-in use case.
2 Dormitory Manager selects manage dormitory information menu
3 System displays Enter dormitory information, edit dormitory information, and delete
dormitory information.
4 Dormitory Manager Selects delete dormitory information submenu.
5 System displays student search Form.
6 Dormitory Manager inserts the Id number of the student and submits it to the system.
7 System checks the availability of the student
8 If student exists, System displays previous student dormitory information and delete link.
9 Dormitory Manager selects delete link.
10 System prompts the Dormitory Manager if he/she is sure to permanently delete the student’s
dormitory information.
11 If Dormitory Manager confirms that he/she is sure to remove student’s dormitory
information the system removes all the dormitory information that the student has and
displays student dormitory information Deleted Notification.
Alternative sequence
Step 8: if the student does not exist the system displays student with this id number doesn’t exist
message.
Step 11: If the Dormitory Manager cancels the delete transaction the student dormitory information
remains maintain on the system.
Post condition: The student dormitory information has been removed.

49
Use case name:Lounge Owner Log-In
Actor:Lounge Owner
Summary: System validates Lounge owner Identity
Precondition: system is idle displaying Login Form
Main sequence
5 Lounge Owner enters username and password.
6 System checks weather the entered username and password matches with the username and
password maintained in the system
7 If username and password matches Lounge Owner logs in to the system.
8 System displays all available operations like manage account information,and manage
lounge information.
Alternative sequences
Step 3: If the system determines that the entered username or password are invalid the system
displays error message and prompt the lounge owner to enter valid username and password.
Post condition: The lounge owner has successfully logged in.

Use case name:Enter lounge information


Actor: Lounge Owner
Summary: Lounge Owner enters lounge information.
Dependency: Include Lounge Owner Log-In
Precondition: system is idle displaying all available Lounge Owner‘s operations.
Main sequence
1 Include Lounge Owner Log-In use case.
2 Lounge Owner selects manage lounge information menu
3 System displays enter lounge information edit lounge information and delete lounge
information submenus
4 Lounge Owner selects enter lounge information submenu.
5 System displays add lounge information form.
6 Lounge Owner types the lounge information (lounge name, dish name, dish/food price,
drink price, drink price, and Lounge Building Number) to the lunge information form, and
submits the form.
7 The system validates if the entered values are not empty string.

50
8 If the entered values are valid, system inserts/maintains the lounge information and display
lounge information has successfully added message.
Alternative sequences
Step 8: If the system determines that the entered values are invalid the system displays error
message.
Post condition: System maintain/hold lounge information.

Use case name:Edit lounge information


Actor: Lounge Owner
Summary: Lounge Owner edits lounge information.
Dependency: Include Lounge Owner Log-In
Precondition: system maintains/hold lounge information.
Main sequence
1 Include Lounge Owner Log-In use case.
2 Lounge Owner selects manage lounge information menu
3 System displays enter lounge information, edit lounge information and delete lounge
information submenus
4 Lounge Owner selects edit lounge information submenu.
5 System display previous lounge information (lounge name, dish name, dish/food price,
drink price, drink price, and Lounge Building Number) and edit lounge information form.
6 Lounge Owner types the new lounge information (lounge name, dish name, dish/food price,
drink price, drink price, and Lounge Building Number) to the lunge information form, and
submits the form.
7 The system validates if the entered values are not empty string.
8 If the entered values are valid, system inserts/maintains the lounge information and display
lounge information has successfully added message.
Alternative sequences
Step 8: If the system determines that the entered values are invalid the system displays error
message.
Post condition: System edited the lounge information.

51
5.3. Activity Diagram

Figure 3 Activity Diagram search Location

Figure 4 Activity Diagram navigate to search result

52
Figure 5 Activity Diagram switch search result view

Figure 6 Activity Diagram change map view setting

Figure 7 Activity Diagram change Navigation speed setting

53
Figure 8 Activity Diagram change volume setting

Figure 9 Activity Diagram change voice guidance setting

54
Figure 10 Activity Diagram set way point

Figure 11 Activity Diagram navigate to destination way point

55
Figure 12 Activity Diagram detect current location

Figure 13 Activity Diagram view dormitory information

56
Figure 14 Activity Diagram navigate to dormitory

Figure 15 Activity Diagram view course schedule

57
Figure 16 Activity Diagram navigate to class room

Figure 17 Activity Diagram view exam schedule

58
Figure 18 Activity Diagram navigate to exam room

Figure 19 Activity Diagram view clearance information

59
Figure 20 Activity Diagram navigate to clearance room

Figure 21 Activity Diagram view registration information

60
Figure 22 Activity Diagram navigate to registration room

Figure 23 Activity Diagram view lounge information

61
Figure 24 Activity Diagram navigate to lounge

Figure 25 Activity Diagram user log in

62
Figure 26 Activity Diagram register user

Figure 27 Activity Diagram enter Location information

63
Figure 28 Activity Diagram edit Location information

64
Figure 29 Activity Diagram delete user account

Figure 30 Activity Diagram enter course schedule

65
Figure 31 Activity Diagram edit course schedule

Figure 32 Activity Diagram enter registration information

66
Figure 33 Activity Diagram edit registration information

Figure 34 Activity Diagram enter exam schedule

67
Figure 35 Activity Diagram edit exam schedule

Figure 36 Activity Diagram enter dormitory information

68
Figure 37 Activity Diagram edit dormitory information

69
Figure 38 Activity Diagram delete dormitory information

70
Figure 39 Activity Diagram Enter Lounge Information

Figure 40 Activity Diagram edit lounge information

71
5.4. Object Model

We draw a class diagram depicting the inheritance relationships and associations that exist between
the entity objects that we identified earlier. The class diagram focuses mainly on the relationship
among application domain concepts.

5.4.1. Data Dictionary

Entity objects Attributes Description


Administrator User name Is the person responsible for managing
Password location information and system users
Email

Department Department Name Is the person responsible for managing


Head Username student course and exam schedules
password ,registration information and clearance
Email information

Lounge Owner Lounge name Is the person responsible for managing


Username lounge information
password
Email
Dormitory Dormitory Block Number Is the person responsible for managing
Manager Username student dormitory block
password
Email
Dormitory Student name This information includes the student
Information Student id number dormitory information along with the
Student Dormitory Block student full name and ID number to help
Student Dormitory Room the student to search for his/her dormitory
using name or ID number. This
information will be managed by the
department Head

72
Location Building name Refers to information of all available
Information Building number buildings, parking slots and roads located
Location Description inside Tewodros campus, which is
managed by the Administrator.
Start Way Point Building name Refers to the starting location of the user
Building number while navigating
Building Floor number
Building Room number
Access Point BSSID
Destination way Building name Refers to the ending location of the user
Point Building number while navigating
Floor number
Room number
Course schedule Department name Is a plan of courses to be given, the time
Year of batch when they will be given, and the place
Semester where they will be given to students. This
Course name plan will be managed by the department
Credit hour Head.
Time
Date
Class room
Building number
Exam schedule Department name Is a plan of exams to be given, the time
Year of batch when they will be given, and the place
Semester where they will be given to students. This
Course name plan will be managed by the department
Examiner name Head.
Examination room
Examination building Number
Registration Department name Is the information used by a student while
information Registration building registering at the start of the semester to
Registration office locate registrar building and office

73
Clearance Department name Is the information used by students on
Information Clearance building clearance day to locate clearance
Clearance office buildings and offices
Lounge Lounge name Refers to dish/food and drink price
Information Dish/Food information that a lounge had. This
Drink information will be managed by lounge
Price owner
Lounge Building Number
Table 1 Data Dictionary
5.4.2. Class Modeling

Figure 41 Class Diagram

74
5.4.3. Dynamic Modeling

We have identified a number of entity, boundary and control objects, along the way we have also
identified some of their attributes and associations, we represent this objects in a sequence
diagrams, depicting the interaction that occur during the use case to identify additional associations
and attributes.

Figure 42 Sequence Diagramsearch Location

75
Figure 43 Sequence Diagram Navigate to search Result

Figure 44 Sequence Diagram Switch Result View

76
Figure 45Sequence Diagram Set Way Point

77
Figure 46 Change Map View Setting

Figure 47Sequence Diagram Change Volume Setting

78
Figure 48Sequence Diagram change navigation Speed Setting

Figure 49Sequence Diagram Change Voice Guidance Setting

79
Figure 50 Sequence Diagram Detect Current Location

80
Figure 51Sequence Diagram view Dormitory Information

81
Figure 52 Sequence Diagram course schedule Information

82
Figure 53Sequence Diagram view Exam Schedule Information

83
Figure 54Sequence Diagram view Registration Information

84
Figure 55Sequence Diagram view Lounge Information

85
Figure 56Sequence Diagram Navigate to Destination Way point

Figure 57Sequence Diagram Navigate To Class Room

86
Figure 58Sequence Diagram Navigate To Dormitory

Figure 59Sequence Diagram Navigate To Clearance Room

87
Figure 60Sequence Diagram Navigate To Lounge

Figure 61Sequence Diagram Navigate To Registration Room

88
Figure 62Sequence Diagram view Clearance Information

Figure 63Sequence Diagram User Login

89
Figure 64Sequence Diagram Register User

90
Figure 65Sequence Diagram Delete User Account

91
Figure 66Sequence Diagram enter location Information

92
Figure 67 Sequence Diagramedit Location Information

93
Figure 68Sequence Diagram enter Dormitory Information

94
Figure 69Sequence Diagram edit Dormitory Information

95
Figure 70Sequence Diagram delete Dormitory Information

96
Figure 71Sequence Diagram enter Course Schedule

Figure 72Sequence Diagram enter exam schedule

97
Figure 73Sequence Diagram edit Course Schedule

98
Figure 74Sequence Diagram edit Exam Schedule

99
Figure 75Sequence Diagram enter registration information

Figure 76Sequence Diagram edit registration information

100
Figure 77Sequence Diagram enter lounge information

Figure 78Sequence Diagram edit Lounge Information

101
5.5. User Interface

Figure 79 User Interface Main Menu

Figure 80 User Interface Navigation Menu

Figure 81 User Interface Set Starting Way Point Location Menu

102
Figure 82 User Interface Setting Button

Figure 83User Interface Setting Menu

Figure 84User Interface Map View Setting

103
Figure 85User Interface Setting Menu

Figure 86User Interface Volume control Slider

Figure 87User Interface Navigation Speed control slide

104
Figure 88User Interface voice Guidance setting

Figure 89User Interface Login Form

105
Figure 90User Interface Administrator Operation Menus

106
Figure 91User Interface department Head operation menus

107
Figure 92User Interfacedormitory manager operation menus

108
Figure 93User Interface Lounge owner operation menus

109
Figure 94User Interface student navigation menus

110
Chapter 3System Design

1. Introduction

The overall system design objective is to provide an efficient, modular design that will reduce the
system’s complexity, facilitate change, and result in an easy implementation. This will be
accomplished by designing a strongly cohesion system with minimal coupling.

The purpose of this Design Document is to present the system design at a level that can be directly
traced to the specific system objective along with providing more detailed data, functional, and
behavioral requirements. This Design Document will verify that the current design meets all of the
explicit requirements contained in the system model as well as the implicit requirements desired by
the user.

In this section we provide overview of the current and the proposed system software architecture
and we specify design goals to improve the quality of the system by reducing response time and
operating cost, and increasing usability of the system. We also describe system decomposition into
subsystems with their respective services by distinguishing two main parts of the system. We
specify the Hardware/software mapping by depicting deployment diagram, the persistent data
management, as well as the access privileges of each actors using Access control matrix.

1.1. Design Goals

In ATCNS (University of Gondar Navigation System) the main client is the Administrator, who
manages and keeps track of users and system persistent data consistently. Since there will be large
number of persistent objects to be managed by the Administrator the operating cost such as
hardware resource, network resource and Administration cost will be high. From this observation
and from ATCNS problem statements we identify the following design goals.

1.1.1. Documentation
The organization and documentation of the ATCNS framework should then make it easier for new
developers to contribute features to the code. This includes source code documentation that
supports low-level changes and improvements, a good architecture-level documentation that
supports the addition of new features, as well as a good user documentation for helping the user to

111
operate small tasks without the need Administrator help this minimizes operating expense. This
design goal originated from the developers and management of ATCNS (as opposed to the client).

1.1.2. Low operating cost


To minimize operating cost, the cost of running the system (e.g., hardware resources, network
resources, administration costs, etc.) should be minimized. This also leads us to select free or open-
source components. This design goal is not explicitly stated in the nonfunctional requirements, but
it is necessary since UOGPS should be system that requires low operating expense.

1.1.3. Minimize response time


To minimize the response time of the system, the load on ATCNS server should be distributed to
additional servers using a distributed system. Using distributed system also leads us the increase of
throughput by increasing the work done with in specific period of time.

1.1.4. High availability


The value of ATCNS increases with the number of users using the system for navigating
somewhere. Unexpected crashes and interruptions in system will create a lot of frustration for the
users and discourage them from using the system. This design goal is a refinement of the
nonfunctional requirement “Quality Issues” of the ATCNS problem statement. This design goal is
necessary if ATCNS is to attract and keep a sufficiently large number of users.

2. Current Software Architecture

Since there is manual direction indication system in Tewodros campus, there is no system software
architecture being used currently.

3. Proposed Software Architecture

3.1. Overview

The proposed system use a three tire software architecture with Interface layer providing front end
user interface, application logic layer managing system operations, and storage layer storing
persistent objects like location, student, schedule, registration, clearance, lounge information. Users
can access the system remotely by login to the system and sending actions to the server.
The system is divided into subsystems having different functionality. The Administrator,
Department Head and lounge owner manage and organize persistent objects through

112
ATCNSManagementClient subsystem, which provide a front end interface for users to initiate all
data management related use cases (for example enter location information, enter student
information, enter exam schedule, register user, and enter lounge information). ATCNSServer
subsystem provides access control, concurrency control, and process and responds to user’s request.
ATCNSServer uses the UserManagement subsystem to authenticate and authorize the user and to
initiate user account related use cases (for example, register user, manage user account). It uses
NavigationToLocation subsystem to provide a navigation path between two locations, and it uses
other management related subsystems (for example LocationManagement, StudentManagement,
SheduleManagement, RegistrationManagement, ClearanceManagement) to enter, edit, delete and
retrieve persistent objects from ATCNSStorage subsystem, which is used to store persistent objects.
Students, campus visitors, and campus employees access Tewodros campus location information
through ATCNSNavigationClient subsystem, which provides a front end interface for users to
initiate all location navigation related use cases (for example set waypoints, search location,
navigate to destination, detect current location).

3.2. Subsystem decomposition

We identify subsystems from the functional requirements of the system and from the analysis
model. The purpose of this activity is to divide the system into self-contained components that can
be managed by individuals.
We first distinguish two main parts of the ATCNS subsystem: the system data management part of
the system, which is responsible for managing and organizing location, student dormitory, schedule,
user account and lounge information, and the location navigation part, in which the user set starting
and destination waypoint and navigate from the starting point to the destination.
For the system data management part we select a three tire architecture style in which a
ATCNSManagementClient subsystem provide a front end interface for users to initiate all data
management related use cases (for example enter location information, enter dormitory information,
enter exam schedule, register user, and enter lounge information). The ATCNSServer is responsible
for Access control and concurrency control, and delegates to nested subsystems for the application
logic. Different subsystems are dedicated for the management of location information, student
information, schedule information, user account information, and lounge information. The bottom
tire is taken by ATCNSStorage, responsible for storing any persistent objects.

113
Figure 95 component diagram system data management part
For the location navigation part we also use a three tire architecture style in which
ATCNSNavigationClient subsystem provides a front end interface for users to initiate all location
navigation related use cases (for example set waypoints, search location, navigate to destination,
detect current location). The ATCNSserver provide search results and it uses the
NavigateToLocation subsystem to provide a navigation path from the starting waypoint to the
destination waypoint. The ATCNSServer subsystem uses LocationManagment subsystem to
retrieve location information; it uses DormitoryManagement subsystem to retrieve student
dormitory information, it uses ScheduleManagement subsystem to retrieve course and exam
schedule information, and it uses LoungeManagement subsystem to retrieve lounge food/dish and
drink price information. The NavigateToLocation subsystem provides a navigation path from the
starting waypoint to the destination waypoint as well as information about Tewodros campus
locations. NavigateToLocation subsystem uses LocationManagment subsystem to retrieve location
information; it uses DormitoryManagement subsystem to retrieve student dormitory block and
room location, it uses ScheduleManagement subsystem to retrieve class room location, it uses

114
RegistrationManagem subsystem to retrieve registration building and room, it uses
ClearanceManagement subsystem to retrieve clearance building’s and office’s locations, and it uses
LoungeManagement subsystem to retrieve lounge location. All the application logic subsystems
usesATCNSStorage subsystem for storing and retrieving persistent objects.

Figure 96 Component Diagram navigation part

3.3. Hardware/Software Mapping

ATCNS is inherently a distributed system as users use their mobile device to navigate in different
places. We distinguish between three types of nodes: the UserMachine (mobile device) to provide a
user interface, the ServerMachine to run the application logic and more generally to give response
for the requests made by ATCNSManagementClient and ATCNSNavigationClient subsystems
running on the UserMachine, and the StorageMachine for persistent data storage. All other
subsystems except ATCNSStorage can be collected in to a single ServerMachine holding the
ATCNSServer subsystem which includes the nested subsystems, UserManagement,

115
DormitoryManagement, LocationManagement, ScheduleManagement, RegistrationManagement,
LoungeManagement, ClearanceManagement, Notification, and NavigateToLocation subsystems.

Figure 97 Deployment Diagram

3.4. Persistent Data Management

ATCNSdeals with two sets of objects that must be stored. The first set includes the objects that are
created and accessed by the system data management part subsystems (example location, student,
schedule, registration information, clearance information, user account, lounge information) and the
second part includes objects that are created by the navigation part subsystems (example start way
point, destination way point). The first set of objects is well defined and will be probably not
change much during the lifetime of ATCNS. The second set of objects are specific to each
navigations made by the user and are defined during while the user navigates from one location to
another. We decide to manage the data management part subsystems of persistent objects with the
ATCNSStorage subsystem.
The storage subsystem will provide an abstract interface that enable relational database storage.
ATCNS will use a database-independent API (C# database connectivity through PHP) to store
persistent objects in a relational database. The reason we pick relational database is it can be easily
scaled to add thousands of persistent objects.
The normalization database schema below shows a description of encapsulation of database.

116
Figure 98 Normalized data Base Schema

117
3.5. Access control and security

As ATCNS is a multi-user system different actors are allowed to see different sets of objects and
invoke different types of operations on them. To precisely document access rights, we draw an
access control matrix depicting the allowed operations on the entity objects for each actor. In
summary, Administrator can create and remove/deactivate User, and can create and edit location.
Department Head can create, edit and remove dormitory information, can create and edit course and
exam schedule, and can create and edit registration and clearance information. Lounge owner can
create and edit lounge information. Student can search, navigate and view Dormitory information,
class and schedule information, registration and clearance information, and lounge information.
Student, campus visitor, campus employee can search, view and navigate to location information,
can create starting way point and can create and navigate to destination way point.
Students, campus visitors and campus employees are actors that are not authenticated to the system.
Administrator, Department Head and lounge owner must first authenticate before they can modify
any object in the system. We select a user name/ password mechanism for initiating authenticated
use cases. We then use access control lists on each object (example dormitory information, location
information, and course and exam schedule) to check the access privilege of the user. A Session
object per authenticated user tracks currently logged in users. The authentication password of each
actor will be encrypted for security purpose so that event the system Administrator can’t see other
user’s password in other word the password will be visible only for the account holder himself.

Actors Department Dormitory Lounge Campus Campus


Administrator Student
Objects Head Manager Owner Visitors Employees
Dormitory <<create>> Search
Information edit view
remove navigate
Location Search Search Search
<<create>>
Information view View view
Edit
navigate navigate navigate
Course Search
Schedule <<create>> view
Edit navigate

118
Exam Search
<<create>>
Schedule view
Edit
navigate
Registration Search
<<create>>
Information view
edit
navigate
Clearance Search
<<create>>
Information View
edit
navigate
Lounge Search
<<create>>
Information view
edit
navigate
Start
<<create>> <<create>> <<create>>
Way Point
Destination <<create>> <<create>> <<create>>
Way Point navigate navigate navigate
User <<create>>
remove

Table 2 Access Control

3.6. Subsystem Services

In this section we identify services provided by each subsystem. We first notice that in the system
data management part of the subsystem decomposition, all requests handled by ATCNSServer must
be authorized according to the access control policy defined in section [....]. This leads us to define
an Authentication service to check a user’s login. an Authorization service to check if the request is
allowed for the role of the requesting user. We assign both services to UserManagement subsystem.
In Dormitory information management related use cases (for example Enter Dormitory Information
and Edit Dormitory Information) the Department Head creates and edits student dormitory
information. DormitoryManagement subsystem therefore needs to provide services for creating and
getting information about dormitory.

119
In location management related use cases (for example Enter Location information and Edit
Location information) the Administrator creates and edits location information.
LocationManagement subsystem therefore needs to provide services for creating, editing and
getting location information.
In schedule management related use cases (for example Enter course schedule, Enter exam
schedule, and edit course schedule) the Department Head creates and edits course and examination
schedule information. ScheduleManagement subsystem therefore needs to provide services for
creating, editing and getting schedule information.
In Registration management related use cases (for example Enter registration and Edit registration
information) the Department Head creates and edits registration information.
RegistrationManagement subsystem therefore needs to provide services for creating, editing and
getting registration information.
In clearance management related use cases (for example Enter clearance and Edit clearance
information) the Department Head creates and edits clearance information. ClearanceManagement
subsystem therefore needs to provide services for creating, editing and getting clearance
information.
In Lounge management related use cases (for example Enter Lounge informtion and Edit Lounge
information) the Lounge owner creates and edits lounge information. LoungeManagement
subsystem therefore needs to provide services for creating, editing and getting Lounge information.
In all use cases the system display success or error notifications to the user. Notification subsystem
therefore needs to provide services for creating notifications.
In manage user related use cases (for example register user and delete user) the Administrator
creates and removes users. UserManagement subsystem therefore needs to provide services for
creating and removing user information.
In the navigation part subsystem decomposition, ATCNSServer subsystem provides response for
ATCNSNavigationClient and ATCNSManagementClient subsystems request using all the
subsystems in the application logic. For example, in Search Location use case a user searches
location. Therefore ATCNSServer accept user request and provide search result using
LocationManagement subsystem to retrieve location information from ATCNSStorage. The
NavigationToLocation subsystem uses all other subsystems to retrieve location information from
ATCNSStoragesubsystem to create a starting and destination way point as well as navigation path
from the starting to destination way point. For example, in the Navigate to Dormitory use case the

120
student navigates from his/her current location to his/her dormitory room. DormitoryManagement
subsystem provides service for retrieving dormitory block and room location information for
NavigateToLocation subsystem. So that, NavigationToLocation subsystem create destination way
point by using dormitory information and create starting way point by using the student current
location. Therefore the NavigateToLocation subsystem provides a path from student current
location to his/her dormitory room.
ATCNSStorage subsystem provides services for storing persistent objects.
ATCNSManagementClient subsystem provides a front end user interface for initiating all data
management related use cases (for example enter location information, enter dormitory information,
enter exam schedule, register user, and enter lounge information). And similarly
ATCNSNavigationClient provides a front end user interface for users to initiate navigation related
use cases (for example set waypoints, search location, navigate to destination, detect current
location).

Figure 99 Component Diagram Subsystem Service

121
4. Detailed Class Diagram

Class diagram with visibility and signature specified for each attributes and operations. In this class
diagram we define which attributes and operations are private to that class, which attributes and
operations can be accessed by the class decedents (protected), and which attributes and operations
are publicly accessible by the class user (public). We also define the return type of each operations
as well as the number and type of parameters of each operations.

Figure 100 Detailed Class Diagram

122
Below we describe the behavior of each operations provided by each class in terms of constraints.

The variable L in the constraint (isLocationAvailable(L) = true) refers to the Location parameter L
passed to Search(L), setWaypoint(L), and Navigate(L) operations.As (isLocationAvailable (L) =
true) is a pre-condition, the constraint must be true before the execution of the Search (L),
setWaypoint(L), and Navigate(L) operations. Hence, the constraint reads in English as: “Search (L),
setWaypoint(L), and Navigate(L) assume that Location L exists”.

The variable U in the constraint (isUserRegistered(U) and !isUserRegistered (U)) refers to the
Usernameparameter U passed to CreateUser() andDeleteUser() operations. As (isUserRegistered
(U)) is a pre-condition, the constraint must be true before the execution of the DeleteUser ()
operation. Hence, the constraint reads in English as: “DeleteUser() assumes that userUis
registered”; and as (!isUserRegistered (U)) is a pre-condition, the constraint must be true before the
execution of the CreateUser () operation. Hence, the constraint reads in English as: “CreateUser ()
assumes that user U is not registered”.

The variable L in the constraint (isLocationAvailable (L) = true) refers to the Location parameter L
passed to InsertLocInfo (L) and EditLocInfo (L) operations. As (isLocationAvailable (L) = true) is

123
a pre-condition, the constraint must be true before the execution of the InsertLocInfo (L) and
EditLocInfo (L) operations. Hence, the constraint reads in English as: “InsertLocInfo (L) and
EditLocInfo (L) assume that Location L exists before inserting and editing location information”.

The variable S in the constraint (isStudentExist (S) = true) refers to the student id number parameter
S passed to ViewDormInfo (ID) operation. As (isStudentExist (S) = true) is a pre-condition, the
constraint must be true before the execution of the ViewDormInfo (ID) operation. Hence, the
constraint reads in English as: “ViewDormInfo (ID) assumes that student id number S exists before
searching and displaying student dormitory information”.

The variable D in the constraint (isDepartmentExist (D) = true) refers to the Department name
parameter D passed to ViewClassSch (D), ViewExamSch (D), ViewRegSch (D), and
ViewClearanceInfo (D) operations. As (isDepartmentExist (D) = true) is a pre-condition, the
constraint must be true before the execution of the operations. Hence, the constraint reads in
English as: “the operations assume that department name D exists before searching and displaying
student course schedule, exam schedule, registration information, and clearance information”.

124
The variablesBn and C in the constraint (isLocationAvailable (Bn, C) = true) refers to the Building
number parameter Bn andthe class room number parameter C passed to InsertSchedule () and
EditSchedule () operations. Hence, the constraint reads in English as: to insert course or exam
schedule the class room C must exist”.

The variables Bn and Rin the constraint (isLocationAvailable (Bn, R) = true) refers to the Building
number parameter Bnandthe registration room number parameter R passed to
InsertRegistrationInformation () and EditRegistrationInformation () operations. Hence, the
constraint reads in English as: to insert or edit registration information the registration room number
R must exist”.

The variablesBn and Drm in the constraint (isDormitoryAvailable (Bn, Drm) = true) refers to the
Building number parameter Bnand dormitory room number parameter Drm passed to
InsertDormitoryInformation () and EditDormitoryInformation () operations.

125
5. Packages

In this section we describe the decomposition of subsystems into packages.We first group the
subsystems into three packages. The first group is interface package; it includes the
ATCNSManagementClient and ATCNSNavigationClient subsystems. This package is responsible
for providing front end user interface for users to initiate use cases. The second group is
Application Logic package; this includes four sub packages which are Server package, Navigation
Package, Data Management package, and Notification package. Server package holds
ATCNSServer subsystem, which is responsible for accepting requests from Interface package,
process the request and respond back. Server package uses the Data Management package to
retrieve data from Storage package. For example, in the Admin-login use case the admin logs into
the system with username and password. The Server package accepts a login request from Interface
package and uses the Data Management Package to retrieve username and password from Storage
package and to authenticate and authorize the entered username and password. The Server package
uses the Navigation package to create a navigation path between the user’s current location and
destination point. The Navigation package holds NavigationToLocation subsystem. It uses the Data
Management package to retrieve location information from the Storage package to create a starting
and destination way point as well as navigation path from the starting to destination way point. For
example, in the Navigate to Dormitory use case the student navigates from his/her current location
to his/her dormitory room. Data Management package provides service for retrieving dormitory
block and room location information for Navigation Package. So that, Navigation package create
destination way point by using dormitory information and create starting way point by using the
student current location. Therefore the Navigation package provides a path from student current
location to his/her dormitory room. The Data Management package holds LocationManagement,
ScheduleManagement, DormitoryManagement, ClearanceManagement, RegistrationManagement,
and UserManagement subsystems. This package is responsible for retrieving data from Storage
Package. It uses the Notification package which holds the Notification subsystem to create a
warning and success notifications. And the third package is Storage which holds the
ATCNSStorage subsystem. It is responsible for storing persistent objects.

126
Figure 101 Package Diagram

127
Chapter 4 Implementation
1.1. Mapping Models to code
1.1.1. Mapping associations

Bidirectional one-to-one associations

The Student can view its corresponding Dormitory Information. In this case the student object has
one-to-one association with the DormitoryInfo class. Moreover the DormitoryInfo class can display
and use student information. In this case, a DormitoryInfo object needs to access its corresponding
Student object. So we decided this association as a bidirectional association.

public class Student { public class DormitoryInfo() {


privateDormitoryInfo Dorm; private Student Stud;
public Student() { publicDormitoryInfo (Student Stud) {
Dorm = new DormitoryInfo (this); this.Stud = Stud;
} }
Public DormitoryInfogetDormInfo() { Public Student getStdent() {
Return Dorm; Return Stud;
} }
} }

One-to-many associations

The Navigation class can use several Locations information while navigating from one location to
another location. In this case the Navigation object has one-to-many association with the Location
class. Moreover we decided this association as a unidirectional association, and so add the
getLocationInfo() method to the Navigation class to get location information

128
public class Navigation { public class Location {
private Location Loc; private Location Loc;
public Navigation() { public Location() {
Loc = new Location(); }
} }
Public Location getLocationInfo(){
returnLoc;
}

The Admin class can manage several Locations information. In this case the Admin object has one-
to-many association with the Location class. Moreover the Location class can display the name of
the Administrator. In this case, a Location object needs to access its corresponding Admin object.
So we decided this association as a bidirectional association.

129
public class Admin { public class Location {

private Set Locations; private Admin Mgr;

public Admin() { public void setAdmn (Admin newMgr)


{
Locations = new HashSet();
if(Mgr != newMgr) {
}
Admin old = Mgr;
public void addLocationInfo(Location L) {
Mgr = newMgr;
Locations.add(L);
if(newMgr != null)
L.setAdmin(this);
newMgr.addLocationInfo(this);
}
if(old != null)
public void removeLocationInfo(Location L)
{ old.removeLocationInfo(this);

Locations.remove(L); }

L.setAdmin(null); }

} public Admin getAdministrator() {

} return Mgr;
}
}

A user can perform several navigations. A user can set his starting and destination point and
navigate to his/her desired location by invoking getStartLocation(), getDestinationLocation() and
Navigate() methods. Moreover, we decided this association as a unidirectional association

130
public class User { public class Navigation {
private Navigation Nav; public Navigation() {
public User() { }
Nav = new Navigation(); public Navigate() {
} }
Public void setStartLocation(Location L){ }
}
Public void setDestinationLocation(Location L){
}
public void Navigate() {
}
}

The Registration Information can be viewed by several students. In this case the RegistrationInfo
object has one-to-many association with the student class. Moreover the RegistrationInfo class can
display and use student’s department information. In this case, a RegistrationInfo object needs to
access its corresponding Student object department information. So we decided this association as
a bidirectional association.

131
public class Student { public class RegistrationInfo() {

privateRegistrationInfoRegInfo; private Student Stud;

public Student() { publicRegistrationInfo (Student Stud) {

RegInfo = new RegistrationInfo(this); this.Stud = Stud;

} }

Public RegistrationInfogetRegInfo() { Public Student getStdent() {

Return RegInfo; Return Stud;

} }

} }

The Department Schedule can be viewed by several students. In this case the Schedule object has
one-to-many association with the student class. Moreover the Schedule class can display and use
student’s department information. In this case, a Schedule object needs to access its corresponding
Student object department information. So we decided this association as a bidirectional
association.

public class Student { public class Schedule() {

private Schedule Sch; private Student Stud;

public Student() { public Schedule (Student Stud) {

Sch = new Schedule(this); this.Stud = Stud;

} }

Public Schedule getSchedule() { Public Student getStdent() {

Return Sch; Return Stud;

} }

} }

132
The Lounge Information can be viewed by several students. In this case the LoungeInfo object has
one-to-many association with the student class. Moreover we decided this association as a
unidirectional association.

public class Student { public class LoungeInfo() {

privateLounge LInfo; private Lounge LInfo;

public Student() { publicLoungeInfo(Lounge L){

} this.LInfo = L;

Public LoungeInfogetLoungeInfo(Lounge L) { }

LInfo = new LoungeInfo(L); Public Lounge getLoungeInfo() {

LInfo.getLoungeInfo(); Return LInfo;

} }

} }

The Dormitory Manager can manage several Dormitory Information. In this case the DormitoryMgr
object has one-to-many association with the DormitoryInfo class. Moreover the DormitoryInfo
class can display the name of the Dormitory Manager. In this case, a DormitoryInfo object needs to
access its corresponding DormitoryMgr object. So we decided this association as a bidirectional
association.

The Department Head can manage several schedule information. In this case the DeptHead object
has one-to-many association with the Schedule class. Moreover the Schedule class can display the
name of the department head. In this case, a Schedule object needs to access its corresponding
DeptHead object. So we decided this association as a bidirectional association.

133
public class DeptHead { public class Schedule {
private Set scheduleInfos; privateDeptHeadMgr;
publicDeptHead() { public void setMgr (DeptHeadnewMgr) {
scheduleInfos = new HashSet(); if(Mgr != newMgr) {
} DeptHead old = Mgr;
public void addSchInfo(Schedule S) { Mgr = newMgr;
scheduleInfos.add(S); if(newMgr != null)
S.setMgr(this); newMgr.addSchInfo(this);
} if(old != null)
public void removeSchInfo(Schedule S) old.removeSchInfo(this);
{
}
scheduleInfos.remove(S);
}
S.setMgr(null);
}
}
}

The Lounge Owner can manage several lounges information. In this case the LoungeOwner object
has one-to-many association with the LoungeInfo class. Moreover the LoungeInfo class can display
the name of the Lounge Owner. In this case, a LoungeInfo object needs to access its corresponding
LoungeOwner object. So we decided this association as a bidirectional association.

134
public class LoungeOwner { public class LoungeInfo {
private Set loungeInfos; privateLoungeOwnerMgr;
publicLoungeOwner() { public void setMgr (LoungeOwnernewMgr) {
loungeInfos = new HashSet(); if(Mgr != newMgr) {
}
LoungeOwner old = Mgr;
public void addLoungeInfo(LoungeInfo L)
{
Mgr = newMgr;

loungeInfos.add(L); if(newMgr != null)

S.setMgr(this); newMgr.addLoungeInfo(this);

} if(old != null)

public void removeSchInfo(LoungeInfo L) old.removeLoungeInfo(this);


{
}
loungeInfos.remove(L);
}
S.setMgr(null);
}
}

1.1.2. Mapping the class model to a storage schema is performed

Location_ID Location_Name Location_Desc UserName

UserName Password

135
Stud_ID Stud_Name Department

Dormitory_Block Dormitory_Room Stud_ID

Stud_ID Stud_Name Department

Department RegOffice

DeptHead_ID Department

Department Batch Course Date Time BuildingNum Room DeptHead_ID

Stud_ID Stud_Name Department

Department Batch Course Date Time BuildingNum Room Stud_ID

136
DeptHead_ID Department

Department RegOffice DeptHead_ID

DormMgr_ID DormitoryBlock

Dormitory_Block Dormitory_Room DormMgr_ID

public class DormitoryMgr { public class DormitoryInfo {


private Set dormitoryInfos; privateDormitoryMgrMgr;
publicDormitoryMgr() { public void setMgr (DormitoryMgrnewMgr) {
dormitoryInfos = new HashSet(); if(Mgr != newMgr) {
}
DormitoryMgr old = Mgr;
public void addDormInfo(DormitoryInfo D) {
Mgr = newMgr;
dormitoryInfos.add(D);
if(newMgr != null)
D.setMgr(this);
newMgr.addDormInfo(this);
}
if(old != null)
public void removeDormInfo(DormitoryInfo D) {
old.removeDormInfo(this);
dormitoryInfos.remove(D);
}
D.setMgr(null);
}
}
}
}

1.2 Source codes of major classes, packages or interfaces


Navigation
NavigateToDestination.js

137
import UnityEngine.UI;

var NavInfoText: UI.Text;


var Blocked: GameObject;

//from maingate to any


var PathFolder : GameObject;
var PathFoldert10 : GameObject;
var PathFoldert101 : GameObject;
var PathLibToReg : GameObject;
var PathFromMGtoLaibrary : GameObject;
var PathFromMGtoSM : GameObject;
var PathFromMGtoPO : GameObject;
var PathFromMGtoT9 : GameObject;
var PathFromMGtoT11 : GameObject;
var PathFromMGtoT12 : GameObject;
var PathFromMGtoT13 : GameObject;
var PathFromMGtoT14 : GameObject;
var PathFromMGtoT16 : GameObject;
var PathFromMGtoT17 : GameObject;
var PathFromMGtoT18 : GameObject;
var PathFromMGtoT19 : GameObject;
var PathFromMGtoT20 : GameObject;
var PathFromMGtoT21 : GameObject;
var PathFromMGtoT22 : GameObject;
var PathFromMGtoT23 : GameObject;
var PathFromMGtoT24 : GameObject;
var PathFromMGtoT25 : GameObject;
var PathFromMGtoT26 : GameObject;
var PathFromMGtoT27 : GameObject;
var PathFromMGtoT28 : GameObject;
var PathFromMGtoT29 : GameObject;
var PathFromMGtoT30 : GameObject;
var PathFromMGtoT31 : GameObject;
var PathFromMGtoT32 : GameObject;
var PathFromMGtoT33 : GameObject;
var PathFromMGtoT34 : GameObject;
var PathFromMGtoT35 : GameObject;
var PathFromMGtoT38 : GameObject;
var PathFromMGtoT39 : GameObject;
var PathFromMGtoT40 : GameObject;
var PathFromMGtoTeachers : GameObject;
var PathFromMGtoTL : GameObject;
var PathFromMGtoDsTv : GameObject;
var PathFromMGtoAH : GameObject;
var PathFromMGtoML : GameObject;
var PathFromMGtoSC : GameObject;
var PathFromMGtoFC : GameObject;

138
var PathFromMGtoFBE : GameObject;
var PathFromMGtoCBE : GameObject;
var PathFromMGtoPGB : GameObject;
var PathFromMGtoFinance : GameObject;
var PathFromMGtoICT : GameObject;

//from Library to any


var PathLibToT10 : GameObject;
var PathLibToSM : GameObject;
var PathLibToPO : GameObject;

//from registerar to any


var PathRegToT10 : GameObject;
var PathRegToPO : GameObject;
var PathRegToSM : GameObject;
var PathRegToLib : GameObject;

@Range (1.0, 16.0)


var speed : float = 3.0;
static var once : int = 0;
var closedLoop : boolean;
var usePingpong : boolean;
var showPaths : boolean = true;
var useSlerp : boolean = true;
@Range (.01, .4)
var slerpPoint: float = .1; // amount before turning

//for path
private var numpoints : int=0;
private var curindex : int ; // current index
private var purpleArray = Array() ;
private var ppoint : float = 1.0 ; // purple point
private var ptimes : int = 0 ; // purple

private var waypoints = Array();


private var target : Vector3;
private var dir: Vector3; // direction
private var disttotarget: float; //distance to target
private var distofline: float; //distance of current line
private var distnormal: float; //distance normalized
private var rot: Quaternion; // rotation
private var turnam: float; // rotation
var other : GameObject;
static var end : boolean = true;
static var start : boolean = false;
static var destination = "";
//public var destFromCsharp = "";

139
//for button toggling

private var onetime1 : int = 0;

//moving the object forward


function Update(){
if(end == false && start == true){
if(once == 0 && destination == "reg")
GoToTheFirstPoint ();
if(once == 0 && destination == "T10")
GoToTheFirstPoint ();
if(once == 0 && destination == "Library")
GoToTheFirstPoint ();
if(once == 0 && destination == "supermarket")
GoToTheFirstPoint ();
if(once == 0 && destination == "T9")
GoToTheFirstPoint ();
if(once == 0 && destination == "T11")
GoToTheFirstPoint ();
if(once == 0 && destination == "T12")
GoToTheFirstPoint ();
if(once == 0 && destination == "T13")
GoToTheFirstPoint ();
if(once == 0 && destination == "T14")
GoToTheFirstPoint ();
if(once == 0 && destination == "T16")
GoToTheFirstPoint ();
if(once == 0 && destination == "T17")
GoToTheFirstPoint ();
if(once == 0 && destination == "T18")
GoToTheFirstPoint ();
if(once == 0 && destination == "T19")
GoToTheFirstPoint ();
if(once == 0 && destination == "T20")
GoToTheFirstPoint ();
if(once == 0 && destination == "T21")
GoToTheFirstPoint ();
if(once == 0 && destination == "T22")
GoToTheFirstPoint ();
if(once == 0 && destination == "T23")
GoToTheFirstPoint ();
if(once == 0 && destination == "T24")
GoToTheFirstPoint ();
if(once == 0 && destination == "T25")
GoToTheFirstPoint ();

140
if(once == 0 && destination == "T26")
GoToTheFirstPoint ();
if(once == 0 && destination == "T27")
GoToTheFirstPoint ();
if(once == 0 && destination == "T28")
GoToTheFirstPoint ();
if(once == 0 && destination == "T29")
GoToTheFirstPoint ();
if(once == 0 && destination == "T30")
GoToTheFirstPoint ();
if(once == 0 && destination == "T31")
GoToTheFirstPoint ();
if(once == 0 && destination == "T32")
GoToTheFirstPoint ();
if(once == 0 && destination == "T33")
GoToTheFirstPoint ();
if(once == 0 && destination == "T34")
GoToTheFirstPoint ();
if(once == 0 && destination == "T35")
GoToTheFirstPoint ();
if(once == 0 && destination == "T38")
GoToTheFirstPoint ();
if(once == 0 && destination == "T39")
GoToTheFirstPoint ();
if(once == 0 && destination == "T40")
GoToTheFirstPoint ();
if(once == 0 && destination == "Teachers")
GoToTheFirstPoint ();
if(once == 0 && destination == "TLounge")
GoToTheFirstPoint ();
if(once == 0 && destination == "DsTv")
GoToTheFirstPoint ();
if(once == 0 && destination == "Addis Hiwot")
GoToTheFirstPoint ();
if(once == 0 && destination == "Mami Lounge")
GoToTheFirstPoint ();
if(once == 0 && destination == "Senior Cafe")
GoToTheFirstPoint ();
if(once == 0 && destination == "Fresh Cafe")
GoToTheFirstPoint ();
if(once == 0 && destination == "FBE")
GoToTheFirstPoint ();
if(once == 0 && destination == "PGB")
GoToTheFirstPoint ();
if(once == 0 && destination == "CBE")
GoToTheFirstPoint ();
if(once == 0 && destination == "Finance")
GoToTheFirstPoint ();

141
if(once == 0 && destination == "ICT")
GoToTheFirstPoint ();

MoveForward();
turnam=0.01; // for no slerping = almost at zero
if (useSlerp)turnam=slerpPoint;
if (distnormal<turnam)NextWayPoint();
}
}

//============= subroutines =============


function MoveForward(){
FindDistance(); dir= target - other.transform.position;
//==========================
if(useSlerp){
var rot: Quaternion = Quaternion.LookRotation(dir);
other.transform.rotation = Quaternion.Slerp(other.transform.rotation, rot, speed *
Time.deltaTime);
} else {
other.transform.LookAt(target); // no Slerping
}
// move in the current forward direction at specified speed:
// to keep it grounded , use Rigidbody and check "Use Gravity".
other.transform.Translate(Vector3(0, 0, speed * Time.deltaTime));
}

function NextWayPoint(){
if((curindex+1) < numpoints){ // normal going forward
curindex+=1;
}else{
curindex=0;
}
// ========= if ping pong then reverse =========
if(usePingpong && curindex==0){ // then at the end

// swap allthe Vector3 info in waypoints()


var n=numpoints-1; var nn=(numpoints)/2;
for(var a : int = 0; a <nn; a++){
var tempVector=waypoints[a];
waypoints[a] = waypoints[n-a];
waypoints[n-a] = tempVector;
}
curindex=0; target=waypoints[curindex]; return;
}
// ========= if no loop then jump to beginning =========
if(curindex==0){

142
end=true;
start=false;
}
else
target=waypoints[curindex]; // else update target
}

function FindDistance(){
var tempindex = curindex;
if((tempindex-1) >-0.5){
tempindex-=1;
}else{
tempindex=numpoints-1;
}
distofline = Vector3.Distance(target,waypoints[tempindex]);
disttotarget= Vector3.Distance(target,other.transform.position);
distnormal= disttotarget/distofline; // make a percentage 0.0 to 1.0
}

// =========================================
function RebuildWaypointList () {
var allpoints = PathFolder.GetComponentsInChildren(Transform);
var startingBuilding = from_any.building;

//from maingte to any


if(startingBuilding == "maingate" && destination == "reg"){
allpoints = PathFolder.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T10"){


NavInfoText.text = "Dist : 2 Km \n car : 10 min foot : 20 min";
allpoints = PathFoldert10.GetComponentsInChildren(Transform);

if(startingBuilding == "maingate" && destination == "Library"){


allpoints = PathFromMGtoLaibrary.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "supermarket"){


allpoints = PathFromMGtoSM.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "POffice"){


allpoints = PathFromMGtoPO.GetComponentsInChildren(Transform);
}

143
if(startingBuilding == "maingate" && destination == "T9"){
allpoints = PathFromMGtoT9.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T11"){


allpoints = PathFromMGtoT11.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T12"){


allpoints = PathFromMGtoT12.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T13"){


allpoints = PathFromMGtoT13.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T14"){


allpoints = PathFromMGtoT14.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T16"){


allpoints = PathFromMGtoT16.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T17"){


allpoints = PathFromMGtoT17.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T18"){


allpoints = PathFromMGtoT18.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T19"){


allpoints = PathFromMGtoT19.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T20"){


allpoints = PathFromMGtoT20.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T21"){


allpoints = PathFromMGtoT21.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T22"){


allpoints = PathFromMGtoT22.GetComponentsInChildren(Transform);
}

144
if(startingBuilding == "maingate" && destination == "T23"){
allpoints = PathFromMGtoT23.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T24"){


allpoints = PathFromMGtoT24.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T25"){


allpoints = PathFromMGtoT25.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T26"){


allpoints = PathFromMGtoT26.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T27"){


allpoints = PathFromMGtoT27.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T28"){


allpoints = PathFromMGtoT28.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T29"){


allpoints = PathFromMGtoT29.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T30"){


allpoints = PathFromMGtoT30.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T31"){


allpoints = PathFromMGtoT31.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T32"){


allpoints = PathFromMGtoT32.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T33"){


allpoints = PathFromMGtoT33.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T34"){


allpoints = PathFromMGtoT34.GetComponentsInChildren(Transform);
}

145
if(startingBuilding == "maingate" && destination == "T35"){
allpoints = PathFromMGtoT35.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T38"){


allpoints = PathFromMGtoT38.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T39"){


allpoints = PathFromMGtoT39.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "T40"){


allpoints = PathFromMGtoT40.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "TLounge"){


allpoints = PathFromMGtoTL.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "DsTv"){


allpoints = PathFromMGtoDsTv.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "Addis Hiwot"){


allpoints = PathFromMGtoAH.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "Teachers"){


allpoints = PathFromMGtoTeachers.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "Mami Lounge"){


allpoints = PathFromMGtoML.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "Senior Cafe"){


allpoints = PathFromMGtoSC.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "Fresh Cafe"){


allpoints = PathFromMGtoFC.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "FBE"){


allpoints = PathFromMGtoFBE.GetComponentsInChildren(Transform);
}

146
if(startingBuilding == "maingate" && destination == "PGB"){
allpoints = PathFromMGtoPGB.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "CBE"){


allpoints = PathFromMGtoCBE.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "Finance"){


allpoints = PathFromMGtoFinance.GetComponentsInChildren(Transform);
}

if(startingBuilding == "maingate" && destination == "ICT"){


allpoints = PathFromMGtoICT.GetComponentsInChildren(Transform);
}

//form Library to any


if(startingBuilding == "Library" && destination == "reg"){
allpoints = PathLibToReg.GetComponentsInChildren(Transform);
}

if(startingBuilding == "Library" && destination == "T10"){


allpoints = PathLibToT10.GetComponentsInChildren(Transform);
}

if(startingBuilding == "Library" && destination == "supermarket"){


allpoints = PathLibToSM.GetComponentsInChildren(Transform);
}

if(startingBuilding == "Library" && destination == "POffice"){


allpoints = PathLibToPO.GetComponentsInChildren(Transform);
}

//from registerar to any


if(startingBuilding == "reg" && destination == "T10"){
allpoints = PathRegToT10.GetComponentsInChildren(Transform);
}

if(startingBuilding == "reg" && destination == "POffice"){


allpoints = PathRegToPO.GetComponentsInChildren(Transform);
}

if(startingBuilding == "reg" && destination == "supermarket"){


allpoints = PathRegToSM.GetComponentsInChildren(Transform);
}

if(startingBuilding == "reg" && destination == "Library"){

147
allpoints = PathRegToLib.GetComponentsInChildren(Transform);
}

for(var i : int = 1; i < allpoints.Length; i++){


waypoints[i-1] = (allpoints[i].transform.position);
}

numpoints=allpoints.Length-1;
target=waypoints[curindex]; // starts at 0
}

function GoToTheFirstPoint (){


curindex=0;
once=1;
//destFromCsharp = "";
RebuildWaypointList ();
other.transform.position=waypoints[0];
other.transform.LookAt(target);
}

SetStartingWayPoint.Js

import UnityEngine.UI;

var LocationText: UI.Text;


var SelectedLoc1: UI.Text;
var SelectedLoc2: UI.Text;
var SelectedLoc3: UI.Text;
var SelectedLoc4: UI.Text;

var PathFolder : GameObject;


var Libraryjump : GameObject;
var Regjump : GameObject;
var QDTjump : GameObject;
var PrOfficejump : GameObject;
var ICTjump : GameObject;
var PGBjump : GameObject;
var Teachersjump : GameObject;
var T9jump : GameObject;
var T10jump : GameObject;
var T11jump : GameObject;
var T12jump : GameObject;
var T13jump : GameObject;
var T14jump : GameObject;
var T19jump : GameObject;
var T2122jump : GameObject;

148
var T16jump : GameObject;
var T17jump : GameObject;
var T18jump : GameObject;
var T23jump : GameObject;
var T24jump : GameObject;
var T25jump : GameObject;
var T26jump : GameObject;
var T27jump : GameObject;
var T28jump : GameObject;
var T29jump : GameObject;
var TLoungejump : GameObject;
var AHjump : GameObject;
var Mamijump : GameObject;
var SCafejump : GameObject;
var FCafejump : GameObject;
var T35jump : GameObject;
var T34jump : GameObject;
var T33jump : GameObject;
var T32jump : GameObject;
var T31jump : GameObject;
var T30jump : GameObject;
var T38jump : GameObject;
var T39jump : GameObject;
var T40jump : GameObject;

private var jumpingpoints = Array();

private var target : Vector3;


private var curindex : int ; // current index
var other : GameObject;
//global variables for settings
//var maingate : GameObject;
static var building : String;

function RebuildWaypointList () {
var allpoints = PathFolder.GetComponentsInChildren(Transform);

if(building == "maingate")
allpoints = PathFolder.GetComponentsInChildren(Transform);
if(building == "Library")
allpoints = Libraryjump.GetComponentsInChildren(Transform);
if(building == "reg")
allpoints = Regjump.GetComponentsInChildren(Transform);
if(building == "QueensDT")
allpoints = QDTjump.GetComponentsInChildren(Transform);
if(building == "PrOffice")
allpoints = PrOfficejump.GetComponentsInChildren(Transform);
if(building == "ICT")

149
allpoints = ICTjump.GetComponentsInChildren(Transform);
if(building == "PGB")
allpoints = PGBjump.GetComponentsInChildren(Transform);
if(building == "Teachers")
allpoints = Teachersjump.GetComponentsInChildren(Transform);
if(building == "T9")
allpoints = T9jump.GetComponentsInChildren(Transform);
if(building == "T10")
allpoints = T10jump.GetComponentsInChildren(Transform);
if(building == "T11")
allpoints = T11jump.GetComponentsInChildren(Transform);
if(building == "T12")
allpoints = T12jump.GetComponentsInChildren(Transform);
if(building == "T13")
allpoints = T13jump.GetComponentsInChildren(Transform);
if(building == "T14")
allpoints = T14jump.GetComponentsInChildren(Transform);
if(building == "T19")
allpoints = T19jump.GetComponentsInChildren(Transform);
if(building == "T20")
allpoints = T19jump.GetComponentsInChildren(Transform);
if(building == "T21")
allpoints = T2122jump.GetComponentsInChildren(Transform);
if(building == "T22")
allpoints = T2122jump.GetComponentsInChildren(Transform);
if(building == "T16")
allpoints = T16jump.GetComponentsInChildren(Transform);
if(building == "T17")
allpoints = T17jump.GetComponentsInChildren(Transform);
if(building == "T18")
allpoints = T18jump.GetComponentsInChildren(Transform);
if(building == "T23")
allpoints = T23jump.GetComponentsInChildren(Transform);
if(building == "T24")
allpoints = T24jump.GetComponentsInChildren(Transform);
if(building == "T25")
allpoints = T25jump.GetComponentsInChildren(Transform);
if(building == "T26")
allpoints = T26jump.GetComponentsInChildren(Transform);
if(building == "T27")
allpoints = T27jump.GetComponentsInChildren(Transform);
if(building == "T28")
allpoints = T28jump.GetComponentsInChildren(Transform);
if(building == "T29")
allpoints = T29jump.GetComponentsInChildren(Transform);
if(building == "TLounge")
allpoints = TLoungejump.GetComponentsInChildren(Transform);
if(building == "AH")

150
allpoints = AHjump.GetComponentsInChildren(Transform);
if(building == "MamiLounge")
allpoints = Mamijump.GetComponentsInChildren(Transform);
if(building == "Senior Cafe")
allpoints = SCafejump.GetComponentsInChildren(Transform);
if(building == "Fresh Cafe")
allpoints = FCafejump.GetComponentsInChildren(Transform);
if(building == "T35")
allpoints = T35jump.GetComponentsInChildren(Transform);
if(building == "T34")
allpoints = T34jump.GetComponentsInChildren(Transform);
if(building == "T33")
allpoints = T33jump.GetComponentsInChildren(Transform);
if(building == "T32")
allpoints = T32jump.GetComponentsInChildren(Transform);
if(building == "T31")
allpoints = T31jump.GetComponentsInChildren(Transform);
if(building == "T30")
allpoints = T30jump.GetComponentsInChildren(Transform);
if(building == "T38")
allpoints = T38jump.GetComponentsInChildren(Transform);
if(building == "T39")
allpoints = T39jump.GetComponentsInChildren(Transform);
if(building == "T40")
allpoints = T40jump.GetComponentsInChildren(Transform);

for(var i : int = 1; i < allpoints.Length; i++){


jumpingpoints[i-1] = (allpoints[i].transform.position);
}

//numpoints=allpoints.Length-1;
target=jumpingpoints[1]; // starts at 0
}
function GoToTheFirstPoint (){
curindex=0;
RebuildWaypointList ();
other.transform.position=jumpingpoints[0];
other.transform.LookAt(target);
}

function jumpToMainGate(){
LocationText.text = "Main Gate";
building = "maingate";
NavToDest.end = true;
GoToTheFirstPoint ();
}

function jumpToLibrary(){

151
LocationText.text = "Library";
building = "Library";
NavToDest.end = true;
GoToTheFirstPoint ();
}

function jumpToReg(){
LocationText.text = "Registrar";
building = "reg";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToQDT(){
LocationText.text = "Queens DT";
building = "QueensDT";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToPrOffice(){
LocationText.text = "Pr. Office";
building = "PrOffice";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToICT(){
LocationText.text = "ICT";
building = "ICT";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToPGB(){
LocationText.text = "PGB";
building = "PGB";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToTeachers(){
LocationText.text = "Teacher's";
building = "Teachers";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToT9(){
LocationText.text = "T9";
building = "T9";
NavToDest.end = true;
GoToTheFirstPoint ();
}

152
function jumpToT10(){
LocationText.text = "T10";
building = "T10";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToT11(){
LocationText.text = "T11";
building = "T11";
NavToDest.end = true;
GoToTheFirstPoint ();
}function jumpToT12(){
LocationText.text = "T12";
building = "T12";
NavToDest.end = true;
GoToTheFirstPoint ();
}function jumpToT13(){
LocationText.text = "T13";
building = "T13";
NavToDest.end = true;
GoToTheFirstPoint ();
}function jumpToT14(){
LocationText.text = "T14";
building = "T14";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToT19(){
LocationText.text = "T19";
building = "T19";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToT20(){
LocationText.text = "T20";
building = "T20";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToT21(){
LocationText.text = "T21";
building = "T21";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToT22(){
LocationText.text = "T22";
building = "T22";

153
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToT16(){
LocationText.text = "T16";
building = "T16";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToT17(){
LocationText.text = "T17";
building = "T17";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToT18(){
LocationText.text = "T18";
building = "T18";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToT23(){
LocationText.text = "T23";
building = "T23";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToT24(){
LocationText.text = "T24";
building = "T24";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToT25(){
LocationText.text = "T25";
building = "T25";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToT26(){
LocationText.text = "T26";
building = "T26";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToT27(){
LocationText.text = "T27";
building = "T27";

154
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToT28(){
LocationText.text = "T28";
building = "T28";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToT29(){
LocationText.text = "T29";
building = "T29";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToTLounge(){
LocationText.text = "TLounge";
building = "TLounge";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToAH(){
LocationText.text = "Addis Hiwot";
building = "AH";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToMamiLounge(){
LocationText.text = "Mami Lounge";
building = "MamiLounge";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToScafe(){
LocationText.text = "Senior Cafe";
building = "Senior Cafe";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToFcafe(){
LocationText.text = "Fresh Cafe";
building = "Fresh Cafe";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToT35(){
LocationText.text = "T35";
building = "T35";

155
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToT34(){
LocationText.text = "T34";
building = "T34";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToT33(){
LocationText.text = "T33";
building = "T33";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToT32(){
LocationText.text = "T32";
building = "T32";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToT31(){
LocationText.text = "T31";
building = "T31";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToT30(){
LocationText.text = "T30";
building = "T30";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToT38(){
LocationText.text = "T38";
building = "T38";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToT39(){
LocationText.text = "T39";
building = "T39";
NavToDest.end = true;
GoToTheFirstPoint ();
}
function jumpToT40(){
LocationText.text = "T40";
building = "T40";

156
NavToDest.end = true;
GoToTheFirstPoint ();
}

//select from a list of detected locations


function SelectLocation1(){
building = SelectedLoc1.text;
from_any.building = SelectedLoc1.text;
LocationText.text = building;
NavToDest.end = true;
GoToTheFirstPoint ();
}

function SelectLocation2(){
building = SelectedLoc2.text;
from_any.building = SelectedLoc2.text;
LocationText.text = building;
NavToDest.end = true;
GoToTheFirstPoint ();
}

function SelectLocation3(){
building = SelectedLoc3.text;
from_any.building = SelectedLoc3.text;
LocationText.text = building;
NavToDest.end = true;
GoToTheFirstPoint ();
}

function SelectLocation4(){
building = SelectedLoc4.text;
from_any.building = SelectedLoc4.text;
LocationText.text = building;
NavToDest.end = true;
GoToTheFirstPoint ();
}
SetDestinationWayPoint.Js

import UnityEngine.UI;

var destText: UI.Text;


var examdestText: UI.Text;

function beginToReg(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "reg";
destText.text = "Registrar";

157
}
function beginToT9(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T9";
destText.text = "T9";
}
function beginToT10(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T10";
destText.text = "T10";
}
function beginToLibrary(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "Library";
destText.text = "Library";
}
function beginToSuperMarket(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "supermarket";
destText.text = "Super Market";
}
function beginToPOffice(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "POffice";
destText.text = "Pr Office";
}
function beginToTeachers(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "Teachers";
destText.text = "Teachers";
}
function beginToT11(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T11";
destText.text = "T11";
}
function beginToT12(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T12";
destText.text = "T12";

158
}
function beginToT13(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T13";
destText.text = "T13";
}
function beginToT14(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T14";
destText.text = "T14";
}
function beginToT16(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T16";
destText.text = "T16";
}
function beginToT17(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T17";
destText.text = "T17";
}
function beginToT18(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T18";
destText.text = "T18";
}
function beginToT19(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T19";
destText.text = "T19";
}
function beginToT20(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T20";
destText.text = "T20";
}
function beginToT21(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T21";
destText.text = "T21";

159
}
function beginToT22(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T22";
destText.text = "T22";
}
function beginToT23(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T23";
destText.text = "T23";
}
function beginToT24(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T24";
destText.text = "T24";
}
function beginToT25(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T25";
destText.text = "T25";
}
function beginToT26(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T26";
destText.text = "T26";
}
function beginToT27(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T27";
destText.text = "T27";
}
function beginToT28(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T28";
destText.text = "T28";
}
function beginToT29(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T29";
destText.text = "T29";

160
}
function beginToTLounge(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "TLounge";
destText.text = "TLounge";
}
function beginToDsTv(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "DsTv";
destText.text = "DsTv";
}
function beginToAH(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "Addis Hiwot";
destText.text = "Addis Hiwot";
}
function beginToT30(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T30";
destText.text = "T30";
}
function beginToT31(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T31";
destText.text = "T31";
}
function beginToT32(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T32";
destText.text = "T32";
}
function beginToT33(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T33";
destText.text = "T33";
}
function beginToT34(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T34";
destText.text = "T34";

161
}
function beginToT35(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T35";
destText.text = "T35";
}
function beginToT38(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T38";
destText.text = "T38";
}
function beginToT39(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T39";
destText.text = "T39";
}
function beginToT40(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "T40";
destText.text = "T40";
}
function beginToMami(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "Mami Lounge";
destText.text = "Mami Lounge";
}
function beginToSenior(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "Senior Cafe";
destText.text = "Senior Cafe";
}
function beginToFresh(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "Fresh Cafe";
destText.text = "Fresh Cafe";
}
function beginToCBE(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "CBE";
destText.text = "CBE";

162
}
function beginToFBE(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "FBE";
destText.text = "FBE";
}
function beginToPGB(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "PGB";
destText.text = "PGB";
}
function beginToFinance(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "Finance";
destText.text = "Finance";
}
function beginToICT(){
NavToDest.once = 0;
NavToDest.end = false;
NavToDest.destination = "ICT";
destText.text = "ICT";
}
function StartNavToExam(){
NavToDest.once = 0;
NavToDest.destination = examdestText.text;
destText.text = examdestText.text;
NavToDest.end = false;
NavToDest.start = true;
}
function StartNav(){
NavToDest.start = true;
}

AutoDetectLocation.CS

using UnityEngine;
using System;
using System.Collections;
using System.Diagnostics;
using UnityEngine.UI;

public class AutoDetect : MonoBehaviour {


public Text AutoDetectTF;
public Text StartLoc;
public Text Build1;

163
public Text Build2;
public Text Build3;
public Text Build4;

//Images
public Sprite LibrarySprint;
public Image LibraryImage;
public Sprite T10Sprint;
public Image T10Image;
public Sprite T11Sprint;
public Image T11Image;
public Sprite T12Sprint;
public Image T12Image;

public void Start ()


{
AutoDetectTF = AutoDetectTF.GetComponent<Text> ();
StartLoc = StartLoc.GetComponent<Text> ();
Build1 = Build1.GetComponent<Text> ();
Build2 = Build2.GetComponent<Text> ();
Build3 = Build3.GetComponent<Text> ();
Build4 = Build4.GetComponent<Text> ();
LibraryImage = LibraryImage.GetComponent<Image> ();
T10Image = T10Image.GetComponent<Image> ();
T11Image = T11Image.GetComponent<Image> ();
T12Image = T12Image.GetComponent<Image> ();
}

public void DetectLocation()


{
Process proc = new Process();
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.FileName = "cmd";

proc.StartInfo.Arguments = @"/C ""netsh wlan show networks mode=bssid | findstr BSSID """;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.UseShellExecute = false;
proc.Start();
string output = proc.StandardOutput.ReadToEnd();
proc.WaitForExit();

if (output == "")
{
AutoDetectTF.text = "connection not available";
}

Else
{

164
string[] result = output.Split('\n');
int lengthA = result.Length;
string macAddrs = "";
for(int i = 0; i < lengthA - 1; i++){
macAddrs = result[i].Substring(30, 17);

if(macAddrs == "c8:f9:f9:4c:91:33" || macAddrs == "3a:f8:89:a0:6e:8b" || macAddrs ==


"c8:f9:f9:4c:91:30" || macAddrs == "c8:f9:f9:d4:3b:f0" || macAddrs == "c8:f9:f9:d4:68:91" ||
macAddrs == "c8:f9:f9:d4:68:92" || macAddrs == "c8:f9:f9:4c:91:32" || macAddrs ==
"c8:f9:f9:d4:3b:f2" || macAddrs == "c8:f9:f9:d4:68:90" || macAddrs == "c8:f9:f9:4c:91:31"){

AutoDetectTF.text = "You Are Around T11, T10, T13 or Library \n To be accurate please select
from the result Images below";

StartLoc.text = "T11";
LibraryImage.sprite = LibrarySprint;
T10Image.sprite = T10Sprint;
T11Image.sprite = T11Sprint;
T12Image.sprite = T12Sprint;

Build1.text = "Library";
Build2.text = "T10";
Build3.text = "T11";
Build4.text = "T12";

break;
}
else if(macAddrs == "90:18:7c:7e:2c:36")
{
AutoDetectTF.text = "You Are Around T9";
StartLoc.text = "T9";

LibraryImage.sprite = LibrarySprint;
T10Image.sprite = T10Sprint;
T11Image.sprite = T11Sprint;
T12Image.sprite = T12Sprint;

Build1.text = "Library";
Build2.text = "T10";
Build3.text = "T11";
Build4.text = "T12";

break;
}
else{
AutoDetectTF.text = "You Are Out Of Range Check WiFi Availability";

break;

165
}
}
}
}
}

JumpToDetectedLocation.Js

import UnityEngine.UI;

var LocationText: UI.Text;

//Jumping Point
var Maingate : GameObject;
var LibraryPt : GameObject;
var T9Pt : GameObject;

private var jumpingpoints = Array();

private var target : Vector3;


private var curindex : int ; // current index
var other : GameObject;

//global variables for settings


//var maingate : GameObject;
static var building : String;

function RebuildWaypointList () {
var allpoints = Maingate.GetComponentsInChildren(Transform);

if(building == "T11"){
allpoints = LibraryPt.GetComponentsInChildren(Transform);
}

if(building == "T9"){
allpoints =T9Pt.GetComponentsInChildren(Transform);
}

for(var i : int = 1; i < allpoints.Length; i++){


jumpingpoints[i-1] = (allpoints[i].transform.position);
}

//numpoints=allpoints.Length-1;
target=jumpingpoints[1]; // starts at 0
}

function GoToTheFirstPoint (){


curindex=0;

166
RebuildWaypointList ();
other.transform.position=jumpingpoints[0];
other.transform.LookAt(target);
}

function jumpToDetected(){
building = LocationText.text;
SetStartWP.building = LocationText.text;
NavToDest.end = true;
GoToTheFirstPoint ();
}

ViewExamSchedule.CS

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class ViewExSch : MonoBehaviour {

//accessing Javascript variable


public Font MSFont;
int selGridInt = 0;
Vector2 scrollPosition = Vector2.zero;
private bool retrive = false;
private bool start = false;
string[] result;
public string Department = "";
public string Batch = "";
public InputField DeptTf;
public InputField BatchTf;
public Text Destination;

public void Start ()


{
DeptTf = DeptTf.GetComponent<InputField> ();
BatchTf = BatchTf.GetComponent<InputField> ();
Destination = Destination.GetComponent<Text> ();
}

public void DSearchbutton ()


{
Department = DeptTf.text;
Batch = BatchTf.text;
retrive = true;
}

void OnGUI() {

167
if(retrive)
{
WWWForm form = new WWWForm();
form.AddField("Department", Department);
form.AddField("Batch", Batch);
WWW w = new WWW("http://localhost/Admin/selectexamsch.php", form);
StartCoroutine(login(w));
retrive = false;
}
if(start)
{
string HeaderStr = " Date".PadRight(16) + "Time".PadRight(16) + "Course".PadRight(16) +
"Building".PadRight(15) + "Room";
string title = "".PadRight(29) + "Exam Schedule";
string DeptBatch = "".PadRight(14) + "Department : " + Department + " " +"Batch : " + Batch;
GUI.color = Color.blue;
GUILayout.BeginArea(new Rect(Screen.width / 2 -300, Screen.height / 2 -110, 600f, 200f),
GUI.skin.window);
scrollPosition = GUILayout.BeginScrollView(scrollPosition, false, true);
GUILayout.BeginVertical(GUI.skin.box);
GUI.color = Color.white;
GUILayout.Label(title);
GUILayout.Label(DeptBatch);
GUILayout.Label(HeaderStr);
GUI.contentColor = Color.yellow;
GUI.skin.font = MSFont;

selGridInt = GUILayout.SelectionGrid (selGridInt, result, 1, GUILayout.ExpandWidth(true));

if (GUILayout.Button("Select"))
{
string Location = result[selGridInt];
string[] navigation = Location.Split('|');
string destinationLoc = navigation[3];
Destination.text = destinationLoc.Trim();
start = false;
}

GUILayout.EndVertical();
GUILayout.EndScrollView();
GUILayout.EndArea();
}
}
IEnumerator login(WWW w)
{
yield return w;
if (w.error == null)

168
{
string[] szSplited = w.text.Split(',');
string concatin = "";
int lengthA = szSplited.Length;
for(int i = 0; i < lengthA - 1; i++)
{
if(((i+1) % 5 == 0) && (i > 0)){
if(i == lengthA - 2)
concatin = concatin + szSplited[i] + "" ;
else
concatin = concatin + szSplited[i] + "." ;
}
else if(i == 0){
concatin = concatin + szSplited[i].PadRight(15) + "|";
}
else{
concatin = concatin + szSplited[i].PadRight(15) + "|";
}
}
result = concatin.Split('.');
start = true;
}
else
{
string message = "ERROR: " + w.error + "\n";
Debug.Log("data base " + message);
}
}
}

169
1.3 Screen Images
Main Menu

Loading Page

After Start Navigation Menu Clicked

170
Set Starting Location Menu

Set Start Point

171
Set Destination Location Menu and Press Nvigate

Snap Shot while Navigating from starting to destination point

172
Location Information showing Blocked Road

If the user is not aware of his current location the app can detect the users current location in one
click

173
The app displaying automatically detected current location of the user

The app displaying automatically detected current location of the user

174
Sample Location President Office

Sample location Queens downtown hotel inside Aste Tewodros campus, University of Gondar

175
Sample location university Library

176
Quick tour menu and student operation sub menu

177
178
Student can view his dormitory information and click navigate to his dormitory. If a wifi connection
is available the app detects the current location of the student otherwise prompt the student to enter
manually. Then the student clicks navigate button the app displays a 3D environment of Atse
Tewodros campus and navigates the student to his dormitory. The same thing is done after the
student views his examination information/schedule and registration information.

179
After pressing view exam schedule the search Exam schedule Form is displayed

Exam Schedule search result

Full Tour Submenu is a manual tour taken by the user using keyboard arrow keys and mouse
movement on Laptop or desktop pcs and on android a user can use a joystick button.

180
181
182
s

183
Conclusion and Recommendation
The output of the project is a 3D navigation application for AsteTewodros campus which provides
the real time location of the user based on Wi-Fi technology and the route to a final destination in a
3D model visualized on the mobile device. In the process of achieving this ultimate goal, the
possibilities of navigation system on mobile devices were investigated. Separate objectives were
set for each one of the components constituting the system. Firstly, possible problems and
solutions were identified and selected; secondly Based on the objectives specified earlier in chapter
one, relevant information were gathered and analyzed with team members also desired data was
collected through interview & observation.And finally, we formalize and change the project into
reality by implementing 3D navigation system with three tire architecture for AtseTewodros
campus. Matching of the conclusions with the objectives framed and fulfillment of the objectives
are taking into consideration in this part. Further scope and further enhancement of the work done
also indicated here.

Glossary
Class Diagram: Is a type of static structure diagram that describe the structure of
a system by showing system classes, their attribute, operation
and the relationship among the class.

Component Diagram Is UML diagram depicts how components are wired together to
form larger components and or software system.
Functional requirement Is a requirement that specifies what the system should do or
what the system should perform
Hardware Is computer equipment including all the components use to
make the computer
Non-functional requirement are requirements which specify criteria that can be used to judge
the operation of a system, rather than specific behaviors
Software Computer programs, instructions that make hardware work

184
Scenario Is an instance of use case explaining concerned major set of
actions
Sequence Diagram Is a king of interaction diagram that show how process operate
with one another and in what order
Software design Is the transformation of an analysis model into a system design
model During system design, developers define the design goals
of the project and decompose the system into smaller
subsystems that can be realized by individual teams
System Any collection of component element that work together to
collect task
Use case diagram Graphical Representation of mark full of step wise activity and
action with support for choice, iteration and concurrency
User interface The combination of menus, screen design, keyboard command,
command language and help, which creates the way a user
interact with computers.
User Any user of the system including database administrator,
librarian, member, system administrator
Design Goal Describes the quality of the system that should be optimized
Software Architecture Provides a high level view of the system by decomposing it into
smaller and manageable pieces and study the relationship
among this pieces
Hardware/ Software Is activity of selecting Hardware and software configuration for
mapping the system
Persistent Data Data that exists from session to session. Persistent data are
stored in a database on disk or tape.
Are data that will be tracked and stored in the system
permanently
Access Control The management of admission to system and network
resources. It grants authenticated users access to specific
resources based on company policies and the permission level
assigned to the user or user group. Access control often includes
authentication, which proves the identity of the user or client

185
machine attempting to log in.
Control Flow Describes how the system sequences operations and whether the
system is event driven or procedure driven.
Boundary Condition Specifies how the system is initialized and shutdown.

Recommendation
The team that developed this 3D navigation system for AtseTewodros campus recommends the
following points for the use this project.
 University of Gondar should take the purpose of this project seriously and must be willing
to apply thisautomated navigation system in order to solve main problems observed in the
current manual navigation system of AtseTewodros campus.
 Students, campus employees and campus visitors should also take the advantage of this
project as it is of a great use in solving their navigation problems in AtseTewodros campus.

References

1. Infohost, Background of navigation [Online]. Available: Infohost


http://infohost.nmt.edu/~mreece/gps/history.html [Accessed: 4 Nov 2015]
2. Google Inc., Google Map [Online]. Available: Google Map,
https://www.google.com.et/maps/@12.5894182,37.4420447,17z?hl=en [Accessed: 4 Nov
2015]
3. AbhijitChandgadkar, Indoor Navigation System , London: Imperial College, 2013.[E-
BOOK].Available, http://www.doc.ic.ac.uk/teaching/distinguished-
projects/2013/a.chandgadkar.pdf[Accessed: 4 Nov 2015]
4. Bernd Bruegge& Allen H. Dutoit, Prentice Object Oriented Software Engineering Using
UML Patterns and Java, 3rd ed. 2012 (used for the entire document)

ANNEX
Questions asked while we are gathering information using Open-Ended Questions

186
Q 1. What are the challenges that you face while using the current navigation system in
AtseTewodros campus?
Q 2. How can you get the direction or location of places that you want?
Q 3. Do you think is it difficult finding a location in AtseTewodros campus using the
current navigation system, if yes how?
Q 4. Is there any position indicator system in the campus that is helpful to you, if yes how
it helps you?
Q 5. How is it difficult for you to locate class rooms using course and exam schedules
posted by your department?

187

Potrebbero piacerti anche