context based notification systemvehari.comsats.edu.pk/downloads/bs thesis template … · web...
Post on 29-Aug-2018
214 Views
Preview:
TRANSCRIPT
CONTEXT BASED NOTIFICATION SYSTEM
FOR CIIT VEHARI
Muhammad Haseeb Nusrat
CIIT/SP14-BCS-023/VHR
Muhammad Sohaib Ramzan
CIIT/SP14-BCS-025/VHR
BSCS Thesis
COMSATS Institute of Information Technology
Vehari, Pakistan
Fall, 2018
i
COMSATS Institute of Information Technology
CONTEXT BASED NOTIFICATION SYSTEM FOR CIIT VEHARI
A Thesis Presented to
COMSATS Institute of Information Technology, Vehari
In partial fulfillment
Of the requirements for the degree of
Bachelor of Sciencein
Computer Science
Department of Computer ScienceBy
Muhammad Haseeb Nusrat
CIIT/SP14-BCS-023/VHR
Muhammad Sohaib Ramzan
CIIT/SP14-BCS-025/VHR
Fall 2017
ii
CONTEXT BASED NOTIFICATION SYSTEM FOR CIIT VEHARI
An undergraduate thesis submitted to the Department of Computer Science as
partial fulfillment of the requirements for the award of Degree of Bachelor of
Science in Computer Science
Name Registration Number
Muhammad Haseeb Nusrat CIIT/SP14-BCS-023/VHR
Muhammad Sohaib Ramzan CIIT/SP14-BCS-025/VHR
Supervisor
Mr. Farman Ullah
Department of Computer Science
Signature of Supervisor: __________________ Date: ________
COMSATS Institute of Information Technology Vehari
Jan, 2018
iii
Final Approval
This Thesis Titled
CONTEXT BASED NOTIFICATION SYSTEM FOR CIIT VEHARI
ByMuhammad Haseeb Nusrat
CIIT/SP14-BCS-023/VHR
Muhammad Sohaib Ramzan
CIIT/SP14-BCS-025/VHR
External Examiner: _________________________________________Dr. Shahid Kamal Assistant Professor , Department of Computer Science Gomal University D I Khan
Supervisor: _________________________________________Mr. Farman Ullah Lecturer, Department of Computer Science COMSATS Vehari
Internal Examiner: __________________________________________
Dr./Mr. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Designation:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Department of Computer Science COMSATS Institute of Information Technology, Vehari
Convener Project Committee: __________________________________________
Dr./Mr. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Designation:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Department of Computer Science COMSATS Institute of Information Technology, Vehari
iv
DECLARATION
It is certified that the research work presented in this thesis is to the best of my
knowledge my own. All sources used and any help received in the preparation of
this dissertation have been acknowledged. Hereby, it is declared that this material
is not submitted, either in whole or in part, for any other degree at this or any other
institution.
Date: _______________ Signature of the Student: _______________________________Muhammad Haseeb NusratCIIT/SP14-BCS-023/VHR
Signature of the Student: _______________________________Muhammad Sohaib RamzanCIIT/SP14-BCS-025/VHR
v
CERTIFICATE
It is certified that Mr. Muhammad Nusrat Haseeb (CIIT/--/VHR) and Farman Ullah
(CIIT/--/VHR) have carried out all the work related to this thesis under my supervision at the
Department of Computer Science COMSATS Institute of Information Technology, Vehari. And
the work fulfills the requirements for award of BS degree.
Date: ______________ Supervisor: ____________________________________Dr. AqeelLecturer, Department of Computer Science CIIT, Vehari
vi
DEDICATION
To Almighty ALLAH and the Holy Prophet Muhammad
(P.B.U.H)
&
My Loving Family
vii
ACKNOWLEDGMENTS
.
viii
ABSTRACT
Context-awareness has become an important feature of event recommendation and notification
systems. So far, several studies in tourism and education domains have provided good results on
using different context data and delivering messages based on this context- aware environment.
Although many context data are gathered, the analysis of these context data for a proper
recommendation still remains insufficient. Even if the recommendation itself is said to be
successful, delivery performance, in other words, notifying the message recipient under
appropriate conditions, is still inadequate. We propose a context based event notification system
enhanced with a business rule engine for context data evaluation. We aim to improve event
notification performance by aggregating various context data, making complex inferences and
finding the most suitable time to deliver messages for the subscriber by applying the business
rule concept. Furthermore, in order to semantically analyze event details and infer new
relationships, we utilize semantic analysis by using linked data. To validate our proposed system,
we implement a working prototype incorporating event publishers, an event management server
composed of a business rule engine, a semantic analysis module powered with linked data and an
event dispatcher component, as well as internal and external context sources. The applicability of
the system is demonstrated by evaluating it against several sample scenarios.
ix
TABLE OF CONTENTS
Chapter 1
Introduction
1. Project Introduction…………………………………………………………09
1.1 Project Category (Mobile Application)……………………...…10
1.2 Objective………………………………………………………..11
1.3 Problem Formulation…………………………………………... 11
1.4 Identification of Need…………………………………………..12
1.5 Existing System……………………………………………..….12
1.5.1 Limitations of Existing System…………………….…12
1.6 Proposed System……………………………………………………..…..13
1.7 Unique Features of System……………………………………………….13
Chapter 2
Requrements
2. Software Requirements Specification (SRS)………………………….…..15
2.1 Data Requirements………………………………………….…...16
2.2 Functional Requirements……………………………………..….16
2.2.1 User Functional Requirements………………………16
2.2.2 Admin Functional Requirements……………………16
2.3 Non Functional Requirements………………………………….17
2.4 System Dependability………………………………………….....17
x
Chapter 3
Design
3. Software Design……………………………………………………………18
3.1 Design Approach……………………………………………..…...19
3.2 Detail Design………………………………………………….…..19
3.3 Data Flow Diagram………………………………………………...21
3.3.1 Level 0……………………………………………………………21
3.3.2 Level 1……………………………………………………………22
3.4 Software Architecture……………………………………………....23
3.5 ER Diagram/Database Schema………………………………….….24
3.6 Use Case Diagram ………………………………………………….25
Student………………………………………………..…..25
Admin…………………………………………………...…26
3.7 Sequence Diagram…………………………………………….…..27
3.8 Methodology………………………………………………………28
xi
Chapter 4
Implementation
4. Implementation………………………………………………………………30
4.1 Introduction to Languages, IDE’s, Tools and Technologies Used For
Implementation…………………………………………………......30
4.1.1 Java…………………………….…………………………..…..31
4.1.2 Android Development Tools ………………………………….….31
Chapter 5
Testing
5.1 Test Plan ………………………………………………………………………..34
5.2 Types of Software Testing………………………………………………………34
5.3 Test Cases……………………………………………………………………….36
5.3.1 Admin Panel Test Cases……………………………………………36
5.3.2 Android Application Test Cases……………………………………37
Chapter 6
Conclusion and Future Scope
6.1 Future Scope…………………………………………………………………55
6.2 Conclusion…………………………………………………………………...55
xii
Appendix
Appendix A: Admin User Manual……………………………………………………………39
A.A. Add Student……………………………………………………....39
A.B. Edit Student……………………………………………………….40
A.C. Delete Student…………………………………………………….41
A.D. Add Department…………………………………………………..42
A.E. Edit Department…………………………………………………..43
A.F. Delete Department………………………………………………..44
A.G. Add programme…………………………………………………..45
A.H. Edit Programme…………………………………………………..46
A.I. Delete Programme…………………………………………….…..47
A.J. Send Notification……………………………………………..…48
A.K. Notification List……………………………………………...….49
Appendix B: Student User Manual……………………………………………...….50
B.A. Dashboard………………………………………………………....50
B.B. Notification List……………………………………………...……51
B.C. Notification Description………………………………………..52
B.D. Feedback…………………………….……………………….…53
xiii
Chapter 1
Introduction
With the technical improvements in mobile devices, location finding via GPS and other wireless
sensors has become a basic feature of mobile phones. In context-aware event recommendation
and message delivery systems, location information is the fundamental context data used for
recommending geographically related events. For example a student who is outside the campus
will not receive the notifications which are only for the students who are inside the campus.
COMSATS Notification System (CNS) Android App helps you access online notices on your
phone. It is an online notice board maker where a group of people can easily get notification
according to their context information. These notes can have only text information.
The notice board has always been the place where staff/students gathers to get their latest release
of corporate news. CNS brings the notice board to a virtual location where students can read
notices from their own desks or homes. With this electronic notice and announcement system,
notification alerts may be sent out notifying students that a new notice has been posted.
With the advent of mobile and pervasive computing era, smart phones became ubiquitous, and
wearable devices are getting traction. A significant portion of the applications for these devices
relies on remote servers on the cloud, and Firebase Cloud Messaging (FCM) is a popular service
as a client/server communication solution for Android.
FCM is a service which allows developers to send push messages to Android devices from the
server. FCM handles the queuing of the messages as well as delivering those messages to the
target applications on the devices. FCM is a free service by Google, and it has no quotas. It is the
default push messaging solution for the Android platform.
These are the features that CNS App has:
An electronic dashboard board for disseminating information students.
Notices can be posted.
Staff or student can be notified of new postings via push notification alert.
Administrator may push important notices in to selected students.
Administrator may create any notice category.
14
1.1 Project Category (Mobile Application):
”CNS App” is a mobile application i.e. an Internet based Mobile application. A mobile
application is a computer program designed to run on smartphones, tablet computers and other
mobile devices. Apps are usually available through application distribution platforms, which
began appearing in 2008 and are typically operated by the owner of the mobile operating system,
such as the Apple App Store, Google Play, Windows Phone Store, and BlackBerry App World.
Mobile apps were originally offered for general productivity and information retrieval, including
email, calendar, contacts, and stock market and weather information. However, public demand
and the avail- ability of developer tools drove rapid expansion into other categories, such as
mobile games, factory automation, GPS and location-based services, banking, order-tracking,
ticket purchases and recently mobile medical apps. The explosion in number and variety of apps
made discovery a challenge, which in turn led to the creation of a wide range of review,
recommendation, and curation sources, including blogs, magazines, and dedicated online app-
discovery services.
Mobile application development is the process by which application software is developed for
low-power handheld devices, such as personal digital assistants, enterprise digital assistants or
mobile phones. These applications can be pre-installed on phones during manufacturing,
downloaded by customers from various mobile software distribution platforms, or delivered as
web applications using server-side or client- side processing (e.g. JavaScript) to provide an
”application-like” experience within a Web browser.
Application software developers also have to consider a lengthy array of screen sizes, hardware
specifications and configurations because of intense competition in mobile software and changes
within each of the platforms. Mobile app development has been steadily growing, both in terms
of revenues and jobs created. The popularity of mobile apps has continued to rise, as their usage
has become increasingly prevalent across mobile phone users.
15
1.2 Objective:
The proposed system’s objectives are to overcome all the limitations and drawbacks of
the existing system.
The main objective of the application is its simplicity of design and ease of
implementation that shows and helps to collect most of the information about events
going on in campus premises. The interface will be very user-friendly.
To automate the current procedure of managing and controlling the information about the
student details and to reduce the overhead of managing paper documents for every
announcement and notices being made.
The proposed system will keep the information on a central server while allowing users
to access that information from their own Smartphone through the installed android
application.
There will be an optimized database on the server and an improved user interface on each
client machine i.e. on the CNS app installed on the user Smartphone. The developed
application will be used by students and the administrator.
1.3 Problem Formulation:
To develop a mobile application that will help you receiving the notices from the campus,
anywhere, anytime. Earlier there was problem that notices were pasted on notice board. If there
is holiday on the next day, nobody will be able to read it. Moreover any update on website is also
very difficult. Everyone feels lazy to go and update the website data. The more easy way is, just
type in message sitting wherever and post by pressing a button. It will notify all the students
registered with that application.
1.4 Identification of Need
1. As we discussed earlier that manual maintenance of a notices is a tedious job. So to enhance
the ease of working, we go for this package.
2. Giving the facility to convey messages to all students anytime and anywhere.
3. Making students updated about all the events and activities going on in the campus.
16
4. The student will not require to stand in the crowd to see the notice. There will be no issue of
fighting in order to see the notice first. Everyone is first to see that notice inside their own mobile
phone anywhere and anytime.
5. The least but most important it saves time.
6. Utilizing less man power. As there are many persons involved in circulating the message.
With this application, only one person is required to post the notice. Rest of the man power is
saved in the entire process.
1.5 Existing System:
Currently our campus has manual system of putting notices on notice board. Its outdated now.
As nobody has a time to stand in rush in order to read the notices on noticeboard.
1.5.1 Limitations of Existing System:
1. Order of Data: Notice can get out of order in traditional notice board system. If
someone accidentally puts some data in the wrong place, it can lead to lost data.
Automated notice management systems allow users to quickly check whether
information already exists somewhere in the system, which helps avoid problems
like redundant data.
2. Complexity: Automated system is less complex than manual system of handling
notices, which can make it easier for untrained people to access and manipulate data.
Anyone having the basic knowledge of mobiles can work on the automated system.
3. Inconsistency of data: There will be an unavailability for future use, since notice
might get misplaced during manual notices management. So notice won’t be
preserved properly for future use.
4. Damage: Manual notices stack are vulnerable to damage, destruction and theft in
ways that digital databases are not. A company may back up its digital data both on
site and at offsite locations, ensuring its security if the office building suffered a fire
or similar disaster. A manual database, however, may only exist in one place without
any copies. As a result, a manual database would be very vulnerable to a fire or other
17
natural disaster. In addition, while access time in a manual database system,
information must be found by hand rather than electronically. While a digital
database will typically allow users to search the entire database for specific
information in seconds, someone looking for information in a manual system may
have to spend hours searching for a particular piece of data.
5. Editing and Communication: Manual notices do not allow users to easily edit data
or information. Manual notices often cannot be edited directly, forcing users to make
new copies. To circulate notice on paper, users must require peons and other staff.
CNS app allow users to edit information fields directly, and because data is stored
digitally, it is already in a form that can be easily transmitted.
1.6 Proposed System:
Proposed System will be able to do the following:
1. To eliminate wastage of time and energy: CNS app will be able to save lot of paper and
time. It directs both teacher and pupil’s energy and attention to one thing at a time by
placing proper persons at their proper places at the proper time. Everything will be
instantaneous.
2. To avoid duplication and overlapping: This application will help to remove the
duplicity of notices. Only one person, who is admin can post the notice. No one else
would be able to do so. So student and staff will be given correct information all the time.
3. To ensure due attention of student to each and every notice: CNS App ensures that
everyone has kind attention to every notice and updates going on in campus. There will
be a buzz at each and every notice to drive the attention of student to check it once. In
this way, students will be well informed about their campus activities.
4. To bring system into campus life: It would be dire need of all campus as its easy and
shortcut method to inform all the students. In the absence of proper notification system
will make it very difficult to inform students at right time.
5. Searching a particular Notice: This application allows you search the notice very easily
through title of notice. If anyone forgets about the notice details, he can search it out very
easily.
18
6. Free Service: It gives free service to notify all the students. There will be no cost of
sending notification to all. Just have the good system implemented in campus and that too
free of cost.
7. Prevent Crowd in Campus: As you can see, there is always a crowd at notice board. As
notice board is one, and people to see notice are more. With this application there will be
no more crowd. Everyone will be well informed even at their homes. So they are free to
do there other work.
8. Automatically Updated Dashboard: The dashboard of notice is automatically updated
when a new message arrives. The user can himself refresh the dashboard to see any new
notice.
9. Anytime Anywhere Service: With this application, notices will be delivered anytime
and at any place. There is no restriction of time to send a notice.
10. Keeping Notices at one place: This application allow you to have notices in one place
only. If there is an attachment with that, all will be placed in a separate folder dedicated
to that application. So there will be no here and there of notices.
1.7 Unique Features of System:
The unique features of this application are as follow:
1. FCM Notification: Firebase Cloud Messaging has been used to broadcast notices to all
the students who are registered with this application. It will help you receive the notice
even if you application is closed. So it implements anywhere anytime notifications.
Firebase Cloud Messaging (FCM) is a free service for sending messages to Android
devices. FCM messaging can greatly enhance the user experience. Your application can
stay up to date without wasting battery power on waking up the radio and polling the
server when there are no updates. Also, FCM allows you to attach up to 1,000 recipients
to a single message, letting you easily contact large user bases quickly when appropriate,
while minimizing the work load on your server.
2. Context Based Notifications: This system sends notification on the basis of the context
information of the students. Context information may include the location and identity of
the student. E.g. the notification which is only for students who are outside the campus
will not be delivered to the students who are inside of the campus.
19
3. Anytime Anywhere Service: With this application, notices will be delivered anytime
and at any place. There is no restriction of time to send a notice.
4. Free Service: It gives free service to notify all the students. There will be no cost of
sending notification to all. Just have the good system implemented in campus and that too
free of cost.
20
Chapter 2 Software Requirement Specification
Chapter 2
Software Requirements Specification (SRS)2.1 Data Requirements:Data requirement is meant to be the data that will be used in our application. Data required in
this project is all notices that need to be conveyed to the user. This application also require the
username and passwords of persons in order to register them and sending notification about
updates. So two main requirements are:
Notice Details
User Details
2.2 Functional RequirementsIn order to make this application functional, we require the following:
2.2.1 User Functional Requirements:
User Login:
The user should be able to log in to the mobile application. The log-in information will be
stored on the phone and in the future the user should be logged in automatically.
Reset Password:
Given that a user has registered, then the user should be able to retrieve his/her password
by e-mail.
Dashboard:
Given that a user is logged in to the mobile application, then the first page that is shown
should be the dashboard page. The user should be able to see all the campus notices.
Selecting a Notice:
A user should be able to select any notice from list view. The click on particular notice
will take him to notice details of that particular notice.
Navigating back to Notices List:
21
Chapter 2 Software Requirement Specification
The user should be able to navigate back to notices list from the notice details section.
This is required to give a good user experience.
Notification Alert:
All the registered users should be able to have a ping or notification on their mobile
phone via FCM whenever a new notice is posted.
2.2.2 Admin Functional Requirements:
Admin Login:
Admin should be able to login to the admin panel so than he can post notifications.
Admin should require username and password for login.
Add/Delete/Update Student data:
Admin should be able to add student data and he can modify student information. Admin
can also delete a student data from database.
Post Notification:
Admin should be able to send notification to students. He/she can select students of
specific department, programme or batch. Admin can also send notification on the basis
of location of the student whether inside the campus or outside the campus.
Delete Notification:
Admin should be able to delete the sent notifications.
2.3 Non-Functional Requirements GUI Design:
Android application and Admin Panel Interface should be easy and attractive.
Registration with FCM:
Registration of android device with FCM is required in order receive notifications.
Security:
A student can only view the notifications that are delivered to that particular student.
2.4 System Dependability
22
Chapter 2 Software Requirement Specification
Following are the requirements that an application require from the device/mobile on which it is
installed.
Internet Permission:
Application developed, require full internet permissions of mobile so that it can fetch
notices from the server. At the same time, it should be able to receive buzz or notification
tone whenever new notice is posted by admin.
Location Permission:
Application require device location permission so that it can identify the location context
of the user to deliver appropriate notifications to users that are suitable for their context.
Account Info:
It also fetches your Google account information in order to get the user registered with
Firebase Cloud Messaging (FCM).
23
Chapter 3 Software Design
Chapter 3
Software Design3.1 Design ApproachA design approach is a general philosophy that may or may not include a guide for specific
methods. Some are to guide the overall goal of the design. Other approaches are to guide the
tendencies of the designer. A combination of approaches may be used if they don’t conflict.
Function Oriented Design Approach:
Function Oriented Design Approach is partitioning of a design into subsystems and modules,
with each one handling one or more functions. Contrast with object-oriented design, data-
structure-oriented design.
This application project uses function oriented design approach. Every module and sub modules
are made, based on their functionality. These modules are designed and implemented separately
and then they are integrated together to form the desired application.
3.2 Detail DesignThe detailed design of this application is as follow:
1. User Login:
After registering, the user is allowed to log in. Username and password after validating at
client side, is sent to server side to authentication. After authentication response is sent by
the server to client, and then user gets logged in.
2. Viewing the Notices:
At the first time, when you are using this application for the first time, it will fetch all the
notices from server. In all the other case, all previous notices are fetched from application’s
own database stored inside client mobile. It then checks for new notices from the server. If
there are new notices on the server, it will fetch all those notices.
3. Posting a Notice:
If a user is an admin, he is able to post the notice using admin panel. Admin can send
notification to the students of specific department, programme or batch. He can send
24
Chapter 3 Software Design
notification on the basis of location of the student as well whether the student is inside the
campus or outside the campus.
4. Notification Buzz:
As soon as the admin post a notice, the script will run with which request is made by FCM
Server to Web Server for all the registered IDs. After getting all the registered IDs,
notification is sent to all the users registered with this application. Notification has a tune
and vibration that runs whenever there is a notification received by the user from FCM
Server.
5. Reset Password:
This application also has the facility to reset the password. If one user has forgot his
password, he/she can rest the password by giving his username or email address. The user
will be given a page in which he can set his new password. Forgotten password will be
updated with the new one on the server.
25
Chapter 3 Software Design
Fig 1: Conceptual Design
26
Chapter 3 Software Design
3.3 Data Flow Diagram:
3.3.1 Level 0:
Fig 2: Data Flow Level 0
3.3.2 Level 1:
27
Chapter 3 Software Design
Fig 3: Data Flow Level 1
3.4 Software Architecture:
28
Chapter 3 Software Design
Fig 4: Software Architecture
3.5 ER Diagram/Database Schema:
29
Chapter 3 Software Design
Fig 5: ER Diagram/Database Diagram
3.6 Use Case Diagrams:
Student:
30
Chapter 3 Software Design
Fig 6: Student Use Case Diagram
3.6 Use Case Diagrams:
Admin:
31
Chapter 3 Software Design
Fig 7: Admin Use Case Diagram
32
Chapter 3 Software Design
3.7 Sequence Diagram:
Fig: 8 Sequence Diagram
33
Chapter 3 Software Design
3.8 Methodology:
The methodology used in project is Agile Software Development. Agile Software Development
method-ology is used especially for software development, that is characterized by the division
of tasks into short phases of work and frequent reassessment and adaptation of plans.
It is for a project that needs extreme agility in requirements. The key features of agile are its
short-termed delivery cycles (sprints), agile requirements, dynamic team culture, less restrictive
project control and emphasis on real-time communication.
Agile software development is a group of software development methods based on iterative and
incremental development, in which requirements and solutions evolve through collaboration
between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary
development and delivery, a time-boxed iterative approach, and encourages rapid and flexible
response to change. It is a conceptual framework that promotes foreseen tight iterations
throughout the development cycle.
Fig 9: Agile Software Development Methodology
34
Chapter 3 Software Design
The Manifesto of Agile Software Development context are:
Individuals and interactions In agile development, self-organization and motivation are
important, as are interactions like co-location and pair programming.
Working software Working software will be more useful and welcome than just
presenting documents to clients in meetings.
Customer collaboration Requirements cannot be fully collected at the beginning of the
software development cycle, therefore continuous customer or stakeholder involvement is
very important.
Responding to change Agile development is focused on quick responses to change and
continuous development.
35
Chapter 5 Testing
Chapter 4
Implementation
4.1 Introduction to Languages, IDE’s, Tools and Technologies Used For
Implementation:
4.1.1 Java:
Java is a very popular programming language developed by Sun Microsystems
(now owned by Oracle). Developed long after C and C++, Java incorporates
many of the powerful features of those powerful languages while addressing some
of their drawbacks. Still, programming languages are only as powerful as their
libraries. These libraries exist to help developers build applications. Some of the
Javas important core features are:
It is easy to learn and understand.
It’s designed to be platform-independent and secure, using
virtual machines. It is object-oriented.
Android relies heavily on these Java fundamentals. The Android SDK includes
many standard Java libraries (data structure libraries, math libraries, graphics
libraries, networking libraries and everything else you could want) as well as
special Android libraries that will help you develop awesome Android
applications.
Platform Independence Importance
4.1.2 Android Development Tools:
Android SDK:
The Android Software Development Kit (Android SDK) contains the necessary tools to
create, compile and package Android applications. Most of these tools are command line
36
Chapter 5 Testing
based. The primary way to develop Android applications is based on the Java programming
language.
Android debug bridge (adb):
The Android SDK contains the Android debug bridge (adb), which is a tool that allows you
to connect to a virtual or real Android device, for the purpose of managing the device or
debugging your application.
Android Developer Tools and Android Studio:
Google provides two integrated development environments (IDEs) to develop new
applications. The Android Developer Tools (ADT) are based on the Eclipse IDE. ADT is a
set of components (plug-ins), which extend the Eclipse IDE with Android development
capabilities. Google also supports an IDE called Android Studio for creating Android
applications. This IDE is based on the IntelliJ IDE.
Both IDEs contain all required functionality to create, compile, debug and deploy Android
applications. They also allow the developer to create and start virtual Android devices for
testing. Both tools provide specialized editors for Android specific files. Most of Android’s
configuration files are based on XML. In this case these editors allow you to switch between
the XML representation of the file and a structured user interface for entering the data.
Dalvik Virtual Machine The Android system uses a special virtual machine, i.e., the Dalvik
Virtual Machine (Dalvik) to run Java based applications. Dalvik uses a custom byte code
format which is different from Java byte code.
37
Chapter 5 Testing
Chapter 5
Software Testing
5.1 Test Plan:
A test plan can be defined as a document describing the scope, approach, resources, and schedule
of intended testing activities. It identifies test items, the features to be tested, the testing tasks,
who will do each task, and any risks requiring contingency planning. In software testing, a test
plan gives detailed testing information regarding an upcoming testing effort, including
Scope of testing Schedule
Test Deliverables
Release Criteria
Risks and Contingencies
It is also be described as a detail of how the testing will proceed, who will do the testing, what will be
tested, in how much time the test will take place, and to what quality level the test will be performed.
The process of defining a test project so that it can be properly measured and controlled the test
planning process generates a high level test plan document that identifies the software items to
be tested, the degree of tester independence, the test environment, the test case design and test
measurement techniques to be used, and the rationale for their choice.
5.2 Types of Software Testing:
Various testing types are as follow:
1. Black box testing: Internal system design is not considered in this type of testing. Tests
are based on requirements and functionality.
2. White box testing: This testing is based on knowledge of the internal logic of an
applications code. Also known as Glass box Testing. Internal software and code
working should be known for this type of testing. Tests are based on
coverage of code statements, branches, paths, conditions.
3. Unit testing: Testing of individual software components or modules. Typically done by the
programmer and not by testers, as it requires detailed knowledge of the internal
38
Chapter 5 Testing
program design and code. may require developing test driver modules or test
harnesses.
4. Incremental integration testing: Bottom up approach for testing i.e. continuous testing
of an application as new functionality is added; Application functionality and
modules should be independent enough to test separately. done by
programmers or by testers.
5. Integration testing: Testing of integrated modules to verify combined functionality after
integration. Modules are typically code modules, individual applications, client and server applications on a
network, etc. This type of testing is especially relevant to client/server and distributed systems.
6. Functional testing: This type of testing ignores the internal parts and focus on the
output is as per requirement or not. Black-box type testing geared to functional
requirements of an application.
7. System testing: Entire system is tested as per the requirements. Black-box type testing
that is based on overall requirements specifications, covers all combined parts of a
system.
8. End-to-end testing: Similar to system testing, involves testing of a complete application
environment in a situation that mimics real world use, such as interacting with a
database, using network communications, or interacting with other hardware,
applications, or systems if appropriate.
39
Chapter 5 Testing
5.3 Test Cases
5.3.1 Admin Panel Test Cases:
Test Case Input ProcessingDesired
Output
Actual
OutputStatus
Admin login with
correct credentials
Username=Haseeb
Password=12345
Check
whether
user exists
Successfully
logged in
Successfully
logged inPass
Admin Login with
incorrect Credentials
Username=admin
Password=abcd
Check
whether
user exists
Login failed
message
Login failed
messagePass
Add student with
filling all necessary
fields
complete student
Information
Try to add
student in
database
Student
added
successfully
Student
added
successfully
Pass
Add student with
missing some
necessary fields
Partial student
information
Try to add
student in
database
Missing
information
message
Missing
information
message
Pass
Send announcement
notification
Select
announcement as
notification type and
input message
Forward
notificatio
n to FCM
Server
Notification
sent
message
Notification
sent
message
Pass
Send notification to
students of a
department
Select department as
notification type and
input message
Forward
notificatio
n to FCM
Server
Notification
sent
message
Notification
sent
message
Pass
Send notification to
students of a
programme
Select programme
as notification type
and input message
Forward
notificatio
n to FCM
Notification
sent
message
Notification
sent
message
Pass
40
Chapter 5 Testing
Server
Send notification to
students of a batch
of a programme
Select batch as
notification type and
input message
Forward
notificatio
n to FCM
Server
Notification
sent
message
Notification
sent
message
Pass
Send a location
based notification
Select notification
type and location
and input message
Forward
notificatio
n to FCM
Server
Notification
sent
message
Notification
sent
message
Pass
41
Chapter 5 Testing
5.3.2 Android Application Test Cases
Test Case Input ProcessingDesired
Output
Actual
OutputStatus
Student Login
with correct
credentials
Reg # = SP14-BCS-023
Password = 12345
Send
credential to
app server
Successfully
logged in
Successfully
logged inPass
Student Login
with incorrect
credentials
Reg # = AP14-BCS-023
Password = 12345
Send
credential to
app server
Login failed
message
Login failed
messagePass
Receive
notification
Notification sent from
admin panel
Receives
notification
from FCM
Server
Notification
alert tune or
vibration on
mobile
Notification
alert tune or
vibration on
mobile
Pass
View a already
received
notification
Select notification from
notification list
Open
selected
notification
Display
selected
notification
Display
selected
notification
Pass
Submit
feedback
Input feedback and tap on
submit button
Send
feedback to
app server
Feedback
submitted
message
Feedback
submitted
message
Pass
Logout Tap on Logout buttonLogout
request
Successfully
logged out
message
Successfully
logged out
message
Pass
42
Chapter 5 Testing
43
Chapter 5 Testing
Chapter 6
Conclusion and Future Scope
6.1 Future Scope:
The future scope of the project is that it can be used as any news giving application or it can be used to
advertise your products, telling the customers about new schemes and products coming to your shop. This
application of e-Notice can be further extended to include the following features:
1. Categorization of Notice:
Notices can be categorized in different categories, so that its possible for user to easily
manage the notices. Categorization can also be done by making groups. Defining the
notice to be circulated in a particular group can make it more secure.
2. Documents and PDF files:
The attachments can be further improved to include PDF files or Doc files. Then there will not be
much need to send images with the notices. A single file would serve all the purposes.
6.2 Conclusion:
I learned a lot by doing this project.
Languages used: Java, Android UI, WCF Web Services, ASP.Net MVC.
Servers Used: IIS Server, FCM Server
Database: MSSQL Server, SQLite
So, during this project I learned all the above things. Before this project, I had no idea about Java
and Android for making application. Although I had knowledge of ASP.Net MVC before. But
now I learned a lot about Java and got knowledge of using Android for developing mobile
application and ASP.Net MVC for server side scripting.
44
Chapter 5 Testing
If I talk about the project, CBNS Application has reduced lot of manual work. It has made
notifying each and every user very easy and that too with no time and place restrictions.
45
Chapter 6 User’s Guide
Chapter 7
User’s Guide
46
Chapter 6 User’s Guide
Appendix
Appendix A. Admin User Manual:
A.A. Add Student:
Fill all the fields with valid data and click on create button to add a new student in the database.
All fields are necessary to be filled out.
47
Chapter 6 User’s Guide
A.B. Edit Student:
Modify the information in the fields and click on save button to modify the student data. All
fields are necessary don’t keep any field empty.
48
Chapter 6 User’s Guide
A.C. Delete Student:
Click on the delete button and the confirm the deletion of record from database. Once the data
has been delete it cannot be recovered.
49
Chapter 6 User’s Guide
6.1.4 Add Department:
Fill the department name in the given field and click on create button to add a new department.
The field is necessary, it cannot be empty.
50
Chapter 6 User’s Guide
6.1.5 Edit Department:
Modify the department name in the given field and click on save button to modify the
department information in the database.
51
Chapter 6 User’s Guide
6.1.6 Delete Department:
Click on delete button and confirm the department deletion from database. Once the entry has
been deleted it cannot be recovered.
52
Chapter 6 User’s Guide
6.1.7 Add programme:
53
Chapter 6 User’s Guide
Fill the given fields and click on create button to add new programme of a specific department.
All fields are necessary don’t keep any field empty.
6.1.8 Edit Programme:
54
Chapter 6 User’s Guide
Modify the programme details in given fields and click on save button to modify the programme
information in database. No field can be left empty.
6.1.9 Delete Programme:
55
Chapter 6 User’s Guide
Click on the delete button and confirm the deletion of programme entry from database. Once the
entry has been deleted it cannot be recovered.
6.1.10 Send Notification:
56
Chapter 6 User’s Guide
Select notification type and location and fill the fields with valid data and then click on the send
button to send the notification to students according to notification type.
6.1.11 Notification List:
57
Chapter 6 User’s Guide
To see the notification list click on the ‘back to list’ link on Send Notification page. This list
shows all the sent notifications with their type and sending date.
6.2 Student User Manual:
6.2.1 Dashboard:
58
Chapter 6 User’s Guide
This is the dashboard of the application student can tap on notifications button to view received
notification list or he/she may give feedback by clicking on feedback button. Student can change
his/her password can logout from app if doesn’t wants to receive notifications.
6.2.2 Notification List:
59
Chapter 6 User’s Guide
This is the list of received notifications. Student can see this list by tapping of Notifications
button on the dashboard.
60
Chapter 6 User’s Guide
6.2.3 Notification Description:
User can view description of the notification by taping on notification in the list.
61
Chapter 6 User’s Guide
6.2.4 Feedback:
62
Chapter 6 User’s Guide
63
Chapter 7 Conclusion and Future Scope
64
References
References
References:1. How is Context and Context-awareness defined and applied? A survey of Context-
Awareness by Jespar J. Bisaard, Morten Heise, Carsten Steffensen (Department of
Computer Science Aalborg University Frederik Bajersvej 7E DK92220 Aalborg East,
Denmark.
2. Towards a Better Understanding of Context-Aware Applications by Emilian Pascalau
(Covservatoier National des Arts et Métiers France), Grzegorz J. Nalepa, Krzysztof
Kluza (AGH University of Science and Technology al. A. Mickiewiewicza 30, 30-059
Krakow, Polan).
3. Contextual Experience sampling of Mobile Application Micro-Usage by Denzil Ferreira,
Jorge Goncalves, Vassilis Kostakos (Dep. Computer Science)and Engineering University
of Oulu, Oulu Finland), Louise Barkhuus ( Stockholm University Forum 100 Stockholm,
Sweden), Anind K. Dey (Human Computer Interaction Institute Carnegie Mellon
University Pittsburgh, USA).
65
References
66
References
PROJECT NAME Context Based Notification Software For CIIT Vehari
ORGANIZATION NAME COMSATS Institute Of Information Technology Vehari
Campus
UNDERTAKEN BY Muhammad Haseeb Nusrat & Muhammad Sohaib Ramzan
SUPERVISED BY Farman Ullah
STARTING DATE September 01, 2017
COMPLETION DATEDecember 26, 2017
COMPUTER USEDIntel Core m, 1.8 Ghz, 4GB RAM , 500GB Hard disk
OPERATING SYSTEM MS Windows 8.1
SOURCE LANGUAGE(S) Java, C#.Net, ASP.Net
DBMS USED MS SQL SERVER
TOOLS/PACKAGES MS Office/ Visual Studio/Android Studio
67
References
68
top related