Student Portal

Download as pdf or txt
Download as pdf or txt
You are on page 1of 78

ABSTRACT

The Student Portal is an android application that acts as single point of access
for all the transactions offered by the CSIT Department through its various
constituents to its student. The portal provides complete access to the current and
accurate information about the various functions and notifications provided by
Department to the students. The portal aims at creating a student database in
which profile of every student exists. The student can access many facilities like
lecture notes, downloading courses and syllabus details, and receive notifications
updated by CSIT Department. It is a transparent and accountable portal that
creates a hassle-free environment with reduced administrative burden and service
fulfillment costs for the CSIT Department and students to a large extent.

1
Table of Contents:
1. Introduction 3
2. Existing system and need for system 4
3. Operating environment 5
4. Proposed system 6
5. System analysis 8
6. Feasibility report 10
6.1 Technical feasibility report 10
6.2 Operational feasibility report 11
6.2 Economical feasibility report 11
7. System design 12
7.1 Data Flow Diagram 12
7.2 Data Dictionary 18
8. Implementation 24
8.1 Android 24
8.2 IDE, Android Studio 29
8.3 Development Architecture 30
8.4 Employed Database 31
8.5 Language used for backend 31
8.6 Payment Gateway 32
9. System Testing 35
9.1 Testing Plan 35
9.2 Testing Strategy 35
9.3 Testing Methods 36
9.4 Testing principles 37
9.5 Test Cases 39
10. Output Screen 42
11. System Security 74
12. Conclusion 75
13. Future Improvement 77

2
1. INTRODUCTION TO THE PROJECT

In the realm of information technology it is imperative to enable students to


access various online facilities related to their respective departments such as
online accessing course and syllabus details, lecture notes etc. The current system
is manual is a manual system. In this user has to store records in paper. The
manual system is lot of time consuming. In this system user unable to view the all
the files. Searching of particular information is very critical it takes lot of time. It is
the most cost effective and time efficient system for company.

The inception of mobile era has given us opportunity to build a mobile based
application that can provide students with such facilities. Since the android based
mobile phones are more popular than phones powered by other platforms such as
IOS and WINDOWS, we choose android to be platform of our proposed application.

The android based application, STUDENT PORTAL facilitates easy communication


of the students with the CSIT department through an android application. The
application stores a student database which constitutes profiles of each and every
student. This reduces the time & paper management cost by providing online
approach to all the facility & services provided by the department.

The functional requirements are gathered by interviewing some of students and


faculties of CSIT department. Due to time limit all requirements cannot be fulfilled
but the major functional requirements are implemented in STUDENT PORTAL. Some
major functional requirements are: The android application enables the department
authorities to put notification about events through online notice board and
students should get these notifications at real-time, the faculties should be allowed
to share their lectures notes with students through this mobile application, the
attendance & internal marks of the students should be uploaded by subject
teachers and accessed by students, the android application should facilitate teacher
to direct communicate important messages to students, the application should
provide the contact details of teaching and non-teaching staff members. Also the
Non-Function requirements are undertaken in this project. These non-functional
requirements are twofold: first one is performance requirement and the second one
is security requirements.

To implement STUDENT PORTAL, Android Studio, the official IDE for android
development has been used. Besides, a php based apache web server has been
utilized as application hosting server. It also contains mysql database that stores
pertaining records.

3
2. EXISTING SYSTEM AND NEED FOR SYSTEM

PROBLEMS IN EXISTING SYSTEM

The existing system is a manual system. In this user has to store records in
paper. The manual system is lot of time consuming .In this system user unable to
view the all the files. Searching of particular information is very critical it takes lot
of time. It is the most cost effective and time efficient system for company.

SOLUTION OF THESE PROBLEMS

The development of this new system contains the following activities, which try
to automate the entire process keeping in the view of database integration
approach. User Friendliness is provided in the application with various controls
provided by system Rich User Interface. The system makes the overall project
management much easier and flexible. It can be accessed over the Internet.
Various classes are used to view records and details students.

The user information files can be stored in centralized database which can be
maintained by the admin. This can give the good security for user information
because only admin can access the records .User can get the information provided
by admin or system.

There is no risk of data management at any level while the project development
is under process. Report generation features is provided, in this system student
wise, courses wise, department wise and roll wise reports are generated.

NEED FOR SYSTEM

We all know the importance of computerization. The world is moving ahead at


lightning speed and everyone is running short of time. One always wants to get the
information and perform a task he/she/they desire(s) within a short period of time
and too with amount of efficiency and accuracy. The application areas for the
computerization have been selected on the basis of following factors:

Minimizing the manual records kept at different locations.


There will be more data integrity.
Facilitating desired information display, very quickly, by retrieving information
from users.
To reduce manual efforts in activities that involved repetitive work.
Updating and deletion of such a huge amount of data will become easier.

4
3. OPERATING ENVIRONMENT

HARDWARE REQUIREMENTS

1GHz processor
512 MB RAM
2 GB Internal Storage

SOFTWARE REQUIREMENTS

Operating System: API Level: 15(min), Android 4.0.3


PDF Reader

PERMISSION REQUIREMENTS

Auto connect to Internet


Storage Permission
Calling Permission

5
4. PROPOSED SYSTEM

OBJECTIVES TO BE FULFILLED
To facilitate easy communication of the students with the CSIT department
through an android application.
Enabling students to access various online facilities such as online accessing
course and syllabus details, lecture Notes, providing latest updates to the
students etc.
Developing a student database which constitutes profiles of each and every
student.
Reducing the time & paper management cost by providing online approach to all
the facility & services provided by the Department.

USER REQUIREMENTS

FUNCTIONAL REQUIREMENTS

The android application enables the department authorities to put notification


about events through online notice board and students should get these
notifications at real-time.
The faculties should be allowed to share their lectures notes with students
through this mobile application.
The attendance & internal marks of the students should be uploaded by subject
teachers and accessed by students.
The android application should facilitate teacher to direct communicate
important messages to students.
The application should provide the contact details of teaching and non-teaching
staff members.

The database should maintain following records:

Student Details like name, enrollment number etc


Results of all students for all semesters

6
Internal marks during the whole session
Payment details
Updated course details
Notifications and their respective document
Attendance reports
Finally, this project is an attempt to satisfy almost all the functional
requirements that the student requires to accomplish and keep it flexible enough to
accommodate all the changes and the new requirements of the student.

NON-FUNCTIONAL REQUIREMENTS

The Non-Function requirements of the proposed system are twofold: first one is
performance requirement and the second one is security requirements.

Performance is measured in terms of the output provided by the application.


Requirement specification plays an important part in the analysis of a system. Only
when the requirement specifications are properly given, it is possible to design a
system, which will fit into required environment. It rests largely in the part of the
users of the existing system to give the requirement specifications because they are
the people who finally use the system. This is because the requirements have to be
known during the initial stages so that the system can be designed according to
those requirements. It is very difficult to change the system once it has been
designed and on the other hand designing a system, which does not cater to the
requirements of the user, is of no use.

The security is the most crucial and inseparable part of the any information
system. All the confidential and important data should be encrypted with some
encryption technique.

7
5. SYSTEM ANALYSIS

INTRODUCTION

After analyzing the requirements of the task to be performed, the next step is to
analyze the problem and understand its context. The first activity in the phase is
studying the existing system and other is to understand the requirements and
domain of the new system. Both the activities are equally important, but the first
activity serves as a basis of giving the functional specifications and then successful
design of the proposed system. Understanding the properties and requirements of a
new system is more difficult and requires creative thinking and understanding of
existing running system is also difficult, improper understanding of present system
can lead diversion from solution.

ANALYSIS MODEL: SDLC

This document plays a vital role in the development of life cycle (SDLC) as it
describes the complete requirement of the system. It means for use by developers
and will be the basic during testing phase. Any changes made to the requirements
in the future will have to go through formal change approval process.

NUMBER OF MODULES

The system has been identified to be presented with the following parts:

The Parts involved are:

1. Student part

2. Faculty part

The first part i.e. Student part involves following modules:

1. Results

2. Notifications

3. Attendance

4. Internal marks

5. Department Contacts

8
6. Lecture Notes

7. Teacher's Board

8. Fee Payment

SYSTEM REQUIREMENTS FOR DEVELOPMENT:

Hardware Requirements:

2.8 GHz Processor and Above


RAM 3GB and Above plus 1 GB for the Android Emulator
500 MB disk space for Android Studio, at least 1.5 GB for Android
SDK, emulator system images, and caches
Software Requirements:

Microsoft Windows 7/8/10 (32-bit or 64-bit)


Android Studio (IDE)
1280 x 800 minimum screen resolution (Recommended)
WAMP server 2.4 or above
JDK 7 or above
For accelerated emulator: Intel processor with support for Intel VT-
x, Intel EM64T (Intel 64), and Execute Disable (XD) Bit
functionality.

9
6. FEASIBILITY REPORT

Preliminary investigation examine project feasibility, the likelihood the system


will be useful to the organization. The main objective of the feasibility study is to
test the Technical, Operational and Economical feasibility for adding new modules
and debugging old running system. All system is feasible if they are unlimited
resources and infinite time. There are aspects in the feasibility study portion of the
preliminary investigation:

Technical Feasibility
Operational Feasibility
Economical Feasibility

TECHNICAL FEASIBILITY

The technical issue usually raised during the feasibility stage of the investigation
includes the following:

Does the necessary technology exist to do what is suggested?


Do the proposed equipments have the technical capacity to hold the data
required to use the new system?
Will the proposed system provide adequate response to inquiries, regardless of
the number or location of users?
Can the system be upgraded if developed?
Are there technical guarantees of accuracy, reliability, ease of access and data
security?
Technical feasibility refers to the ability of the process to take advantages of the
current state of the technology in pursuing further improvement. The front end tool
proposed is easily compatible with the current hardware configuration in the
organization. The back end tool proposed has the capacity to hold the data required
for using the new system.

Student Portal uses the existing technology only. It uses internet for sending
link of new register user and forgot password. Now days these technologies
improves day by day. So its convenient for us to use these technology. So there is
no need to develop any hardware to provide these facilities. Student Portal run on
android operating system which is available in most of smart phone devices. So
there is no need to install any software or driver to run this application.

10
OPERATIONAL FEASIBILITY

Proposed projects are beneficial only if they can be turned out into information
system. That will meet the organizations operating requirements. Operational
feasibility aspects of the project are to be taken as an important part of the project
implementation. Some of the important issues raised are to test the operational
feasibility of a project includes the following: -

Is there sufficient support for the management from the users?


Will the system be used and work properly if it is being developed and
implemented?
This system is targeted to be in accordance with the above-mentioned issues.
Beforehand, the management issues and user requirements have been taken into
consideration. So there is no question of resistance from the users that can
undermine the possible application benefits.

The well-planned design would ensure the optimal utilization of the computer
resources and would help in the improvement of performance status.

ECONOMICAL FEASIBILITY

A system can be developed technically and that will be used if installed must still
be a good investment for the organization. In the economical feasibility, the
development cost in creating the system is evaluated against the ultimate benefit
derived from the new systems. Financial benefits must equal or exceed the costs.

The system is economically feasible. It does not require any addition hardware
or software. Since the interface for this system is developed using the existing
resources and technologies, There is nominal expenditure and economical feasibility
for certain.

11
7. SYSTEM DESIGN

INTRODUCTION

Software design sits at the technical kernel of the software engineering process
and is applied regardless of the development paradigm and area of application.
Design is the first step in the development phase for any engineered product or
system. The designers goal is to produce a model or representation of an entity
that will later be built. Beginning, once system requirement have been specified and
analyzed, system design is the first of the three technical activities -design, code
and test that is required to build and verify software.

The importance can be stated with a single word Quality. Design is the place
where quality is fostered in software development. Design provides us with
representations of software that can assess for quality. Design is the only way that
we can accurately translate a customers view into a finished software product or
system. Software design serves as a foundation for all the software engineering
steps that follow. Without a strong design we risk building an unstable system
one that will be difficult to test, one whose quality cannot be assessed until the last
stage.

During design, progressive refinement of data structure, program structure, and


procedural details are developed reviewed and documented. System design can be
viewed from either technical or project management perspective. From the
technical point of view, design is comprised of four activities architectural design,
data structure design, interface design and procedural design.

DATA FLOW DIAGRAMS

A data flow diagram is graphical tool used to describe and analyze movement of
data through a system. These are the central tool and the basis from which the
other components are developed. The transformation of data from input to output,
through processed, may be described logically and independently of physical
components associated with the system. These are known as the logical data flow
diagrams. The physical data flow diagrams show the actual implements and
movement of data between people, departments and workstations. A full
description of a system actually consists of a set of data flow diagrams. Using two
familiar notations Yourdon, Gane and Sarson notation develops the data flow
diagrams. Each component in a DFD is labeled with a descriptive name. Process is
further identified with a number that will be used for identification purpose. The

12
development of DFDS is done in several levels. Each process in lower level
diagrams can be broken down into a more detailed DFD in the next level. The lop-
level diagram is often called context diagram. It consists a single process bit, which
plays vital role in studying the current system. The process in the context level
diagram is exploded into other process at the first level DFD.

The idea behind the explosion of a process into more process is that
understanding at one level of detail is exploded into greater detail at the next level.
This is done until further explosion is necessary and an adequate amount of detail is
described for analyst to understand the process.

Larry Constantine first developed the DFD as a way of expressing system


requirements in a graphical from, this lead to the modular design.

A DFD is also known as a bubble Chart has the purpose of clarifying system
requirements and identifying major transformations that will become programs in
system design. So it is the starting point of the design to the lowest level of detail.
A DFD consists of a series of bubbles joined by data flows in the system.

DFD SYMBOLS:

In the DFD, there are four symbols

1. A square defines a source(originator) or destination of system data


2. An arrow identifies data flow. It is the pipeline through which the information
flows
3. A circle or a bubble represents a process that transforms incoming data flow into
outgoing data flows.
4. An open rectangle is a data store, data at rest or a temporary repository of data

Process that transforms data flow.

Source or Destination of data

13
Data flow

Data Store

CONSTRUCTING A DFD:

Several rules of thumb are used in drawing DFDS:

1. Process should be named and numbered for an easy reference. Each name
should be representative of the process.
2. The direction of flow is from top to bottom and from left to right. Data
traditionally flow from source to the destination although they may flow back
to the source. One way to indicate this is to draw long flow line back to a
source. An alternative way is to repeat the source symbol as a destination.
Since it is used more than once in the DFD it is marked with a short diagonal.
3. When a process is exploded into lower level details, they are numbered.
4. The names of data stores and destinations are written in capital letters.
Process and dataflow names have the first letter of each work capitalized.
A DFD typically shows the minimum contents of data store. Each data store
should contain all the data elements that flow in and out.

Questionnaires should contain all the data elements that flow in and out.
Missing interfaces redundancies and like is then accounted for often through
interviews.

SILENT FEATURES OF DFDS

1. The DFD shows flow of data, not of control loops and decision are controlled
considerations do not appear on a DFD.
2. The DFD does not indicate the time factor involved in any process whether the
dataflow take place daily, weekly, monthly or yearly.
3. The sequence of events is not brought out on the DFD.

14
TYPES OF DATA FLOW DIAGRAMS

1. Current Physical
2. Current Logical
3. New Logical
4. New Physical

CURRENT PHYSICAL:

In Current Physical DFD process label include the name of people or their
positions or the names of computer systems that might provide some of the overall
system-processing label includes an identification of the technology used to process
the data. Similarly data flows and data stores are often labels with the names of
the actual physical media on which data are stored such as file folders, computer
files, business forms or computer tapes.

CURRENT LOGICAL:

The physical aspects at the system are removed as much as possible so that the
current system is reduced to its essence to the data and the processors that
transforms them regardless of actual physical form.

NEW LOGICAL:

This is exactly like a current logical model if the user were completely happy
with the user were completely happy with the functionality of the current system
but had problems with how it was implemented typically through the new logical
model will differ from current logical model while having additional functions,
absolute function removal and inefficient flows recognized.

NEW PHYSICAL:

The new physical represents only the physical implementation of the new
system.

RULES GOVERNING THE DFDS PROCESS


1) No process can have only outputs.
2) No process can have only inputs. If an object has only inputs than it must be a
sink.
3) A process has a verb phrase label.

15
DATA STORE

1) Data cannot move directly from one data store to another data store, a process
must move data.
2) Data cannot move directly from an outside source to a data store, a process,
which receives, must move data from the source and place the data into data
store
3) A data store has a noun phrase label.

SOURCE OR SINK

The origin and /or destination of data.

1) Data cannot move direly from a source to sink it must be moved by a process
2) A source and /or sink has a noun phrase land

DATA FLOW

1) A Data Flow has only one direction of flow between symbols. It may flow in
both directions between a process and a data store to show a read before an
update. The later is usually indicated however by two separate arrows since
these happen at different type.
2) A join in DFD means that exactly the same data comes from any of two or more
different processes data store or sink to a common location.
3) A data flow cannot go directly back to the same process it leads. There must be
at least one other process that handles the data flow produce some other data
flow returns the original data into the beginning process.
4) A Data flow to a data store means update (delete or change).
5) A data Flow from a data store means retrieve or use.

16
Figure 1 Context Level DFD

17
DATA DICTIONARY

Figure 2 Student Table DD

Figure 3 Attendance Table DD

18
Figure 4 Notification Table DD

Figure 5 Notes Table DD

19
Figure 6 Internal marks (MCA-4) table DD

20
Figure 7 Teacher Table DD

Figure 8 Message Table DD

21
Figure 9 Subject Table (MCA-4) DD

Figure 10 Result Table DD

22
Figure 11 Other Stuff Table DD

Figure 12 Fee Table DD

23
8. IMPLEMENTATION

8.1 IMPLEMENTATION ENVIRONMENT: ANDROID

Android, This word means a lot in present High-Tech World. Today Smartphone
are known for its operating system which is Android. Earlier there is no option for
operating systems like Android in mobile, as usual there are SYMBIAN, java
featured operating systems but today things had changed a lot, everyone wants a
Smartphone which is functioned on Android only. In a very short span of time
android created a reputed place in the market. What is this Android actually?
Android is a software cluster for mobile devices that includes an operating system
OS, key applications and middleware. The Android SDK provides the tools and APIs
required to begin developing applications on the Android platform using the Java
programming language. About the design, Kernel of Android is based on Linux
kernel and further furnished by Google.

The Open Handset Alliance (OHA), a group of more than 30 technology and
mobile companies, was formed in 2007 to foster creativity and innovation in the
mobile arena. This group includes members like Sprint, T-Mobile, Intel, Broadcom,
Motorola, Samsung, Google, eBay, amongst others.

The main motive of this move was to facilitate openness in mobile software and
thus give customers a diversified software base which is not only less expensive but
also convenient and easy to use. The Android platform has emerged from such a
move. Android is an Operating System that is designed to be used with a variety of
handsets that will be launched in the second half of 2008.

Currently an SDK is hosted by Google, which is a leading player in the initiative.


This SDK allows creation of various Java based programs by using a special Eclipse
plug-in that interfaces with the kit. Android is not only an OS but also includes a
middleware and an array of applications for the users. Some of the supported
features are: a Dalvik Virtual Machine, built in browser and database support,
media, camera, GPS, map and other features.

Android is a mobile operating system running on the Linux kernel. It was initially
developed by Android Inc., a firm later purchased by Google, and lately by the
Open Handset Alliance. It allows developers to write managed code in the Java
language, controlling the device via Google-developed Java libraries. The unveiling
of the Android distribution on 5 November 2007 was announced with the founding
of the Open Handset Alliance, a consortium of 47 hardware, software and telecom
companies of a special pre-processor (called the Meta Object Compiler or MOC) to
enrich the language.

24
Android Architecture:

The following diagram shows the major components of the Android operating
system. Each Section is described in more detail below.

Figure 13: Android Architecture

25
Applications:
Android will ship with a set of core applications including an email client, SMS
program, calendar, maps, browser, contacts, and others. All applications are
written using the Java programming language.

Application Framework:
By providing an open development platform, Android offers developers the
ability to build extremely rich and innovative applications. Developers are free to
take advantage of the device hardware, access location information, run
background services, set alarms, add notifications to the status bar, and much,
much more. Developers have full access to the same framework APIs used by the
core applications. The application architecture is designed to simplify the reuse of
components; any application can publish its capabilities and any other application
may then make use of those capabilities (subject to security constraints enforced
by the framework). This same mechanism allows components to be replaced by the
user. Underlying all applications is a set of services and systems, including:

A rich and extensible set of Views that can be used to build an application,
including lists, grids, text boxes, buttons, and even an embeddable web
browser.
Content Providers that enable applications to access data from other applications
(such as Contacts), or to share their own data .
A Resource Manager, providing access to non-code resources such as localized
strings, graphics, and layout files.
A Notification Manager that enables all applications to display custom alerts in
the status bar.
An Activity Manager that manages the lifecycle of applications and provides a
common navigation back stack.

Application Component:
- Libraries:

Android includes a set of C/C++ libraries used by various components of the


Android system.

- Android Runtime:

Android includes a set of core libraries that provides most of the functionality
available in the core libraries of the Java programming language. Every Android
application runs in its own process, with its own instance of the Dalvik virtual

26
machine. Dalvik has been written so that a device can run multiple VMs efficiently.
The Dalvik VM executes files in the Dalvik Executable (.dex) format which is
optimized for minimal memory footprint. The VM is register-based, and runs classes
compiled by a Java language compiler that have been transformed into the .dex
format by the included "dx" tool. The Dalvik VM relies on the Linux kernel for
underlying functionality such as threading and low-level memory management.

- Linux Kernel:
Android relies on Linux version 2.6 for core system services such as security,
memory management, process management, network stack, and driver model. The
kernel also acts as an abstraction layer between the hardware and the rest of the
software stack.

Development Toolkit:

Android SDK:

The Android SDK includes a comprehensive set of development tools. These


include a debugger, libraries, a handset emulator (based on QEMU),
documentation, sample code, and tutorials. Currently supported development
platforms include x86- architecture computers running. Linux (any modern desktop
Linux distribution),Mac OS X 10.4.8 or later, Windows XP or Vista. Requirements
also include Java Development Kit, Apache Ant, and Python 2.2 or later. The
officially supported integrated development environment (IDE) is Eclipse (3.2or
later) using the Android Development Tools (ADT) Plug-in, though developers may
use any text editor to edit Java and XML files then use command line tools to
create, build and debug Android applications.

Emulator:

The Android SDK includes a mobile device emulator -- a virtual mobile device
that runs on your computer. The emulator lets you prototype, develop, and test
Android applications without using a physical dev. The Android emulator mimics all
of the typical hardware and software features of a typical mobile device, except that
it can place actual phone calls. It provides a variety of navigation and control keys,
which you can "press" using your mouse or keyboard to generate events for your
application. It also provides a screen in which your application is displayed,
together with any other Android applications running.

To let you model and test your application more easily, the emulator
supports Android Virtual Device (AVD) configurations. AVDs let you specify the
Android platform that you want to run on the emulator, as well as the hardware
options and emulator skin fill you want to use. Once your application is running on
the emulator, it can use the services of the Android platform to invoke other

27
applications, access the network, play audio and video, store and retrieve data,
notify the user, and render graphical transitions and themes.

The emulator also includes a variety of debug capabilities, such as a console


from which you can log kernel output, simulate application interrupts (such as
arriving SMS messages or phone calls), and simulate latency effects and dropouts
on the data channel.

Emulator Limitations:

No support for placing or receiving actual phone calls.


No support for USB connections.
No support for camera/video capture (input).
No support for device-attached headphones.
No support for determining connected state.
No support for determining battery charge level and AC charging state.
No supports for determining SD card insert/eject.
No support for Bluetooth.

What Androids Are Made Of

When you write a desktop application, you are "master of your own domain".
You launch your main window and any child windows like dialog boxes that are
needed. From your standpoint, you are your own world, leveraging features
supported by the operating system, but largely ignorant of any other program that
may be running on the computer at the same time. If you do interact with other
programs, it is typically through an API, such as using JDBC (or frameworks atop it)
to communicate with MySQL or another database. Android has similar concepts, but
packaged differently, and structured to make phones more crash- resistant.

Activities:

The building block of the user interface is the activity. You can think of an
activity as being the Android analogue for the window or dialog in a desktop
application. While it is possible for activities to not have a user interface, most likely
your "headless" code will be packaged in the form of content providers or services,
described below.

Content Providers:

Content providers provide a level of abstraction for any data stored on the
Device that is accessible by multiple applications. The Android development Model
encourages you to make your own data available to other Applications, as well as
your own building a content provider lets you do that, while maintaining complete
control over how your data gets accessed.

28
Intents:

Intents are system messages, running around the inside of the device, notifying
applications of various events, from hardware state changes (e.g., an SD card was
inserted), to incoming data (e.g., an SMS message arrived), to application events
(e.g., your activity was launched from the device's main menu).

Services:

Activities, content providers, and intent receivers are all short-lived and can be
shut down at any time. Services, on the other hand, are designed to keep running,
if needed, independent of any activity. You might use a service for checking for
updates to an RSS feed, or to play back music even if the controlling activity is no
longer operating.

Advantages of Android:

Android Software Development Kit the Android SDK includes an emulator, some
tools for performance prowling and debugging. Eclipse IDE is natural choice for
Android developers. Android Development tool (ADT) is a plug-in use to enhance
and boost the performance of Eclipse IDE. It provides faster and easier way of
creation and debugging of Android application.

Dalvik is register based virtual machine and its interpreter is optimized for faster
execution. Dalvik is capable of executing programs written in Java. It does not
understand the java code directly, rather a dx tool is use to convert java code into
byte code (which is then executed by Dalvik). The purpose of conversion java code
into byte code is to optimize the code to be easily compiled over the limited
resourced mobile device. Android support the execution of multiple instances of
Dalvik VM simultaneously.

8.2 INTEGRATED DEVELOPMENT ENVIRONMENT: ANDROID STUDIO

Android Studio is the official integrated development environment (IDE) for the
Android platform. It was announced on May 16, 2013 at the Google I/O conference.
Android Studio was in early access preview stage starting from version 0.1 in May
2013, then entered beta stage starting from version 0.8 which was released in June
2014. The first stable build was released in December 2014, starting from version
1.0. Based on JetBrains' IntelliJ IDEA software, Android Studio is designed
specifically for Android development. It is available for download on Windows,
macOS and Linux, and replaced Eclipse Android Development Tools (ADT) as
Google's primary IDE for native Android application development.

New features are expected to be rolled out with each release of Android Studio.
The following features are provided in the current stable version:

29
Gradle-based build support.
Android-specific refactoring and quick fixes.
Lint tools to catch performance, usability, version compatibility and other
problems.
ProGuard integration and app-signing capabilities.
Template-based wizards to create common Android designs and components.
A rich layout editor that allows users to drag-and-drop UI components,
option to preview layouts on multiple screen configurations.
Support for building Android Wear apps.
Built-in support for Google Cloud Platform, enabling integration with Firebase
Cloud Messaging (Earlier 'Google Cloud Messaging') and Google App Engine.
Android Virtual Device (Emulator) to run and debug apps.

8.3 DEVELOPMENT ARCHITECTURE: Model View Controller (MVC)

Model-View-Controller (MVC) is an architectural pattern used in software


engineering. Successful use of the pattern isolates business logic from user
interface considerations, resulting in an application where it is easier to modify
either the visual appearance of the application or the underlying business rules
without affecting the other.

In MVC, the model represents the information (the data) of the application;
the view corresponds to elements of the user interface such as text, checkbox
items, and so forth; and the controller manages the communication of data and the
business rules used to manipulate the data to and from the model.
In simpler words-
1. Model handles all our database logic. Using the model we connect to our
database and provide an abstraction layer.
2. Controller represents all our business logic i.e. all if and else.
3. View represents our presentation logic i.e. our HTML/XML/JSON code.

30
8.4 EMPLOYED DATABASE: MYSQL

MySQL is an open source relational database management system (RDBMS) that


uses Structured Query Language (SQL), the most popular language for adding,
accessing, and processing data in a database.

MySQL is noted mainly for its speed, reliability, and flexibility. It is commonly
employed with most of the popular server-side scripting languages including PHP,
JSP and ASP. It is a multithreaded, multi-user, SQL (Structured Query Language)
relational database server (RDBMS).

MySQL is available either under the GNU General Public License (GPL) or under
other licenses when the GPL is inapplicable to the intended use. MySQL is a freely
available third-party database engine designed to provide fast access to stored
data. Data can be stored, updated and deleted using languages such as PHP. The
data can be retrieved from the database to allow the generation of dynamic
WebPages.

8.5 LANGUAGE USED FOR BACKEND ACTIVITIES: PHP

PHP is a server-side scripting language designed primarily for web development


but also used as a general-purpose programming language. Originally created by
Rasmus Lerdorf in 1994, the PHP reference implementation is now produced by The
PHP Development Team.PHP originally stood for Personal Home Page, but it now
stands for the recursive acronym PHP: Hypertext Preprocessor.

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

The standard PHP interpreter, powered by the Zend Engine, is free software
released under the PHP License. PHP has been widely ported and can be deployed
on most web servers on almost every operating system and platform, free of
charge.

The PHP language evolved without a written formal specification or standard


until 2014, leaving the canonical PHP interpreter as a de facto standard. Since 2014
work has gone on to create a formal PHP specification.

31
8.6 PAYMENT GATEWAY

A payment gateway is a merchant service provided by an e-commerce


application service provider that authorizes credit card or direct payments
processing for e-businesses, online retailers, bricks and clicks, or traditional brick
and mortar. The payment gateway may be provided by a bank to its customers, but
can be provided by a specialised financial service provider as a separate service,
such as a payment service provider.

A payment gateway facilitates a payment transaction by the transfer of


information between a payment portal (such as a website, mobile phone or
interactive voice response service) and the front end processor or acquiring bank.

Typical transaction processes


When a customer orders a product from a payment gateway-enabled merchant, the
payment gateway performs a variety of tasks to process the transaction.

1. A customer places order on website by pressing the 'Submit Order' or


equivalent button, or perhaps enters their card details using an automatic
phone answering service.
2. If the order is via a website, the customer's web browser encrypts the
information to be sent between the browser and the merchant's webserver.
In between other methods, this may be done via SSL (Secure Socket Layer)
encryption. The payment gateway may allow transaction data to be sent
directly from the customer's browser to the gateway, bypassing the
merchant's systems. This reduces the merchant's Payment Card Industry
Data Security Standard (PCI DSS) compliance obligations without redirecting
the customer away from the website.
3. The merchant then forwards the transaction details to their payment
gateway. This is another (SSL) encrypted connection to the payment server
hosted by the payment gateway.
4. The payment gateway converts the message from XML to ISO-8583 or a
variant message format (format understood by EFT Switches) and then
forwards the transaction information to the payment processor used by the
merchant's acquiring bank.
5. The payment processor forwards the transaction information to the card
association (I.e.: Visa/MasterCard/American Express). If an American
Express or Discover Card was used, then the card association also acts as the
issuing bank and directly provides a response of approved or declined to the
payment gateway. Otherwise [e.g.: MasterCard or Visa card was used], the
card association routes the transaction to the correct card issuing bank.

32
6. The credit card issuing bank receives the authorization request, verifies the
credit or debit available and then sends a response back to the processor (via
the same process as the request for authorization) with a response code
(I.e.:: approved, denied). In addition to communicating the fate of the
authorization request, the response code is also used to define the reason
why the transaction failed (I.e.: insufficient funds or bank link not available).
Meanwhile, the credit card issuer holds an authorization associated with that
merchant and consumer for the approved amount. This can impact the
consumer's ability to spend further (because it reduces the line of credit
available or it puts a hold on a portion of the funds in a debit account).
7. The processor forwards the authorization response to the payment gateway
8. The payment gateway receives the response, and forwards it on to the
website (or whatever interface was used to process the payment) where it is
interpreted as a relevant response then relayed back to the merchant and
cardholder. This is known as the Authorization or "Auth"
9. The entire process typically takes 23 seconds.[3]
10. The merchant then fulfills the order and the above process can be repeated
but this time to "Clear" the authorization by consummating the transaction.
Typically, the "Clear" is initiated only after the merchant has fulfilled the
transaction (I.e.: shipped the order). These results in the issuing bank
'clearing' the 'auth' (i.e.: moves auth-hold to a debit) and prepares them to
settle with the merchant acquiring bank.
11. The merchant submits all their approved authorizations, in a "batch" (end of
the day), to their acquiring bank for settlement via its processor. This
typically reduces or "Clears" the corresponding "Auth" if it has not been
explicitly "Cleared".
12. The acquiring bank makes the batch settlement request of the credit card
issuer.
13. The credit card issuer makes a settlement payment to the acquiring bank
(the next day in most cases)
14. The acquiring bank subsequently deposits the total of the approved funds
into the merchant's nominated account (the same day or next day). This
could be an account with the acquiring bank if the merchant does their
banking with the same bank, or an account with another bank.
15. The entire process from authorization to settlement to funding typically takes
3 days.
Many payment gateways also provide tools to automatically screen orders for
fraud and calculate tax in real time prior to the authorization request being sent to

33
the processor. Tools to detect fraud include geo-location, velocity pattern analysis,
OFAC list lookups, 'black-list' lookups, delivery address verification, computer finger
printing technology, identity morphing detection, and basic AVS checks.

In our android application, the STUDENT PORTAL, we utilized payment gateway


provided by PayUmoney.

34
9. SYSTEM TESTING

Testing is the process carried out on software to detect the differences between
its behavior and the desired behavior as stipulated by the requirements
specifications.

Testing is advantageous in several ways. Firstly, the defects found help in the
process of making the software reliable. Secondly, even if the defects found are
not corrected, testing gives an idea as to how reliable the software is. Thirdly, over
time, the record of defects found reveals the most common kinds of defects, which
can be used for developing appropriate preventive measures such as training,
proper design and reviewing.

9.1 TESTING PLAN

The testing sub-process includes the following activities in a phase dependent


manner:

Create Test Plans.


Create Test Specifications.
Review Test Plans and Test Specifications.
Conduct tests according to the Test Specifications, and log the defects.
Fix defects, if any.
When defects are fixed continue from activity.

9.2 TESTING STRATEGY

The development process repeats this testing sub-process a number of times for
the following phases.

Unit Testing.
Integration Testing
System Testing.
Acceptance Testing.

Unit Testing tests a unit of code (module or program) after coding of that unit is
completed. Integration Testing tests whether the various programs that make up a
system, interface with each other as desired, fit together and whether the
interfaces between the programs are correct. System Testing ensures that the
system meets its stated design specifications. Acceptance Testing is testing by the
users to ascertain whether the system developed is a correct implementation of the
Software Requirements Specification.

35
Testing is carried out in such a hierarchical manner to ensure that each
component is correct and the assembly/combination of components is correct.
Merely testing a whole system at the end would most likely throw up errors in
components that would be very costly to trace and fix.

9.3 TESTING METHODS

9.3.1 Black Box and White Box Testing

In black box testing a software item is viewed as a black box, without


knowledge of its internal structure or behavior. Possible input conditions, based on
the specifications (and possible sequences of input conditions), are presented as
test cases.

In white-box testing knowledge of internal structure and logic is exploited. Test


cases are presented such that possible paths of control flow through the software
item are traced. Hence more defects than black box testing are likely to be found.

The disadvantages are that exhaustive path testing is infeasible and the logic
might not conform to specification. Instrumentation techniques can be used to
determine the structural system coverage in white box testing. For this purpose
tools or compilers that can insert test probes into the programs can be used.

9.3.2 Code Coverage

The way to make sure that you have got all the control flow covered is to cover
all the paths in the program during the testing (via white-box testing). This implies
that both branches are exercised for and if statement, all branches are exercised
for a case statement, the loop is taken once or multiple times as well as ignored for
a while statement, and all components of complicated logical expressions are
exercised. This is called Path Testing. Branch Testing reports whether entire
Boolean expression tested in control structures evaluated to both true and false.

Additionally it includes coverage of switch statement cases, exception handlers


and interrupts handlers. Path testing includes branch testing as it considers all
possible combination of individual branch conditions. A simpler version is Statement
Testing, which determines if each statement in the program has been executed at
least once. The coverage via Path Testing includes the coverage via Statement
Testing. Since Path Testing is extremely comprehensive it is costly, hence a viable
minimum should be measuring Statement Testing coverage.

36
9.4 TESTING PRINCIPLES

While deciding on the focus of testing activities, study project priorities. For
example, for an on-line system, pay more attention to response time. Spend
more time on the features used frequently.
Decide on the effort required for testing based on the usage of the system. If
the system is to be used by a large number of users, evaluate the impact on
users due to a system failure before deciding on the effort.
A necessary part of the test case is a definition of the expected result.
Write test cases for invalid and unexpected as well as valid and expected input
conditions.
Thoroughly inspect the results of each test.

We have performed both Unit Testing and System Testing on WIMS to detect
and fix errors. A brief description of both is given below.

I. Unit Testing

Objective

The objective of Unit Testing is to test a unit of code (program or set of programs)
using the Unit Test Specifications, after coding is completed. Since the testing will
depend on the completeness and correctness of test specifications, it is important
to subject these to quality and verification reviews.

Input

--Unit Test Specifications

--Code to be tested.

Testing Process

Checking for availability of Code Walk-thru reports which have documented the
existence of and conformance to coding standards.

Review of Unit Test Specifications

- Verify the Unit Test Specifications conform to the program specifications.

- Verify that all boundary and null data conditions are included.

Techniques

Test Walk-through

37
This method of reviewing modules, a check for testability, is done by mentally
executing the code with example test cases. The advantage is that the programmer
can ensure that the path taken is always the one intended and that the values of
variables are always sensible. This is not a proven method and can be used only by
persons with knowledge of the particular language or application. It is
recommended that a number of test cases from the Unit Test Specifications be
utilized for Test Walk-thru.

Two strategies are defined for testing modules by actual execution: the top
down approach and the bottom-up approach.

In the top-down approach, the main routine is tested first, with the subroutines
being substituted by dummy or null routines called stubs. As testing progresses,
the stubs are replaced by real routines that in turn may call further stubs
representing lower-level modules in the module hierarchy. In the figure below,
main program A is tested with stubs for B and C; then B is tested with stubs for D,
E and F, and, C is tested with stub for G, etc.

Figure 14: TOP-DOWN APPROACH

In the bottom-up approach, testing starts at the lowermost level and then
proceeds to higher-level programs or modules. The testing team directly calls the
module to be tested, which may call other pre-tested modules. In the figure above,
D is tested with a dummy driver for B. The same is done for E and F. Then B is
tested with a dummy driver for A.

The bottom-up approach does not allow you to have complete control over the
test data.

38
II. Integration Test

After completion of our module along with testing, modular coding strategy was
used. After integrating the module with the complete application, time was given to
our team to test their part of module completely and thoroughly.

As the whole application is divided into several modules, there were a lot of
variable names and function names, which were common to all the modules. There
existed a lot of session variables, which we had to incorporate into our module, but
as different modules were being developed simultaneously we had to hard code
things in place of the session variables in our module. So at the time of integration
a lot of hard coded things had to be removed and session variables were replaced.

9.5 TEST CASES

Sr. Test Case Description Expected Result Actual Result Remarks


No

1. On Login button click The screen shows Students Same as


(with correct inputs) Home screen. expected.

2. On Login button click The screen shows a Dialog Same as


(with incorrect inputs) saying Login Failed. expected.

3. On Login button click The screen shows a toast Same as


(with either input saying Cannot be empty. expected.
remained empty)

4. On Home screen click The Screen should be Same as All the other
on Results. displayed with total marks expected. semester
student have obtained in each shows 0 as
semester he/she has marks
appeared. obtained.

5. On Home screen click The Screen should be Same as All the other
on Internal Marks. displayed with marks student expected. subject shows
have obtained in each subject 0 as marks
and in both tests he/she has obtained.
appeared.

39
6. On Home screen click The Screen should be Same as
on Notifications. displayed with a list of expected.
notifications uploaded for
either students class or All.

7. On Notification The document attached with Same as


screen click on a list item should be downloaded expected.
item. and viewed in a document
reader.

8. On Home screen click The Screen should be Same as


on Attendance. displayed with a list of expected.
completed months
attendance uploaded for
students class.

9. On Attendance screen The document attached with Same as


click on a list item. item should be downloaded expected.
and viewed in a document
reader.

10. On Home screen click The Screen should be Same as


on Lecture Notes. displayed with a list of lecture expected.
notes uploaded.

11. On Lecture Notes The document attached with Same as


screen click on a list item should be downloaded expected.
item. and viewed in a document
reader.

12. On Home screen click The Screen should be Same as


on Other Stuff. displayed with a list of other expected.
helpful documents uploaded
like syllabus, challan etc.

13. On Other Stuff screen The document attached with Same as


click on a list item. item should be downloaded expected.
and viewed in a document
reader.

14. On Change Password The toast saying the password Same as


screen enter new changed successfully should expected.
password and confirm be displayed.

40
password.

15. On Home screen click The Screen should be Same as


on Dept. Contacts. displayed with a list of contact expected.
details.

16. On Dept. Contacts The phone number attached Same as


screen click on a list with the respective name expected.
item. should be dialed.

17. On Home screen click The Screen should be Same as


on Teachers Board. displayed with a list of expected.
messages sent by teacher to
students class with time &
date of message sent.

18. On Home screen click The Screen should be Same as


on Fee Payment. displayed with students expected.
name, class and the amount
payable with a button that
opens payment gateway
Webview.

19. On Home screen click The Screen should be Same as


on Fee Payment (if displayed with toast saying expected.
fee has been paid You have paid the fee of this
already). semester already

20. On the Fee Payment The page should be redirected Same as


Screen (if email and to PayUMoneys payment expected.
phone number are gateway page.
correctly fed) click on
Pay Now button.

21. On the Fee Payment The Screen should be Same as


Screen (if email displayed with toast saying expected.
and/or phone please feed both the fields.
number are empty)
click on Pay Now
button.

41
10. OUTPUT SCREEN

A) STUDENT APP

Figure 10. 1 Main Activity

42
Figure 10. 2 Giving Input

43
Figure 10. 3 Authenticating

44
Figure 10. 4 Student Home Screen

45
Figure 10. 5 Results Screen

46
Figure 10. 6 Notice Board Screen

47
10.6 A) Notification- clicking an item in the list

48
10.6 B) Notification- Opening the respective document

49
Figure 10. 7 Internal Marks Screen

50
Figure 10. 8 Contact Detail Screen

51
10.8 A) Calling to a contact number

52
Figure 10. 9 Lecture Notes Screen

53
Figure 10. 10 Teacher's Board Screen

54
Figure 10. 11 Other Stuff Screen

55
Figure 10. 12 Fee Payment Screen

56
10.12 A) Loading Webview

57
10.12 B) Payment Gateway Redirection

58
10.12 C) Choosing Netbanking option

59
10.12 D) Choosing the bank

60
10.12 E) Page Redirection

61
10.12 F) Page after logging in

62
10.12 G) Some Formalities

63
10.12 H) Payment Successful from bank side

64
10.12 I) PayU Success message & Redirecting to User Home

65
10.12 J) Redirected to User Home

66
10.12 K) Screen if fee has already been paid

67
B) TEACHERS APP

Figure 10. 13 Message Board Login Screen

68
Figure 10. 14 Logging In

69
Figure 10. 15 Message Board Home Screen

70
Figure 10. 16 Choosing the class to send message

71
Figure 10. 17 Texting

72
Figure 10. 18 Message Successfully Sent

73
11. SYSTEM SECURITY

Security is the condition of being protected against danger or loss. In the


general sense, security is a concept similar to safety. So every application has to be
secured against hackers or anonymous access of it. Our project contains two
security features, of which one is password protection and the other is session
state.

Password Protection

Every user who is to be allowed to access the project is given his own username
and password and given his own access rights so that only authorized and
authenticated users can access the project. Also the password is not directly stored
in the database to prevent hacking.

Session State

The additional and the most efficient security feature that is added in this
project is the session state. Every time a new user logs in, a new session is created.
This session is specific for a particular user. All the transactions done by a user are
found here. But once the user logs out, the session is cleared. Once the session is
cleared, it cant be retrieved again. This minimizes the chances of hacking ones
account or any other misuse. This becomes too safe as compared to other features
because the sessions are unique.

74
12. CONCLUSION

It has been a great pleasure for me to work on this exciting and challenging
project. This project proved good for me as it provided practical knowledge of not
only programming in Android application but also about all handling procedure
related with Student Portal. It also provides knowledge about the latest
technology used in developing An Android app and client server technology that will
be great demand in future. This will provide better opportunities and guidance in
future in developing projects independently.

Benefits
The project is identified by the merits of the system offered to the user. The
merits of this project are as follows: -
Its a mobile-enabled project.
All the data about a student is stored at the time of his/her admission, so there
is no need for the student to fill up another form to sign up for the project.
This project offers user to enter the data through simple and interactive forms.
This is very helpful for the client to enter the desired information through so
much simplicity.
Sometimes the user finds in the later stages of using project that he needs to
update some of the information that he entered earlier. There are options for
him by which he can update the records. Moreover there is restriction for his
that he cannot change the primary data field. This keeps the validity of the data
to longer extent.
From every part of the project the user is provided with the links through
framing so that he can go from one option of the project to other as per the
requirement. This is bound to be simple and very friendly as per the user is
concerned. That is, we can state that the project is user friendly which is one of
the primary concerns of any good project.
Data storage and retrieval will become faster and easier to maintain because
data is stored in a systematic manner and in a single database.
Allocating of sample results becomes much faster because at a time the user
can see the records of last years.
Easier and faster data transfer through latest technology associated with the
computer and communication.
Through these features it will increase the efficiency, accuracy and
transparency.

75
Limitations
The size of the database increases day-by-day, increasing the load on the
database back up and data maintenance activity.
Training for simple computer operations is necessary for the users working on
the system.
Some Exceptions might have been remained unhandled, so there might exist
bugs and run time error. Although these bugs are not any threat to the
functionality of the app.
There could be some loopholes in security of the system.

SUMMARY OF PROJECT WORK


Throughout the process, I enjoyed working with the organization and it was a
great learning experience. I had the privilege of going through entire Software
Development Life Cycle right from the requirement-gathering phase. Moreover, the
software engineering concepts that I learnt theoretically were actually implemented
practically.

While acknowledging all the help that my seniors rendered to me and with
due respect and sincere gratitude to my teachers who were instrumental to shape
me out, I submit my project report for your kind consideration. Though I have paid
utmost attention to incorporate the maximum facts and figures in my report, I take
this opportunity to beg your pardon for any unintentional error in the data that has
been collected and incorporated in this report.

76
13. FUTURE IMPROVEMENT

This system being app-based and an undertaking of Cyber Security Division,


needs to be thoroughly tested to find out any security gaps.

A discussion Forum can be added to the project, so that student can interact
with each others about various academic topics.

Teachers app, Message Board can be provided with whole other


functionalities like lecture notes upload, homework assignment, help etc.

Message Board can also be developed for clerical staff, and hence make it
easier to communicate with students for them.

The Student Portal is developed for a single department, the Department of


CSIT. The project can be developed for other departments of the university,
and hence for the whole university, with of course, primary focus on
respective departments functionality.

Moreover, it is just a beginning; further the system may be utilized in various


other types of operations.

77
BIBLIOGRAPHY

www.tutorialspoint.com/android
www.tutorialspoint.com/php/
www.tutorialspoint.com/mysql/
www.stackoverflow.com
www.youtube.com/programmingknowledge
www.androidhive.info
www.github.com

78

You might also like