Student Portal
Student Portal
Student Portal
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
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.
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
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.
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.
4
3. OPERATING ENVIRONMENT
HARDWARE REQUIREMENTS
1GHz processor
512 MB RAM
2 GB Internal Storage
SOFTWARE REQUIREMENTS
PERMISSION REQUIREMENTS
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
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.
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.
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:
1. Student part
2. Faculty part
1. Results
2. Notifications
3. Attendance
4. Internal marks
5. Department Contacts
8
6. Lecture Notes
7. Teacher's Board
8. Fee Payment
Hardware Requirements:
9
6. FEASIBILITY REPORT
Technical Feasibility
Operational Feasibility
Economical Feasibility
TECHNICAL FEASIBILITY
The technical issue usually raised during the feasibility stage of the investigation
includes the following:
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: -
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.
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.
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:
13
Data flow
Data Store
CONSTRUCTING A DFD:
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.
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.
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
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
18
Figure 4 Notification Table DD
19
Figure 6 Internal marks (MCA-4) table DD
20
Figure 7 Teacher Table DD
21
Figure 9 Subject Table (MCA-4) DD
22
Figure 11 Other Stuff Table DD
23
8. IMPLEMENTATION
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.
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.
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 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:
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.
Emulator Limitations:
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.
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.
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 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.
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.
31
8.6 PAYMENT GATEWAY
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.
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.
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.
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.
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.
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
--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.
- 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.
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.
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.
40
password.
41
10. OUTPUT SCREEN
A) STUDENT APP
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
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
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.
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
A discussion Forum can be added to the project, so that student can interact
with each others about various academic topics.
Message Board can also be developed for clerical staff, and hence make it
easier to communicate with students for them.
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