0% found this document useful (0 votes)
104 views161 pages

Education Management System (EMS)

The British Computer Society Professional Graduate Diploma Project By Amila Thennakoon Membership No: 990338889

Uploaded by

Naseer Ahmed
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
104 views161 pages

Education Management System (EMS)

The British Computer Society Professional Graduate Diploma Project By Amila Thennakoon Membership No: 990338889

Uploaded by

Naseer Ahmed
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 161

Education Management System (EMS)

The British Computer Society Professional Graduate Diploma Project

By

Amila Thennakoon

Membership No: 990338889

P a g e 1 | 161
ACKNOWLEDGEMENT

I have great pleasure in writing this acknowledgement for completion of BCS Professional
Graduate Diploma project. First of all I thank BCS for offering this valuable opportunity to make
our Educational and career life in higher position.

I wish to express my sincere thanks to my project supervisor Mr. Viraj pinto. With his great
inspiration and support I was able to complete this project very successfully. Also I thanks to all
the members and my friends for supporting me to success this project.

I am also grateful to all the staff and employees of Mr Asela Mallikarathne without his support
and advises completion of this project would have been extremely complicated.

As a learner, I learnt lot of things about the programming fundamentals to advanced technics
mainly through the video tutorials, Books and forums on the Internet. So I take this space to
gratefully thank to all the instructors, authors and Communities for their valuable dedication.

Last but not the least, I would like to thank my family: my parents and my brother for supporting
me success this project and my future.

P a g e 2 | 161
Table of Contents
Chapter 1 Abstract ........................................................................................................................................ 8
1.1 Introduction ........................................................................................................................................ 8
1.2 Current system .................................................................................................................................... 9
1.3 PROPOSED SYSTEM ........................................................................................................................... 12
1.4 SELECTED SOLUTION JUSTIFICATION ................................................................................................ 12
1.5 PROJECT SCOPE ................................................................................................................................. 13
1.6 Project OBJECTIVES/ Deliverables..................................................................................................... 14
1.7 Project Plan ....................................................................................................................................... 15
1.8 Methodological Approach ................................................................................................................ 15
1.9 Unified Modeling Language (UML) ................................................................................................... 17
Chapter 2 REQUIREMENTS ANALYSIS & SPECIFICATION ............................................................................ 18
2.1 INTRODUCTION ................................................................................................................................. 18
2.2 Requirements Gathering ................................................................................................................... 18
2.3 Techniques used for Requirement gathering ................................................................................... 19
2.4 Functional Requirement ................................................................................................................... 20
2.4 Non Functional Requirement ............................................................................................................ 23
2.5 The Proposed System........................................................................................................................ 24
2.6 EXISTING SIMILAR SYSTEMS AND REFERENCES ................................................................................ 25
Chapter 3 DESIGN ....................................................................................................................................... 27
3.1 Introduction ...................................................................................................................................... 27
3.2 Proposed System Design ................................................................................................................... 27
3.2.1 Use Case diagram ........................................................................................................................... 28
3.2.2 Flow Charts .................................................................................................................................... 35
3.2.3 UML Sequence Diagrams ............................................................................................................... 46
3.2.4 UML Activity Diagrams ................................................................................................................... 50
3.2.5 Class Diagram ................................................................................................................................. 55
3.2.6 ERD Diagram .................................................................................................................................. 56
3.3 Database Design & Structure ............................................................................................................ 57
3.4 User Interface Designs ...................................................................................................................... 75
Chapter 4 CODING .................................................................................................................................... 116
4.1 Introduction .................................................................................................................................... 116
4.2 System Coding ................................................................................................................................. 117

P a g e 3 | 161
Chapter 5 Testing ...................................................................................................................................... 126
5.1 Introduction .................................................................................................................................... 126
5.2 Testing methods.............................................................................................................................. 126
5.3 Testing life cycle .............................................................................................................................. 127
5.3.1 Functional testing..................................................................................................................... 127
5.3.2 Unit testing............................................................................................................................... 127
5.4 Test Plan and test cases ...................................................................................................................... 128
5.4.1 Test proofs ............................................................................................................................... 136
Chapter 6 Implementation........................................................................................................................ 148
6.1 Introduction .................................................................................................................................... 148
6.2 Hardware and software Requirements........................................................................................... 149
Chapter 7 Critical Appraisal....................................................................................................................... 151
7.1 Introduction .................................................................................................................................... 151
7.2 SWOT Analysis of the New System ................................................................................................. 152
7. 3 Conclusion ...................................................................................................................................... 154
Appendix ................................................................................................................................................... 155

P a g e 4 | 161
LIST OF FIGURES

FIGURE 1 ARCHITECTURE OF PROPOSED SYSTEM .........................................................................................................9


FIGURE 2 TASKS OF STAFF USERS ................................................................................................................................10
FIGURE 3 TASKS OF THE TEACHER ...............................................................................................................................11
FIGURE 4 PROTOTYPE DEVELOPMENT MODEL ...........................................................................................................16
FIGURE 5 TYPES OF REQUIREMENTS ...........................................................................................................................18
FIGURE 6 BELOW SHOW SAMPLE ID CARD TEMPLATES ..............................................................................................22
FIGURE 7 EDUHAPPY SYSTEM ......................................................................................................................................26
FIGURE 8 OPENSIS SYSTEM ..........................................................................................................................................26
FIGURE 9 SYSTEM USE CASE DIAGRAM .......................................................................................................................30
FIGURE 10 SYSTEM MAINTENANCE USE CASE .............................................................................................................31
FIGURE 11 ATTENDANCE USE CASE .............................................................................................................................32
FIGURE 12 WEB BASED VIRTUAL EXAMS USE CASE.....................................................................................................34
FIGURE 13 USE LOGIN FLOW CHART ...........................................................................................................................35
FIGURE 14 CLASS MASTER FLOWCHART .....................................................................................................................36
FIGURE 15 CLASS CHARGES TYPES MASTER FLOW CHART ..........................................................................................37
FIGURE 16 MODEL PAPER USE CASE ...........................................................................................................................39
FIGURE 17 HANDOUTS FLOWCHART ...........................................................................................................................40
FIGURE 18 STUDENT ATTENDANCE FLOWCHART........................................................................................................41
FIGURE 19 ADD STUDENT FLOWCHART ......................................................................................................................42
FIGURE 20 ADD USER FLOWCHART .............................................................................................................................43
FIGURE 21 QUESTION BANK ADD FLOWCHART...........................................................................................................44
FIGURE 22 LESSONS ADD FLOWCHART ......................................................................................................................45
FIGURE 23 USE LOGIN SEQUENCE DIAGRAM ..............................................................................................................46
FIGURE 24 ADD NEW CLASS SEQUENCE DIAGRAM .....................................................................................................47
FIGURE 25 CLASS ATTENDANCE SEQUENCE DIAGRAM ..............................................................................................48
FIGURE 26 ONLINE EXAM FLOWCHART .......................................................................................................................49
FIGURE 27 USER LOGIN ACTIVITY DIAGRAM ...............................................................................................................50
FIGURE 28 CLASS MASTER ADD ACTIVITY DIAGRAM...................................................................................................51
FIGURE 29 CLASS MASTER EDIT ACTIVITY DIAGRAM ..................................................................................................52
FIGURE 30 CLASS ATTENDANCE ACTIVITY DIAGRAM ..................................................................................................53
FIGURE 31 ONLINE EXAM ACTIVITY DIAGRAM ............................................................................................................54
FIGURE 32 USER LOGIN PANEL ....................................................................................................................................75
FIGURE 33 ADMIN PANEL ............................................................................................................................................76
FIGURE 34 SOME ADMIN PANEL MENUS AFTER EXPAND ...........................................................................................77
FIGURE 35 CLASS VIEW UI WITH NO RECORDS ...........................................................................................................78
FIGURE 36 CLASS NEW DATA ENTER FORM ................................................................................................................78
FIGURE 37 CLASS VIEW WITH DATA LOADED ..............................................................................................................79
FIGURE 38 CLASS VIEW WITH EMPTY GRID .................................................................................................................79
FIGURE 39 CHARGES TYPE ADD NEW ..........................................................................................................................80
FIGURE 40 CHARGES TYPES GRID ................................................................................................................................80
FIGURE 41 CHARGE TYPE EDIT .....................................................................................................................................81
FIGURE 42 CLASS PAYMENT GRID WITH NO RECORDS ...............................................................................................82
FIGURE 43 CLASS PAYMENT GRID WITH RECORDS .....................................................................................................82
FIGURE 44 CLASS PAYMENT NEW................................................................................................................................83
FIGURE 45 CLASS PAYMENT NEW – BASIC INFO SECTION ...........................................................................................84
FIGURE 46 CLASS PAYMENT NEW – PAYMENT INFO SECTION ....................................................................................84

P a g e 5 | 161
FIGURE 47 CLASS PAYMENT NEW – SAVE NOTIFICATION ...........................................................................................85
FIGURE 48 CLASS PAYMENT VIEW – SAVE NOTIFICATION ..........................................................................................85
FIGURE 49 CLASS PAYMENT DETAILS ..........................................................................................................................86
FIGURE 50 ADD NEW MODEL PAPER ...........................................................................................................................87
FIGURE 51 MODEL PAPER VIEW ..................................................................................................................................87
FIGURE 52 MODEL PAPER EDIT ...................................................................................................................................88
FIGURE 53 HANDOUTS - NEW .....................................................................................................................................89
FIGURE 54 HANDOUTS - VIEW .....................................................................................................................................89
FIGURE 55 HANDOUTS - EDIT ......................................................................................................................................89
FIGURE 56 STUDENT - NEW .........................................................................................................................................90
FIGURE 57 STUDENT – NEW SYSTEM INFO. PANEL .....................................................................................................90
FIGURE 58 STUDENT – NEW –STUDENT INFO. ............................................................................................................91
FIGURE 59 STUDENT – VIEW WITH EMPTY GRID.........................................................................................................92
FIGURE 60 STUDENT – VIEW WITH DATA ....................................................................................................................92
FIGURE 61 USER – VIEW ..............................................................................................................................................93
FIGURE 62 STUDENT – NEW ........................................................................................................................................94
FIGURE 63 USER – EDIT ................................................................................................................................................95
FIGURE 64 USER – PERMISSION...................................................................................................................................96
FIGURE 65 ATTENDANCE – NEW .................................................................................................................................97
FIGURE 66 ATTENDANCE – NEW – WITH STUDENTS ...................................................................................................98
FIGURE 67 ATTENDANCE – NEW – WITH STUDENTS ...................................................................................................99
FIGURE 68 SUBJECT – VIEW – WITH SUBJECTS ..........................................................................................................100
FIGURE 69 SUBJECT – NEW........................................................................................................................................100
FIGURE 70 LESSONS – VIEW WITH NO RECORDS ......................................................................................................101
FIGURE 71 LESSONS – NEW .......................................................................................................................................101
FIGURE 72 LESSONS – NEW .......................................................................................................................................102
FIGURE 73 LESSONS – NEW .......................................................................................................................................102
FIGURE 74 QUESTION – NEW ....................................................................................................................................103
FIGURE 75 QUESTION – NEW WITHAL PANEL EXPANDED ........................................................................................103
FIGURE 76 QUIZ PAPER – NEW .................................................................................................................................104
FIGURE 77 QUIZ PAPER – CATALOG ..........................................................................................................................105
FIGURE 78 QUIZ PAPER STATISTICS ...........................................................................................................................106
FIGURE 79 ONLINE EXAM PORTAL QUIZ PAPERS ......................................................................................................107
FIGURE 80 ONLINE EXAM PORTAL QUIZ PAPER REGISTRATION ..............................................................................108
FIGURE 81 ONLINE EXAM PORTAL SECURITY KEY - GMAIL........................................................................................108
FIGURE 82 ONLINE EXAM PORTAL QUIZ PAPER SECURITY KEY VERIFY .....................................................................109
FIGURE 83 ONLINE EXAM PORTAL QUIZ PAPER HUMAN OR ROBOT VERIFICATION ................................................109
FIGURE 84 ONLINE EXAM PORTAL QUIZ PAPER TAKE EXAM.....................................................................................110
FIGURE 85 ONLINE EXAM PORTAL QUIZ PAPER TAKE EXAM.....................................................................................110
FIGURE 86 ONLINE EXAM PORTAL QUIZ PAPER ........................................................................................................111
FIGURE 87 ONLINE EXAM PORTAL QUIZ PAPER FINISH CONFIRMATION ..................................................................111
FIGURE 88 QUIZ PAPER RESULTS SHEET – RESULTS SUMMERY TAB .........................................................................112
FIGURE 89 QUIZ PAPER RESULTS SHEET – ANALYZE TAB ..........................................................................................113
FIGURE 90 CRYSTAL REPORT DESIGNER - DESIGN CLASS BARCODE CARD ................................................................114
FIGURE 91 CRYSTAL REPORT DESIGNER - EXECUTE REPORT .....................................................................................114
FIGURE 92 CRYSTAL REPORT DESIGNER - GENERATED CLASS CARDS .......................................................................115
FIGURE 93 SYSTEM ERROR PAGE ...............................................................................................................................115
FIGURE 94 PROJECT TECHNICAL ARCHITECTURE .......................................................................................................116

P a g e 6 | 161
FIGURE 95 TESTING TYPES .........................................................................................................................................126
FIGURE 96 TESTING METHODS ..................................................................................................................................126
FIGURE 97 SERVICE LAYER WITH UNIT TESTING PROJECT .........................................................................................127
FIGURE 98 LOGIN PANEL VALIDATIONS .....................................................................................................................136
FIGURE 99 LOGIN PANEL VALIDATIONS .....................................................................................................................136
FIGURE 100 CLASS ADDED SUCCESSFULLY ................................................................................................................137
FIGURE 101 CLASS ADD CLIENT SIDE VALIDATIONS ..................................................................................................137
FIGURE 102 CLASS NEW RECORD DUPLICATE ..........................................................................................................137
FIGURE 103 CLASS EDIT DATA LOADED .....................................................................................................................138
FIGURE 104 CLASS EDIT DATA UPDATED ...................................................................................................................138
FIGURE 105 CLASS CHARGES VALIDATION ................................................................................................................139
FIGURE 106 CLASS EDIT VALIDATIONS ......................................................................................................................139
FIGURE 107 CLASS CHARGES VALIDATIONS ..............................................................................................................139
FIGURE 108 CHARGES TYPES ADDED NOTIFICATION ................................................................................................140
FIGURE 109 CHARGE TYPE - NEW FIELD VALIDATION ...............................................................................................140
FIGURE 110 CHARGES TYPES EDIT WITH DATA .........................................................................................................141
FIGURE 111 CHARGES TYPES UPDATED NOTIFICATION ............................................................................................141
FIGURE 112 CHARGES TYPE EDIT VALIDATIONS ........................................................................................................142
FIGURE 113 ADD - ATTENDANCE VALIDATION ..........................................................................................................142
FIGURE 114 ADD - ATTENDANCE STUDENT PANEL VALIDATIONS .............................................................................143
FIGURE 115 ENTER A VALID STUDENT NO .................................................................................................................143
FIGURE 116 INVALID STUDENT NO ERROR ................................................................................................................144
FIGURE 117 ADD NEW USER ......................................................................................................................................144
FIGURE 118 QUESTION NEW VALIDATIONS ..............................................................................................................146
FIGURE 119 QUESTION NEW NOTIFICATION .............................................................................................................146
FIGURE 120 ADD QUIZ PAPER NOTIFICATION ...........................................................................................................147
FIGURE 121 AZURE APP SERVICE. TYPES OF APPS CAN HOST ..................................................................................148
FIGURE 122 AZURE HOSTING.....................................................................................................................................149
FIGURE 123 AZURE HARDWARE REQUIREMENTS .....................................................................................................149
FIGURE 124 BARCODE SCANNER ...............................................................................................................................150

P a g e 7 | 161
Chapter 1 Abstract

1.1 Introduction
G.C.E A/L (General Certificate of Education – Advance level) is the qualification and also exam
conducted by ministry of education and department of examinations Sri lanka. Students’ should
study two years in collage to qualify to this exam. The exam conducted in five mainstreams.
There for student should select a field to study and they can sit for the exam.

Mr.Asela is a professional private educator conducting Advance level Economic classes’ .to
improve the learning experience and manage administrative tasks he used some unique
methods manually with help of some other software tools. But he faced lot of issues of those
software tools and techniques’ because of the lack of maturity and inefficiency. In the market
there are no generic software to fulfill his requirements.

According to the above facts he decided to move a bespoke software solution. The proposed
system will convert his all manual works to computerized solution. Beside the admirations
tasks,this web based system provides facilities for measure student’s efficiency.

During period of study time the teacher can get a clear idea about his students’ competency
levels and also student can get better understanding about their current competency level of the
subject lessons.

Other side of this system is it will help students to score better results in real exam by its quizzed
based learning feature .actually the concepts use in this system will affect the students life’s
positively

This system used n- tier architecture .and developed using latest and matured Microsoft ASP.net
MVC platform .used object oriented platform (OOP) and Object Orient Design principles. Further
it consisted with token based authentication system to authorized users access and prevent
unauthorized accessed. To provide high availability and auto scaling facilities this system
optimized to and planned to host on Microsoft azure cloud platform

P a g e 8 | 161
Figure 1 Architecture of proposed system

1.2 Current system


Introduction

Currently all of the tasks and processing’s doing by manually .there are several roles who
engaging with this process all of the manual tasks can be segregate in to two major areas

1. Administrative/Operational Tasks
2. Learning Management Tasks

P a g e 9 | 161
1. Administrative Tasks/Operational Tasks

The administrative tasks done by clerical staff works with the teacher. Their tasks can be list
down as below.

Figure 2 Manual Tasks of Staff Users

2. Learning Management Tasks


Theas tasks carry out by teacher or teaching assistant .this system provides facilities take
reports from payment reports to student analytical reports.

P a g e 10 | 161
Figure 3 Tasks of the teacher

Weaknesses Identification of current system

After careful observations, I’m identified major weaknesses in current manual process below are
some difficulties exists in the manual system.

1. Delay in manual attendance marking


2. long student queue when payment handling
3. Students Id cards making is a time consuming task
4. Student Payment recording is confusing
5. Big need of student database
6. No centralized question bank
7. Provide an automated question and answering platform
8. Delay in provide reports

P a g e 11 | 161
1.3 PROPOSED SYSTEM
According to above problems he asked me to develop a system for to make easy his tasks, after
careful investigation about his requirements I’m chosen this project as a my BCS PGD project .
This web based “Education Management System “will solve above indicated difficulties and also
give proper picture about educators students, payments and proficiency level of each students
as well.

This system has develop using object orient programming (OOP) and Object Orient Design (OOD)
techniques. Therefor this approaches will help to do maintenance and future enhancements of
this system very efficiently.

The main technologies behind this web based system is Microsoft ASP.NET MVC 5 ,ASP.Net WEB
API , Microsoft SQL Server 2016 and Microsoft IIS Server on Microsoft Azure cloud platform all
these technologies are mature software platforms for developing enterprise level software
solutions .

1.4 SELECTED SOLUTION JUSTIFICATION


The following advantages are leads to choose web based solution for the proposed
System.

 Cross platform compatibility- the system can be accessed from any platform with
proposed system compatible browser.

 Easily managed and update- web based system is deployed in company main server. If
arise any modification of the system that only need to be done in main server. Not to the
individual users level.

 Security- Individual user access can be monitored and controlled from the central
location (from the system deployed server).

P a g e 12 | 161
 Remote access- web based systems are best suited to remote access. The proposed
system is accessed by departmentally separated users. They can be connected with the
main server through the company local area network (LAN).

1.5 PROJECT SCOPE


Theirs is a famous saying “Projects don't fail at the end, they fail at the beginning” the truth of
this statement is the failures of the project is reason to earlier stages faults. Therefor
understanding the project scope is very critical point

This projects developed as three separate solutions those solutions stands for

1. Administrator Panel with dashboard


2. Online exam portal
3. Barcode Card generation tool
4. Web API Service layer (RESTFull)

1. Administrator Panel with dashboard

Provides all the core functionalities of the system.

2. On-line exam portal

This web based software includes web based virtual exam facility. Students can navigate
web based portal and practice mock exams. with this facility the educator can publish
MCQ mock exams .students can practice those exams ,this will ensure to give best
learning experience to students and also it’s a valuable feature to the educator to be
highlight among other educators in the area .

P a g e 13 | 161
3. Barcode Card generation tool

A Desktop application can generate student’s barcode cards using premade templates

4. Web API Service layer (RESTFull)

Microsoft WebAPI based service layer act as a middle layer between data base and front
end. The service developed as a standalone service .the reason is, in the future Mr Asela
(Educator) has an idea to develop a mobile application for this software .therefor it will
be much easy with this standalone REST Full web service .

Another feature of this software solution is the questions bank, normally as an educator he used
to store questions as MS Word files this will make tedious to manage when it became big. But
when moves to computerized question bank it’s become super easy.

Using this question repository the educator can maintain a question bank and also this will used
to web based virtual exam module.

1.6 Project OBJECTIVES/ Deliverables


The aspiration of this project is provide better solution for Educator to drive smoothly their
learning activities in proper manner.

1. Reduce long student queues ,speed up attendance and payment handling process by
using barcoded cards
2. Construct in detailed student database
3. Provides quick reports for visualize system data
4. Facilitate to analysis student progress
5. Control security of the data by using latest authentication technologies
6. Automate students barcode cards generation

P a g e 14 | 161
1.7 Project Plan

1.8 Methodological Approach


The proposed system is developed according to the Software development lifecycle (SDLC).
System development methodology in software engineering is a framework that is used to
structure, plan and control process of developing an information system.

I have full freedom to choose development methodology according developer development


habits and techniques. Most of the time system developer has to be followed iterative process
for develop more reliable and high quality system.

Evolutionary prototype has been selected as methodological approach of proposed system


development.
What is Prototype Development Model

A Software prototype is early sample or model .in the prototype development model use if the
customer requirement are unclear or complaex .in this approach initially build small software
prototype give customer to evaluate .after evaluate customer will suggest new features and
show missing requirement .after that developers will rework necessary until an acceptable
prototype is finally achieved, from which the complete system can be developed. At each stage
the prototype 'evolves' towards the final system.

P a g e 15 | 161
Reason to choose Prototype as Development Model:

 Generally in this model, developers listen to the customer, design a prototype, and then
test the prototype there for this model gives high user engagement.
 The software developer can get feedback from the users/customers’ early in the project.
 Very effective paradigm in software engineering
 Can use when developers are faced with rapidly changing, unclear, or incomplete
requirements.

Figure 4 Prototype Development Model

P a g e 16 | 161
1.9 Unified Modeling Language (UML)
The Unified Modelling Language (UML) is a general-purpose, developmental, modelling language
in the field of software engineering that is intended to provide a standard way to visualize the
design of a system. This document consists all the diagrams are described proposed system
design accordance to the UML standards.

P a g e 17 | 161
Chapter 2 REQUIREMENTS ANALYSIS & SPECIFICATION

2.1 INTRODUCTION
Gathering requirement is in first place of every software development .in here also the situation
is same before introduced the web based software they are used a manual data entry
techniques .to gather clear picture about the current proses and the requirements I have to get
the cooperation of the employees of the educator’s team

This chapter is written to review the existing system and described the fact gathering techniques
as well as collected functional and non-functional requirements. System analysis is addressed the
problem domain for examining the situation with the motive of improving it through suitable
procedures and methods. In analysis phase main and very difficult part is requirement gathering.
For succeed the difficult part, analyzer has to be studied and understand the current system and
the requirement of the problem domain

2.2 Requirements Gathering

As mentioned earlier fact gathering is difficult part and time consuming process in analysis stage.
There are many methods and approaches can be used to find facts. In this requirement analysis
process was followed the most practical and accurate techniques. Requirements were primarily
gathered by interviewing the staff people and educator who is the primary user of existing
system
The whole point of requirement gathering phase is to identify functional and non-functional
requirements’

FUNCTIONAL
REQUIREMENTS
REQUIREMENTS
NON-FUNCTIONAL
REQUIREMENTS

Figure 5 Types of Requirements

P a g e 18 | 161
2.3 Techniques used for Requirement gathering

User Observations:
Analyzed how users interact with the current manual Process, and participated with them to do
some data entering tasks for identify and gather actual working of the system.

Interviewing:
The existing system most of the tasks are done by individual persons, not a
Common set of users or group. Since that Interviewing process main part has been
Completed trough the unstructured interviews.

Inspection of existing documents and reports:


Followed up and studied reports and user entered documents relevant to the Individual tasks.

Storyboards
Developed Storyboards to validate the requirements between developer and user .this
technique helps to visualize the identify missing requirements and This methods give a "big
picture" approach that very useful in requirements gathering.

Prototyping
This techniques helps a lot to identify and validate user’s requirements .initially this system
developed as a working prototype and hand over it to user .so the users can get exact picture of
the system going to develop .and also used UI prototypes for validate gathered user
requirements.

P a g e 19 | 161
2.4 Functional Requirement
Functional requirement section depict how achieve user requirements which are recognized
from the analysis phase. For the make clear view of the functions those are described under
modular wise. That would be easy of understand proposed system functionalities in design
phase. The modules as follows.

1. Master Data Module


2. Student Attendance Module
3. Student Monthly Payment Module
4. Report Module
5. Student ID Card Generation Module
6. Question Bank And Online Virtual Examination Module

1. Master Data Module


Master data module is a common module store common data for all other modules,
according to facts I’m gathered this module should contain below functionalities

1.0 According to the system owner he currently conducting more than 6 class .therefor the
system should have a facility Add ,Edit and List all the class

2.0 Every class have a type ex: theory class, revision class, group class etc., therefor the
system should have a facility Add ,Edit and List all the class types

3.0 Should have facility to Add, Edit, and List student basic data. (Please see the Sample UI
prototype for student registration image for better understand).

4.0 Facility to Add, Edit, and List Payment types ,there are few payment types such as Full
Payments, Half Payment and Free this types will assign to students

P a g e 20 | 161
2. Student Attendance Module

Student attendance module is responsible for recording attendance of the student, before
starting the class every student should mark there attendance , when mark attendance student
should bring the student ID card ,the ID card is barcoded one and barcode scanners are used in
this process.

1.1 Need to add attendance in multiple points ,this will helps to reduce long student queues

3. Student Monthly Payment Module

This process also start before starting the class and after the marking attendance .the
student should bring the ID card for marking payment. Payment module is responsible for
record student payments.

4. Report Module
This module is responsible for gathering data collected from other modules and produce
analytical reports .the reports gives decision making capabilities to the user .types of reports
wanted

1.2 Student Attendance report


1.3 Student Details reports by Class types
1.4 Student Payment reports
1.5 Student making reports
1.6 Student complete profile report

5. Student ID card Generation Module


This module is responsible for generate barcoded ID cards .this will ensure the student
identification and can be used for attendance ,Payment marking processes ,the requirements
of this nodule is

1. Generate ID for specific class or student


2. Should Include Barcoded Facility
3. Should include Student Image
4. Should use template provided by Graphic designer

P a g e 21 | 161
Figure 6 below show sample ID card Templates

Template Sample

Template Sample

6. Question Bank and Online Virtual Examination Module


The questions bank store all of the questions and question papers created .the main
requirement are

1. Questions should store as Subject and lesson wise


2. Questions should categorized as Pass papers and Mock exam questions
3. The results of the quiz paper should show the depth view about how question paper
organized.

P a g e 22 | 161
2.4 Non Functional Requirement
In software engineering software designer is not focused fulfill user requirement only through
the system functionally. The nonfunctional requirement are also very important to system
endurance. The proposed system nonfunctional requirement can be described as below.

 Availability and performance: Design and implement the system keep maximum uptime
(amount of time system run) in operational and available for users is very important.
System should be taken minimum time to complete user requested task is depend on the
system performance. The proposed system will be provided both necessity.

 Portability and accessibility: The proposed system is totally operated as web based
system. So the system will not be subsisted specific operating system. It can be run
compatible web browsers located in any platform.

 Integrity and security: When users interact with the system they are limited to access
whole task and features provided by the system. That process is controlled by users
allowed and denied privileges. User authentication and encrypted login credentials are
securely kept in database level.

 Usability: The system is provided user friendly and ease of access interfaces for the users.
As a result user will be able to interact with the system very conveniently.

P a g e 23 | 161
2.5 The Proposed System

Proposed system users


 Staff user(s)
 The teacher or educator
 Students

HARDWARE & SOFTWARE Requirements’


Software Requirements - Development
 Microsoft Windows O.S (7 or higher)
 MS.Net Framework 4.5
 SQL server 2008 Database
 Crystal report Designer v 10.0
 Microsoft Visio/Yed diagram software
 Web browsers (google chrome,firefox,Microsoft edge)
 Azure storage explorer
 Source tree for Atlassean bitbucket

Hardware Requirements – Development


 Core i3 or i5 laptop or desktop computer
 3GB or 4GB RAM Support
 256 SSD Hard disk Drive
 Backup Storage (Portable hard disk)
 Internet connection
 Barcode scanner
 Printer

Hardware / Software – Production environment


The proposed system will be designs host on Microsoft azure platform. Therefor below
components will choose as core requirement

Server Environment
1. Azure Appservices
a. The proposed system uses 3 app services for host application
2. Azure storage (blob/file)

P a g e 24 | 161
a. Used as file storage to save documents ,images
3. SQL Server Database
a. Single SQL server Database use as data layer

Client Environment
On client side client should has below hardware or software requirement to run this system
properly

Hardware Requirements
 Core i3 or i5 laptop or desktop computer(s)
 Barcode scanner
 Printer
 Laminating machine for cards
 Uninterruptable power supply unit (U.P.S)
 Wired or wiles internet connection

Software Requirements
 Windows O.S (7 or higher)
 MS.net Framework 4.5
 Crystal report runtime (redistributable package)
 Barcode reader software

OTHER REQUIREMENTS
The other requirements of this system is

1.0 need an active internet connection


1.1 should provide quality help documents to users .this will give opportunity for users aware
about system functionalities very well

2.6 EXISTING SIMILAR SYSTEMS AND REFERENCES


The proposed system has been designed and implemented successfully the activities of the
system perform very accurately, efficiently and effectively. There can be find some commercial
and non-commercial software holds similar characteristics of proposed system. Below are some
similar software solutions.

P a g e 25 | 161
 Edu Happy
http://edu-happy.com/

EduHappy is an enterprise school management platform that integrates multiple systems for
School Management, Learning Management and Student Information Management.

Figure 7 EduHappy System

 OpenSIS
http://www.opensis.com/

OpenSIS is commercial grade open source software, how every users should have technical
knowledge about the system.

Figure 8 OpenSIS System

P a g e 26 | 161
Chapter 3 DESIGN
3.1 Introduction

System design is the process of defining an architecture, components, modules, interfaces and
data for a system achieve specified requirements. In software engineering system design is the
most important part of whole system development process. Success of most functional and non-
functional requirements which were identified on system analysis phase depend on careful
system design.

3.2 Proposed System Design


Proposed system design is described through the Flowcharts and several UML standard
diagrams. Diagrams are allowed technical and non-technical persons to get clear idea about the
system design. The following standard modeling diagrams were used to simplify and modularized
the proposed system design very clearly.
 Use case diagrams.
 Class Diagrams
 Sequence diagrams.
 Activity Diagrams
 ER Diagram
The proposed system is divided in to five categories these categories includes separately named
and addressable components, called modules. Modules are integrated to satisfied problem
requirements. Modular wise development is helped developer to intellectually manage proposed
system. The list of separated modules are as follows.

1 System Maintenance
1.0 Class Master
2.0 Charges type Master
3.0 Class Payment Master
4.0 User Master
5.0 Student Master
2.0 Reports

P a g e 27 | 161
3.0 Attendance
4.0 Tools
4.1 Card Builder
5.0 Question Bank
5.1 Subjects
5.2 Lessons
5.3 Questions
5.4 Quiz paper
5.5 Quiz paper Catalog

3.2.1 Use Case diagram


Use case diagrams are drawn to capture the functional requirement of a system. Use case
describes interaction between various actors and their functions are in defined problem domain.
Use case diagram falls in to behavioral diagram category in UML .this diagrams type visualize the
various types of roles and there activates in a software system.

Use Case Diagram notations


Below are the symbols and there meaning used in UML diagrams

Symbol Description
Actor :person who play a role in the system can perform action in the
system

Use Case: Actions perform by Actors

P a g e 28 | 161
System Boundary: separate system internal environment from external
environment

Association: indicate the relationship between actor and use case

Include: relationship between use cases .An include relationship defines


<<include>> that a use case contains the behavior defined in another use case.
extend: relationship between use cases .An extend relationship defines
<<extend>> that a use case derived from another use case.
Identifying Main Roles /Actors
After analyzing the requirements there are three main roles can be identified those rolls will be
shown as actors in use case diagram

There are mainly 3 Actors/Users in the proposed system.


1. Staff Operator
2. Teacher
3. Student

Top Level Use case diagram


The below use case diagrams shows by actors .its summaries whole tasks in system for
particular

P a g e 29 | 161
Figure 9 System Use Case Diagram

The above use case diagram shows main functions/tasks done by each user

But teacher has permissions to do those tasks also. If we take a particular task such as
add/edit/view System Master Data, that task consists with 6 sub tasks .before perform any task
in the system the teacher or operator show authenticate them self .only successful logged users

P a g e 30 | 161
can only perform above operations, students can take online test and view there results .these
online test are publically available and no need to be member in this web site .and also any
student should provide their email address and should pass security check (Google REcaptcha)
before take any exam .

The below few use case diagrams shows

System Maintenance
The system maintenance module contains 6 sub modules which contains core system functions.
Figure 10 System Maintenance Use Case

Use Case name System Maintenance


Description This use case explains Activities in System maintenance module.
This module consists with 6 sub modules .each sub module
contain functions and UI for add new record ,View them and
update
Actor (s) Operator, Teacher
Basic flow of events 1. Operator/Teacher logs in to the system successfully
2. Click System maintenance
3. Under system maintenance select a particular sub module
EX: Class Master -New
Pre-conditions 1. User should be logged in to the system
Post-conditions 1. Entered data should get successfully updated in the system
Assumptions 1. User logged into the system successfully
2. All details updated by the user are accurate

P a g e 31 | 161
Attendance
The Attendance module is responsible for record students’ attendance records. The attendance
process will start before start the classes.

Figure 11 Attendance Use case

Use Case name Attendance


Description This use case explains Activities in Attendance Module
Actor (s) Operator, Teacher
Basic flow of events 1. Operator/Teacher logs in to the system successfully
2. Click Attendance - New
3. Under the 1. System info. Enter
a. Date
b. Study year
c. Class name
4. After click load button this will load the students according
to the given parameters
5. Now enter student no and hit enter of click search button
This will mark particular student as present
6. Click “SAVE” button to save attendance details
Pre-conditions 1. User should be logged in to the system
Post-conditions 1. Entered data should get successfully updated in the system
Assumptions 1. User logged into the system successfully
2. All details updated by the user are accurate

P a g e 32 | 161
User Management and Permissions
Under this module teacher can create new users and can assign permission for those users

Use case Diagram

Use Case name User Management and Permissions


Description This use case explains Activities in user management and
permission module .this module add users to the system and
grants functions to them
Actor Teacher
Basic flow of events Add New User
1. Select User Master on Main menu
2. Click New user on the user list view Grid
3. Provides valid data as request
4. Select the type of the user
5. Click save
Add Permission s to user
1. Select User from User Grid
2. Click Permissions Link
3. Add or remove permissions and click Submit

Pre-conditions 1. User should be logged in to the system


Post-conditions 1. Entered data should get successfully updated in the system
Assumptions 1. User logged into the system successfully
2. All details updated by the user are accurate

P a g e 33 | 161
Web Based Virtual Exams
Students can do any exams publish in the web .first student has to select a exam paper and should
register for the exam .after that they have to pass the security check .if it success they can take the
exam.at the end of the exam student can view the result sheet .in the admin panel the teacher can view
student result sheet and marks also

Use case Diagram

Figure 12 Web Based Virtual Exams Use Case

Use Case name Web Based Virtual Exams


Description this use case diagram shows the steps take to do web based
exams.
Actor (s) Student,Teacher
Basic flow of events 1. Select Exam paper
2. Register for the exam
a. Provide email address
b. The system will send security no to enter
c. User enter security no and pass the security check
3. Take exam
4. View result sheet

Pre-conditions 1. User should be navigate in to the web system


Post-conditions 1. Entered data should get successfully updated in the system
Assumptions 1. User pass the security check successfully
2. user has stable internet connection
3. User has up-to-date web browser

P a g e 34 | 161
3.2.2 Flow Charts
User Login

Figure 13 Use Login Flow chart

P a g e 35 | 161
Master Data Management
Class Master

Figure 14 Class Master Flowchart

P a g e 36 | 161
Class Charges types Master

Figure 15 Class Charges types Master Flow chart

P a g e 37 | 161
Class Charges /Payment
Master

Figure 16 Class Charges


/Payment Master Flow chart

P a g e 38 | 161
Model Paper

Figure 16 Model Paper Use Case

P a g e 39 | 161
Handouts

Figure 17 Handouts Flowchart

P a g e 40 | 161
Add Student Attendance

Figure 18 Student Attendance Flowchart

P a g e 41 | 161
Add Student

Figure 19 Add Student Flowchart

P a g e 42 | 161
Add User

Figure 20 Add User Flowchart

P a g e 43 | 161
Question bank Subjects

Figure 21 Question Bank add Flowchart

P a g e 44 | 161
Lessons

Figure 22 Lessons Add Flowchart

P a g e 45 | 161
3.2.3 UML Sequence Diagrams
User Login

Figure 23 Use Login Sequence Diagram

P a g e 46 | 161
Add New Class

Figure 24 Add New Class Sequence Diagram

P a g e 47 | 161
Class Attendance

Figure 25 Class attendance Sequence Diagram

P a g e 48 | 161
Online Exam

Figure 26 Online Exam Flowchart

P a g e 49 | 161
3.2.4 UML Activity Diagrams

User Login

Figure 27 User login Activity diagram

P a g e 50 | 161
Class Master

Figure 28 Class master Add Activity Diagram

P a g e 51 | 161
Figure 29 Class master Edit Activity Diagram

P a g e 52 | 161
Class Attendance

Figure 30 Class Attendance Activity Diagram

P a g e 53 | 161
Online Exam

Figure 31 Online Exam Activity Diagram

P a g e 54 | 161
3.2.5 Class Diagram

P a g e 55 | 161
3.2.6 ERD Diagram

P a g e 56 | 161
3.3 Database Design & Structure
Table: - Class Master

Table: - Charges types

P a g e 57 | 161
Table: - ClassPayment Master/ClassPaymentlineItems

P a g e 58 | 161
Table:- Student Master

P a g e 59 | 161
Table :- ModelPaperMaster

P a g e 60 | 161
Table :- HandoutMaster

Table: - Users

P a g e 61 | 161
Table: - Screens

P a g e 62 | 161
Table: - ScreenFunctions

P a g e 63 | 161
P a g e 64 | 161
Table :- UserScreenFunctions

P a g e 65 | 161
Table :- Serial

P a g e 66 | 161
Table: - AttendanceMaster/AttendanceLineItems

P a g e 67 | 161
Table: - SubjectMaster

Table: - LessonsMaster

P a g e 68 | 161
Tble: - QuestionMaster

P a g e 69 | 161
Table:- QuestionMasterAnswers

P a g e 70 | 161
Tble: - QuizImages

Table:- QuizPaperTaken

P a g e 71 | 161
Table:- QuizPaperTakenAnswers

P a g e 72 | 161
Table: - QuizPaperMaster

P a g e 73 | 161
Table:- QuizPaperLineItems

P a g e 74 | 161
3.4 User Interface Designs
In this section describes users interface designs of the application
Login

Figure 32 User login Panel

Before working in the system the system will authenticate the user .this will ensure unauthorized
user access and prevent it .if user entered a valid username and password the system will show
dashboard screen (Admin panel) to the user and load related menu functions (user permissions )
related to the user

P a g e 75 | 161
Admin Panel (Dashboard)

Figure 33 Admin panel

The Admin panel will show only for successful login process. The center area will used show
summarized information of the system to the user .the left hand side menu shows functionalities
that user can perform. According to user type the menu items of the menu will be visible or
hidden below are the full list of functionalities can perform by this system

System Maintenance
The system maintenance module contains 4 sub modules which contains core system functions
.before design the actual user interfaces .I’m produced U.I prototypes

 System Maintenance
o Class master
o Charges Type Master
o Class Payment master
o Student
o Model paper
o Handouts
 Attendance
P a g e 76 | 161
o Attendance – New
o Attendance – View
 User Master
 Reports
 Payments
o Payment New
o Payment View
 Question Bank
o Subjects
o Lessons
o Questions
o Quiz paper
o Quiz paper Catalog

Figure 34 Some Admin Panel Menus after expand

P a g e 77 | 161
Class Master
This module is responsible for add /edit and view classes of the system.
Class View

Figure 35 Class view UI with no records

If user click class master this the first screen will show to the user.to add new class click on “New
Class” button in the top left.
Class New

Figure 36 Class new data enter form

P a g e 78 | 161
After fill the new class form user should click “save” button if the save operation success the
system show success notification and class view UI will show with newly added class this will
shows in Figure 37

Figure 37 Class view with data loaded

Charges Types Master


Charges types or payment types defines available charges types in the system .so the particular
class charges types will include these charges types

Figure 38 Class view with empty grid

To add new charge type user should click “new charge type” button. This will open charge type
new UI. As in Figure 39 User should fill form and click save button .the ” is payable “dropdown
box indicate is the charge can be payable ex: if user enter charge type as Free ,the is payable
should be No .
P a g e 79 | 161
Charges Type New

Figure 39 charges Type Add new

Figure 40 Charges Types Grid

The fig 40 Shows sample charges types loaded in to charges types grid .if user want to edit the
charge type user should click “Edit” link of particular charge type. The system will show particular
charge type in Charges type – Edit UI as Figure 41

P a g e 80 | 161
Figure 41 Charge Type Edit

In the Charge Type - Edit UI user can do any modification and can update that record by click on
save button

Class Payment master

This module define payment types and their amounts for a class . such as if we take payment
type “Full Payment” its amount we can define as 1000 Rs .the no of payment types and the
amount of the payment type may different class to class.

The “View – Class Payment” is the main UI panel will show if click on “Class Payment Master
“Menu Item this will shows in figure 42.

P a g e 81 | 161
View - Class Payments

Figure 42 Class payment grid with no records

Figure 43 Class payment grid with records

P a g e 82 | 161
To add new payment type for a class user should select “New Class payment” button. This will
show “Class Payment – New ” U.I.

Figure 44 Class Payment New

The class payment view contains two major sections


1. Basic info
 In this section user will enter class name and description
2. Payment info.
 Payment info for the class .here user should enter charge type and the charge
amount for that particular type. A class can consist with any number of charges
types but generally, the count of charges types could be 4 or 5.

P a g e 83 | 161
Figure 45 Class Payment New – basic Info section

Figure 46 Class Payment New – Payment info section

P a g e 84 | 161
Figure 47 Class Payment New – Save notification

Figure 48 Class Payment View – Save notification

The Figure 48 shows success notification after save the new charge type .and after the user
clicks ok the system will redirect to class payment view screen and shows newly added
record .In the payment view screen user can do two main operation

P a g e 85 | 161
1. Edit payment record
2. View Details of a payment record
If user clicks “Detail ”link in the payment view of the particular record .the system will
shows read-only page of the selected class payment. This will shows in Figure 49.

Figure 49 Class Payment Details

The above user interface shows the summery of the class general information and the
available list of class charges types and their amounts.

P a g e 86 | 161
Model Paper
Model paper - New

This module gives save details about Class model papers .lecture or operator can add /Edit or view
model papers. Figure 50 shows add new model papers user interface.

Figure 50 Add new Model Paper

Model paper – View


As other modules this user interface will show all the records of model papers .the model
paper view gives facility to users to edit particular model paper record.

Figure 51 Model Paper View

P a g e 87 | 161
Model Paper – Edit
Figure 54 shows the model paper edit user interface .in this panel user can edit selected
record details. And also user can set status of the record (active or inactive) by status
checkbox.

Figure 52 Model Paper Edit

Handout

P a g e 88 | 161
Figure 53 Handouts - New

Handouts are printed materials, contains short notes about class lectures .the handout
module responsible for add /edit view handout details.
Handout – View

Figure 54 Handouts - View

In the view handout user interface shows available handouts .this grid give facility to edit
handouts available in the grid . Figure 55 shows the handouts edit user interface after click
edit link in the handout grid .
Handout – edit

Figure 55 Handouts - Edit

P a g e 89 | 161
Student Master
One of the most important section is add student to the system. Add new user interface
responsible for that operation

Figure 56 Student - New

Cleary there are two separate sections system info and student info .in the system info
section will select study year ,class name and enter student no .and click search if enter
student no not existing in the system the student info. Panel will enable and expand

Figure 57 Student – New system info. Panel

P a g e 90 | 161
Figure 58 Student – New –student info.

If user entered data in the both panels ,user can click on save button to save data to the data
base.if everything happened successfully .the system will show success notification and show
student view user interface.

P a g e 91 | 161
Figure 59 Student – View with empty grid

Figure 60 Student – View with Data

P a g e 92 | 161
The Figure 60 show student view with some student records .these data in the grid will load
according to the selected class,study year,student type and payment type.

User Master

Figure 61 User – View

Managing user is one of the critical factor in the system .the user master is responsible for
provide those features to the system. Only teachers of the system given access to this user
interface.to add the user interface user should click New user button. This user interface will
show in Figure 62.

P a g e 93 | 161
Figure 62 Student – New

In the user new user interface can enter the details of the new user. Using type of the user
selection we can specify the new user’s type (Teacher/Operator) .by clicking the save button the
system will create a new user .and users in the system will show in users view grid as Figure 61.

In the user view grid we can edit details of the currently existing users’ .to do that we have to
select a user record and after click on edit link. Figure 63 shows user edit interface with some
data .there we can update the user data and set the status of the user .its mean we can set user
active or inactive .inactive users can’t log in to the system.

P a g e 94 | 161
Figure 63 User – Edit

Next thing we can do In the user grid is change the permissions levels .to change the user
permissions ,select a user from grid and click on “permission” hyper link .it will show user interface
as Figure 64.

In the user permission section we can add permission to users or remove permission from the user
.according to the permissions applied here the visibility of the menu items will change.

P a g e 95 | 161
Figure 64 User – Permission

P a g e 96 | 161
Attendance
In the attendance module used to records students’ class attendances .so the teacher can get
some reports about students’ attendances.

Figure 65 Attendance – New

Add- Attendance User interface responsible for add attendance.in the system info panel user
select study year, date and name of the class and load student to student panel grid. It will look
like Figure 66.

P a g e 97 | 161
Figure 66 Attendance – New – With Students

Now operator starting to mark attendance. The operator can type Student No in the textbox
above the grid and can press enter key or click search button. If user found the system will

P a g e 98 | 161
highlight student with blue color bar and show green notification on bottom left and put a mark
in checkbox like Figure 67.

Figure 67 Attendance – New – With Students

After the complete attendance mark the operator can save whole details by click on save button.

Question bank

This module gives facility to create and maintain a question bank. Before add questions to
Question bank the first this to build the subject list.to do that user should click subject menu
item in the menu.

If click on the subject menu item will show “Subject View” user interface .as in other views ,this
will show currently added subject records as seen on Figure 68.

P a g e 99 | 161
Figure 68 Subject – View – With Subjects

The “New Subject” button will open the Subject- New user interface as in fig xxx.

Figure 69 Subject – New

P a g e 100 | 161
After save the subject it will show in subject view grid .user can edit the subject details by click
on the edit link in the subject grid.

Lessons

Lessons define the section of the particular subject .if we add Subject as Economics, the lesson
will defines the section of the Economics .in the lesson view we can create new lesson and load
lesson according to subject.

Figure 70 Lessons – View with no records

Figure 71 Lessons – New

The lesson – new user interface contains two sections. First we select the subject details and
second panel define the lessons under that subject. Figure 71 and Figure 72 shows both panels.

P a g e 101 | 161
Figure 72 Lessons – New

Figure 73 Lessons – New

P a g e 102 | 161
Questions

Questions are the content of a quiz paper .in this module will define the Question and the
answers related question. Before enter those details user has to select the subject and lesson
details that question relates.

Figure 74 Question –
New

Figure 75 Question
– New withal
panel expanded

P a g e 103 | 161
Quiz Paper

Figure 76 Quiz Paper – New

P a g e 104 | 161
Last thing is create question paper. We created our question bank in the previous stages, in the
quiz paper module let the user to create question papers from question bank .these question
papers are will be available in online examination platform. The Figure 76 shows Quiz paper new
user interface this will create new Online Quiz paper.

Figure 77 Quiz Paper – Catalog

The created quiz papers will show in under Quiz paper catalog menu item .this will show in
Figure 72.as above Figure 72 each quiz paper has “View Details” button .the teacher can click on
this button and it will show the details of students who take the quiz paper and their marks and
status (pass/fail).this user interface call Quiz Statistics .this will show in Figure 78. A single
student can done same quiz paper many times.

P a g e 105 | 161
Figure 78 Quiz Paper Statistics

Teacher can get better idea about students using this feature.

P a g e 106 | 161
Figure 79 Online Exam portal Quiz papers

Online exam from student side


The Figure 79 shows how quiz papers looks like in online exam portal .any outside student can
visit this portal can take these quiz papers.to do a particular quiz paper student have to click
“Enroll Now ” button.

In the next screen student has to register to take a Quiz paper .there student should enter email
address

The whole process contain consists with 4 stages those are

1. Provide email address (Figure 80)


2. Enter Security no send by system and verify (Figure 81 and Figure 82 )
3. Human or robot verification (Figure 83)
4. Take exam (Figure 84)

P a g e 107 | 161
Figure 80 Online Exam portal Quiz paper registration

Figure 81 Online Exam portal Security key - Gmail

P a g e 108 | 161
Figure 82 Online Exam portal Quiz paper Security key Verify

Figure 83 Online Exam portal Quiz paper Human or robot verification

P a g e 109 | 161
Figure 84 Online Exam portal Quiz paper Take exam

After click on ”Take exam “ button the online exam will start Figure 85 shows the how online
exam looks like

Figure 85 Online Exam portal Quiz paper Take exam

P a g e 110 | 161
Figure 86 Online Exam portal Quiz paper

After click on an answer, system will indicate total complete questions on a progress bar.
Student can finish quiz paper by click on “Finish” button.

Figure 87 Online Exam portal Quiz paper Finish Confirmation

After finish the Exam the system will shows the results sheet.in the Figure 88 shows a sample
result sheet for an Econ paper .this contains few tabs
P a g e 111 | 161
1. Results summery (Figure 88)
 Under this tab shows explanation of questions and correct answers and marks
gained
2. Analyzing (Figure 89)
 Shows analytical view about questions. such as lesson related to questions
question count comes under particular lesson and the student competency level
from each lesson
3. About Teacher
 Here teacher will publish teacher’s information and his class details.

Figure 88 Quiz paper Results sheet – Results Summery tab


P a g e 112 | 161
Figure 89 Quiz paper Results sheet – Analyze Tab

P a g e 113 | 161
Barcode Class Card and Report Design

To design barcoded class cards and reports I’m used crystal report designer .using crystal Report
designer can create report very easily and can connect those reports with SQL server Data base.

Figure 90 Crystal Report Designer - Design class Barcode card

Figure 91 Crystal Report Designer - Execute report

P a g e 114 | 161
Figure 92 Crystal Report Designer - Generated class cards

Error Pages Designs

The system contains standard error page. This will show situation like if unexpected error
happen or unauthorized access.

Figure 93 System Error page

P a g e 115 | 161
Chapter 4 CODING

4.1 Introduction
In this section demonstrate the coding structure of the system. This project constructed using
MVC architecture .therefor every feature consists with three sections

1. Model
2. View
3. Controller

Request (JSON)

Admin Panel/Exam portal


Projects Web Service Project

Business Data
View Model Controller WEB API
Logic Access
Controller
Layer Layer

Response (JSON)

Users
MSSQL Server

Figure 94 Project technical architecture

P a g e 116 | 161
4.2 System Coding
Function Name :Admin Panel Login

Controller :Home
public class HomeController : BaseController
{

[HttpGet]
public ActionResult Login()
{
return View();
}

[HttpPost]
public ActionResult Login(string email, string password)
{
try
{
string url = "UserPermissions/Userlogin?email=" + email + "&password=" + password;
ConnecterManager connecterManager = new ConnecterManager();
User user = connecterManager.Get<User>(url);
if (user.IsSuccess)
{
Success("Success", true);

string urlToRedirect = ConfigurationManager.AppSettings["AdminPanelURL"] + "?token=" +


user.Token;
return Redirect(urlToRedirect);
}
else
{
Danger("Wrong credentials", true);
}
}
catch (Exception ex)
{

Warning(string.Format(ex.Message), true);
}

return View();
}

Address: localhost:2994/home/login

Code File Name: Login.cshtml


@model MicroEduWeb.Models.LoginVM

@{
Layout = null;

<!DOCTYPE html>

<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Login</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=1,initial-scale=1,user-scalable=1" />
P a g e 117 | 161
<link rel="stylesheet" type="text/css" href="~/Content/bootstrap.min.css" />
@*<link rel="stylesheet" type="text/css" href="~/Content/loginPanel/styles.css" />*@

<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<style>
body{
margin-top:50px;
}
form {
font: 14px/1.6em Tahoma, Verdana, serif;
color: #3c3c3c;
max-width: 310px;
padding-bottom: 50px;
}

form label {
font-weight: normal;
line-height: 40px;
float: left;
width: 90px;
text-align: right;
padding-right: 20px;
}

form input[type=text],
form input[type=password] {
border: 1px solid #cbcccc;
background: #fff;
box-shadow: none;
width: 220px;
height: 42px;
line-height: 42px;
-webkit-box-shadow: inset 0 1px 2px 0px rgba(104, 104, 104, .2);
-moz-box-shadow: inset 0 1px 2px 0px rgba(104, 104, 104, .2);
box-shadow: inset 0 1px 2px 0px rgba(104, 104, 104, .2);
}

form > button {


border: 1px solid #cbcccc;
height: 42px;
width: 220px;
margin-top:10px;
margin-bottom: 20px;
/*text-shadow: 1px 1px 1px #fff;
background: #fcfcfc; /* Old browsers */

</style>
</head>
<body>
@* img-responsive *@
<div class="container">
<div class="row">
<div class="col-sm-9 ">
<a href="#"><img src="~/Content/loginPanel/webpics.PNG" class="" alt="" /></a>
</div>
<div class="col-sm-3">

<form action="/Home/Login" method="post">


@{Html.RenderPartial("~/Views/Shared/_Alerts.cshtml"); }
<div>
<label>Username</label>
<input type="text" autocomplete="off" name="email" required class="form-control"
id="email" />
</div>

P a g e 118 | 161
<div>
<label>Password</label>
<input type="password" autocomplete="off" name="password" required class="form-
control" id="password" />
</div>

<button type="submit" class="btn btn-success">Sign In</button>


@*<p><a href="#">Forgot your password ?</a></p>
<p><a href="#">Create account</a></p>*@

</form>
</div>
</div>
</div>

<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/bootstrap.min.js"></script>
</body>
</html>

Web Service :
public class UserPermissionsController : ApiController
{

[HttpGet]
public WebAPIResponce Userlogin(string email, string password)
{
WebAPIResponce apiResponce = null;

try
{
UserPermissionManager userPermissionManager = new UserPermissionManager();
User user = userPermissionManager.Userlogin(email, password);

apiResponce = WebAPIResponce.GenerateSucessMessage("", user);

}
catch (Exception ex)
{

apiResponce = WebAPIResponce.GenerateExceptionMessage("", ex);


}
return apiResponce;

Business Logic Layer


public class UserPermissionManager
{

public User Userlogin(string email, string password)


{
bool result = false;

P a g e 119 | 161
User user = null;
try
{
UserPermissionDataService userPermissionDataservice = new UserPermissionDataService();
user = userPermissionDataservice.GetUserByEmail(email);

if (user != null)
{
string passwordDecrypted = SecurityManager.GetHashedPassword(password);

if (passwordDecrypted.Equals(user.Password))
{
result = true;
user.IsSuccess = true;
}
else
{
result = false;
user.IsSuccess = false;
}
}
}
catch
{

throw;
}

return user;
}

Data Access layer

public class UserPermissionDataService : CommonService


{
CommonService commonService;
public UserPermissionDataService()
{
commonService = new CommonService();

public User GetUserByEmail(string email)


{
User user = null;
try
{
using (SqlConnection con = new SqlConnection(commonService.connStr))
{
using (SqlCommand cmd = new SqlCommand("[dbo].[User_ListRowByEmail]"))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = con;
cmd.Parameters.AddWithValue("@Email", email);

// Open connection to use execute reader


if (con.State == ConnectionState.Closed) con.Open();

//used execute reader to read data quickly


SqlDataReader dReader = cmd.ExecuteReader();

while (dReader.Read())
{
user = FillUser(dReader);
}

P a g e 120 | 161
con.Close();

}
}
return user;
}
catch
{

throw;
}
}

Master Data

Function Name :Class -New

View :AddNewClass.chtml

@model AdminPanel.Models.ClassMaster.ClassMasterVM

@{
ViewBag.Title = "AddNew";
Layout = "~/Views/Shared/_Layout.cshtml";
}

@using (Html.BeginForm())
{
@Html.AntiForgeryToken()

@Html.HiddenFor(model => model.Token)


<div class="form-horizontal">
<h2>Class - New</h2>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group col-md-6">
@Html.LabelFor(model => model.ClassName, htmlAttributes: new { @class = "control-label col-md-
3" })
<div class="col-md-6 ">
@Html.EditorFor(model => model.ClassName, new { htmlAttributes = new { @class = "form-
control pos_rel" } })
@Html.ValidationMessageFor(model => model.ClassName, "", new { @class = "text-danger " })
</div>
</div>

<div class="form-group col-md-6 ">


@Html.LabelFor(model => model.ClassShortCode, htmlAttributes: new { @class = "control-label
col-md-3" })
<div class="col-md-6">
@Html.EditorFor(model => model.ClassShortCode, new { htmlAttributes = new { @class =
"form-control" } })
@Html.ValidationMessageFor(model => model.ClassShortCode, "", new { @class = "text-danger"
})
</div>
</div>

<div class="form-group col-md-6 pos_rel">


@Html.LabelFor(model => model.TypeID, htmlAttributes: new { @class = "control-label col-md-3"
})
<div class="col-md-6">

P a g e 121 | 161
@Html.DropDownListFor(model => model.TypeID, (SelectList)Model.TypeList, "Select Type",
new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.TypeID, "", new { @class = "text-danger" })
</div>
</div>

<div class="form-group col-md-6 ">


@Html.LabelFor(model => model.Description, htmlAttributes: new { @class = "control-label col-
md-3" })
<div class="col-md-6">
@Html.TextAreaFor(model => model.Description, new { @class = "form-control", @rows = "10",
@id = "Description", @name = "Description" })
@Html.ValidationMessageFor(model => model.Description, "", new { @class = "text-danger" })
</div>
</div>

<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Save" class="btn btn-danger" />
@Html.ActionLink("Back", "ShowAll", "ClassMaster", new { @class = "btn btn-default" })
</div>
</div>
</div>
}

<script src="~/Scripts/jquery-1.10.2.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>
<script>
$(document).ready(function () {

var token = JSON.parse(window.localStorage.getItem('userinfo')).Token


$('#Token').val(token);

});
</script>

Controller

namespace AdminPanel.Controllers
{
public class ClassMasterController : BaseController
{

[HttpGet]
public ActionResult AddNewClass()
{

// get All Classtypes

string url = "MasterData/GetAllClassTypes";

List<ClassType> studentVMList = new List<ClassType>();


ConnecterManager connecterManager = new ConnecterManager();
List<ClassType> classTypeList = connecterManager.Get<List<ClassType>>(url);

ClassMasterVM classMasterVm = new ClassMasterVM();


classMasterVm.TypeList = new SelectList(classTypeList, "TypeCode", "Description");

return View(classMasterVm);
}

P a g e 122 | 161
[HttpPost]
[RESTAuthorizeAttribute]
public ActionResult AddNewClass(ClassMasterVM classMasterVM)
{

try
{
if (ModelState.IsValid)
{
ClassMaster classMaster = new ClassMaster();
classMaster.ClassName = classMasterVM.ClassName;
classMaster.ShortName = classMasterVM.ClassShortCode;
classMaster.Description = classMasterVM.Description;
classMaster.CreatedBy = TempData["UserID"].ToString();
classMaster.ClassTypeCode = classMasterVM.TypeID;

string url = "MasterData/NewClass";


ConnecterManager connecterManager = new ConnecterManager();
var result = connecterManager.Post<CommonResponce>(url, classMaster);

Success(string.Format("Successfully added to the database."), true);


return RedirectToAction("ShowAll");
}
else
{
Danger(string.Format("Error Pls Check."), true);

return View(classMasterVM);
}
}
catch (Exception ex)
{

Danger(string.Format(ex.Message), true);

return View(classMasterVM);
}

P a g e 123 | 161
Web Service

namespace MicroEduService.Controllers
{

// MasterData
public class MasterDataController : ApiController
{

//MasterData/NewClass
[HttpPost]
public WebAPIResponce NewClass(ClassMaster classMaster)
{

try
{
MasterDataManager masterDataManager = new MasterDataManager();
bool ressult = masterDataManager.NewClass(classMaster);

CommonResponce commonresponce = new CommonResponce();


commonresponce.Status = ressult;
WebAPIResponce apiresponce = WebAPIResponce.GenerateSucessMessage("", commonresponce);

return apiresponce;
}
catch (Exception ex)
{

throw ex;
}
}
}
}

MASTER DATA MANAGER

namespace MicroEduBusinessLogic.MasterManager
{
public class MasterDataManager
{

public bool NewClass(ClassMaster classMaster)


{

try
{
MasterDataService masterDataservice = new MasterDataService();
bool responce = masterDataservice.NewClass(classMaster);
return responce;
}
catch (Exception ex)
{

throw ex;
}
}

P a g e 124 | 161
Data layer

public bool NewClass(ClassMaster classMaster)


{
bool result = false;

try
{

string classNo = Utillity.GetSerial("ClassMaster", this.connStr);


string classSerial = "CL" + classNo;

SqlParameter[] param = new SqlParameter[6];

param[0] = new SqlParameter("@ClassSerial", classSerial);


param[1] = new SqlParameter("@ClassName", classMaster.ClassName);
param[2] = new SqlParameter("@ShortName", classMaster.ShortName);
param[3] = new SqlParameter("@Description", classMaster.Description);
param[4] = new SqlParameter("@CreatedBy", classMaster.CreatedBy);
param[5] = new SqlParameter("@Type", classMaster.ClassTypeCode);

SqlHelper.ExecuteNonQuery(this.connStr, "ClassMaster_Insert", param);

string nextSerialCode = Common.GetNextSerial(classNo);


Utillity.UpdateSerial("ClassMaster", nextSerialCode, this.connStr);

result = true;

}
catch
{

throw;
}

return result;

Please see Appendix for more coding

P a g e 125 | 161
Chapter 5 Testing

5.1 Introduction
Testing one of the most important step in software development process. The aim of testing is to
find bugs or errors before deliver the system to the customer.

The whole testing process can be classified into following categories

Software Testing

Functional testing NON – Functional testing

Integration System Security Performance Usability


Unit testing
testing testing testing testing testing

Figure 95 Testing Types

5.2 Testing methods


The above testing types can be done using following testing methods

White Box
Testing Testing
Methods Black Box
Testing
Figure 96 Testing Methods

P a g e 126 | 161
The different between above testing methods is we can test the system features by knowing the
internal behavior that’s called white box testing method. Or without knowing the system internal
knowledge called black box testing (like outsider test the system).

5.3 Testing life cycle

5.3.1 Functional testing


In the functional testing test the functional areas of the testing. Under this flowing testing are
carried out

5.3.2 Unit testing


In the unit testing the software split into functional unites .those units will check under unit
testing

Figure 97 Service layer with unit testing project

P a g e 127 | 161
5.4 Test Plan and test cases
Test case is set of actions used for check particular function of the system

Title Login to system as an operator


Pre-conditions

ID Test Test Steps Test Data Expected Results Actual Test


Scenario Results Status
LOG1 Check 1. Navigate User System should As Pass
operator to web Name:[email protected] show operator Expected
can login application Password dashboard
with 2. Enter user MISckp123@#
correct name
credentials 3. Enter
password
LOG2 Check 1. Navigate User Message:”Wrong As Pass
operator to web Name:[email protected] credentials” Expected
can login application Password Should show
with 2. Enter user abc123 ( See Fig:98)
incorrect name
credentials 3. Enter
password
Enter test
Data

LOG3 Check 1. log on to No data Every fields As Pass


operator web shows individual Expected
can login application error messages
with blank 2. Do not ( See Fig:99)
credentials enter data
3. Click login

P a g e 128 | 161
Title Add New Class
Pre-conditions User should logged in to the system as operator/teacher

ID Test Scenario Test Steps Test Data Expected Results Actual Test
Results Status
CLM1 Check Add 1. log on to Class Message: Class As Pass
new class web Name:Kandy Added Expected
with Valid application revision Successfully
data 2. Click
master and Type:revision The New Class
select Class Short code: should show in
3. Click Add KDR Class View grid
New Button ( See Fig:98)
4. Enter test
Data
5. Click Save

CLM2 Check 1. log on to Class Message:Cannot As Pass


Duplicate web Name:Kandy add Duplicated Expected
class are application revision classes
allowed 2. Click ( See Fig:102)
master and Type:revision
select Class Short code:
3. Click Add KDR
New Button
4. Enter test
Data
5. Click Save

CLM3 Check Add 1. log on to No data Every fields As Pass


new Class web shows individual Expected
allows enter application error messages
blank fields 2. Click ( See Fig:101)
master and
select Class
3. Click Add
New Button
4. Do not
enter data
5. Click Save

P a g e 129 | 161
Title Edit Existing Class
Pre-conditions User should logged in to the system as operator/teacher

ID Test Test Steps Test Data Expected Results Actual Test


Scenario Results Status
CLM Check 1. log on to The edit class should As Pass
4 Edit class web display and show Expected
UI shows application selected class data
selected 2. Click System ( See Fig:103)
class data Maintenanc
e and select
Class
3. Choose a
class from
class view
and click
edit
CLM Check 1. log on to Class Message: As Pass
5 Edit Class web Name:Kand Successfully updated Expected
Update application y revision data
data 2. Click
correctly System Type:revisio
Maintenanc n Check Class View
e and select Short code: And see updated
Class KDR value are correct
3. Choose a ( See Fig:104)
class from Change
class view type to
and click Theory
edit
CLM Check 1. log on to Class Name: Every fields shows As Pass
6 Add new web [blank] individual error Expected
Class application messages
allows 2. Click Type:revisio ( See Fig:105)
enter System n
blank Maintenanc Short code:
fields e and select [blank]
Class
3. Click Add Change
New Button type to
4. Do not Theory
enter data
5. Click Save

P a g e 130 | 161
Title Add Charges types
Pre-conditions User should logged in to the system as operator/teacher

ID Test Test Steps Test Data Expected Results Actual Test


Scenario Results Status
CTP1 Check 1. log on to Add Following Message: As Pass
Add web Data Successfully Expected
Charges application Added to the
Types 2. Click System Name:FullCard database.
with Maintenance Is Payable:No
Valid and select Description The New Charge
data Charges Full Payment type should show
Types in Charges Types -
Master View Grid
3. Click New ( See Fig:108)
Charge Type
Button
CTP2 Check 1. log on to Add Following Class Name field As Pass
Add web Data shows error Expected
Charges application message
Types Ui 2. Click System Name: <blank>
allows Maintenance Is Payable:No ( See Fig:109)
enter and select Description
blank Charges [optional]
fields Types
Master
3. Click New
Charge Type
Button

P a g e 131 | 161
Title Edit Charges types
Pre-conditions User should logged in to the system as operator/teacher

ID Test Test Steps Test Data Expected Results Actual Test


Scenario Results Status
CTP3 Check 1. log on to web The Charge Type - As Pass
Edit application Edit should display Expected
Charges 2. Click System and show selected
types UI Maintenance Charge Type data
shows and select ( See Fig:110)
selected Charges Types
class data Master
3. Choose a
Charges types
from charges
types view
and click edit
CTP4 Check 1. log on to web Message: As Pass
Edit application Update Successfully updated Expected
Charges 2. Click System Descriptio data
types Maintenance ns
Update and select
data Charges Types Check Class View
correctly Master And see updated
3. Choose a value are correct
Charges types ( See Fig:111)
from charges
types view
and click edit
CTP5 Check 1. log on to web Name: The Name Field As Pass
Add new application [blank] shows error Expected
Class 2. Click System messages
allows Maintenance ( See Fig:112)
enter and select
blank Class
fields 3. Click Add New
Button
4. Do not enter
data
5. Click Save

P a g e 132 | 161
Title Attendance
Pre-conditions User should logged in to the system as operator/teacher

ID Test Test Steps Test Data Expected Results Actual Test


Scenario Results Status
AT1 Check 1. log on to web System should show As Pass
Add – application a notification modal Expected
Attendan 2. Click with proper error
ce system Attendance message
Info and select ( See Fig:113)
section Attendance –
Load Data New
Without
select its 3. Expand the
paramete system info
rs tab and click
Load Button
AT2 Check 1. log on to web System should show As Pass
Add – application Study a notification modal Expected
Attendan 2. Click Year:2017 saying “Please enter
ce system Attendance /2016 a student no”
Student and select ( See Fig:114)
section Attendance – Class
Mark New Name :
attendanc 3. Expand the KDG
e without system info Kandy
enter tab and enter
student test data Load
No Button
4. Expand
student panel
and click
Search button
CTP5 Check 1. log on to web Study The system should As Pass
attendanc application Year:2017 highlight the student Expected
e by enter 2. Click /2016 in the grid and
valid Attendance should show sues
student and select Class notification with
no Attendance – Name : include student no
New KDG ( See Fig:115)
3. Expand the Kandy
system info
tab and enter
test data Load
Button
P a g e 133 | 161
4. Expand
student panel
and click
Search button
5. Enter Student
No and click
Search
CTP6 Check 1. log on to web Study The system should As Pass
attendanc application Year:2017 display notification Expected
e by enter 2. Click /2016 modal alert with
invalid Attendance “Student not found
student and select Class ” error message
no Attendance – Name : ( See Fig:116)
New KDG
3. Expand the Kandy
system info
tab and enter
test data Load
Button
4. Expand
student panel
and click
Search button
5. Enter Invalid
Student No
and click
Search

P a g e 134 | 161
Title Create new user (teacher/operator)
Pre-conditions User should logged in to the system as teacher

ID Test Test Steps Test Data Expected Actual Test


Scenario Results Results Status
US1 Check 1. log on to Add Following Data Message: As Pass
create a web First Name :Amila Successfull Expecte
new user application Last Name:Lakmal y Added to d
with valid 2. Click User User Type:Opereator the
data Master Mobile database.
3. Click New No:0771761177
User Button Email:[email protected] The New
4. Enter Test om Charge
Data and User type
click Save Name:145asd@gmail. should
button com show in
Password:Abc123@# Charges
Retype Types -
Password:Abc123@# View Grid
( See
Fig:108)
US2 Check 1. log on to Every fields As Pass
create a web shows Expecte
new user application individual d
with 2. Click User error
invalid Master messages
data 3. Click New ( See
User Button Fig:109)
4. Without
Enter Test
Data and
click Save
button

P a g e 135 | 161
5.4.1 Test proofs

Figure 98 Login panel Validations

Figure 99 Login panel validations

P a g e 136 | 161
Figure 100 Class Added Successfully

Figure 101 Class Add Client side Validations

Figure 102 Class New Record Duplicate

P a g e 137 | 161
Figure 103 Class Edit Data loaded

Figure 104 Class Edit Data Updated

P a g e 138 | 161
Figure 105 Class charges Validation

Figure 106 Class Edit validations

Figure 107 Class charges Validations

P a g e 139 | 161
Figure 108 Charges Types Added Notification

Figure 109 Charge Type - New Field Validation

P a g e 140 | 161
Figure 110 Charges Types Edit with data

Figure 111 Charges Types updated Notification

P a g e 141 | 161
Figure 112 Charges Type edit Validations

Figure 113 Add - Attendance Validation

P a g e 142 | 161
Figure 114 Add - Attendance student panel validations

Figure 115 enter a valid student No

P a g e 143 | 161
Figure 116 Invalid Student no error

Figure 117 Add new User

P a g e 144 | 161
P a g e 145 | 161
Figure 118 Question New Validations

Figure 119 Question New notification

P a g e 146 | 161
Figure 120 Add Quiz Paper Notification

P a g e 147 | 161
Chapter 6 Implementation
6.1 Introduction
In this section will demonstrate how to implement this application for practical use .this is a web
application it has 4 major components

1. Admin Panel
2. Exam Portal
3. Web Service
4. Database (MSSQL)
According to the user requirement .we decided to host this applications’ on Microsoft
azure.to host application user should have MS Azure Hosting Account

Figure 121 Azure App service. Types of apps Can host

Azure app services are fully scalable platform can host web site to web service and gives
fully manageable capabilities.

P a g e 148 | 161
Components from 1 to 3 will be host as Azure App Services in azure Cloud Platform

Azure Cloud Platform


Azure AppService 1

AdminPanel
Operator/Teacher

Azure AppService 2

Exam Portal
MSSQL Server
Database

Azure AppService 3 Student

WEBApi Service

Figure 122 Azure Hosting

6.2 Hardware and software Requirements


Hardware Requirements

Azure has wide range of feature selections .to host Appsservices I’m selected S1 standard option
as hosting platform configuration. This also call Service plan in azure .so according to project we
have 3 AppServices ,each AppService will run on separate App
service plan .

Figure 123 Azure Hardware


requirements

P a g e 149 | 161
Barcode Scanner
The barcode scanner will used to san student barcoded cards,
it should plug in to client pc

Figure 124 Barcode scanner

Barcode scanner
for card marking(Motorola/Symbol 3407)
Fig cm3s

Software requirements
1. FileZilla FTP Client
 This FTP client Will use to upload Files/images to Appservices
2. Microsoft.NetFramwork 4.5
 Class card generation tool need .net framework to run properly
3. Crystal report Runtime
 This runtime needs to generate Crystal reports properly

P a g e 150 | 161
Chapter 7 Critical Appraisal

7.1 Introduction
Education Management System automates the traditional learning and teaching practices. Its
gives lot of facilities to teacher to manage his professional tasks and also improve the quality of
the teaching also Student also get big advantages from this system from online examination
portal.

The online exam portal replace traditional exam preparation approach. Score a good mark in
exam is every student’s dream. Past papers and model paper questions are good approach for
score better results in the exams. But sometimes lack of pass papers, model paper questions and
proper explanations students couldn’t get an expected results. Traditional question paper books
couldn’t fulfill those gaps immediately. EMS‘s Exam portal aims to fill these gaps and provides a
batter knowledge and skills assessment service. It will connect student and teachers directly and
also let the student to measure their knowledge levels to themselves.

P a g e 151 | 161
7.2 SWOT Analysis of the New System
In this SWOT analysis will show the Strengths, weakness. Opportunities and Threats of the new
system .the reason to use SWOT analysis is to get comprehensive details about the developed
system.
Strengths of EMS
Web Based Exam Portal
 Quiz paper analytical Details
The questions of the quiz paper (target or past paper) should belongs to particular
lesson. This should be mark when the time entering questions, this details will used to
show in the exam report. These information will provide with graphical charts
 Student’s Competency level measure
In the result sheet student will get a clear idea about, there competency level in lessons,
What are weak area and what lessons should focus more.

 Question shuffling and dynamic quiz paper creation


With EMS’s question database can create question papers on the fly. If a student is weak
for a specific lesson a teacher can create whole question paper for targeting that lesson
only.

 Can use as a self-learning tool


Student can assess their skill level in a particular subject.

General Features
 Can maintain detailed Student Database
The student database is the core of the system .so the teacher can easily get an idea about
class students
 Facility to generate Barcoded Student class Cards and speed up Attendance and payment
Handling Process

Barcode cards enable gives valid identification to students’. Those cards contains pictures
also.so it will speed up attendance and payment handling process
 Fast Reports Generation Ability

P a g e 152 | 161
Using powerful Crystal reports engine users can generate report instantly!
Weaknesses of EMS
 Active and Stable Internet Connect must need
The system host on Mirosoft Azure cloud platform.so client should use active and stable
internet connection.
 Hosting cost is high
Currently azure hosting is bit high than the traditional web hosting
 Continues development is must
Technology is always changing .to achieve the best performance of the system ,it should use
updated technologies and techniques .

Opportunities of EMS
 Can integrate Mobile applications
The system use wASP.net WEBApi technology to connect with web clients .so if teach want
to develop native mobile application client ,those applications can easily connect .

 Quiz papers can sell!


If teacher can integrate payment gateway such as PayPal ,can easily sell quiz papers on line

Threats to EMS
 Taking data backups are must
The application host on cloud therefor someone should get responsible to get daily backups
 Risk of Cyber attacks
Web based systems are usually attack by hackers .so if not use proper security solutions it’s a
big threat

Lessons learnt
 How to create real-world projects :
 Time management Skills :
 Improve analytical Skills

P a g e 153 | 161
 How to draw UML Diagrams
 Project management Skills

7. 3 Conclusion
Developing professional level Software is a big challenge .lot of engineering and logical concepts
and techniques involve when going develop software. Sometimes it’s a risk to take to develop a
software application, because someone will left there manual works and will depend on that
software.

This system will give answers to faults in manual process .therefor I’m expect the aim of the
develop of the software has fulfill successfully

P a g e 154 | 161
Appendix
Code :

Application Security

Application Security

To authenticate users I’m used token base authenticate system. therefor every action method in
controller should use RESTAuthorizeAttribute action filter

[RESTAuthorizeAttribute]

namespace AdminPanel.Attributes
{
public class RESTAuthorizeAttribute : AuthorizeAttribute
{

private const string _securityToken = "token"; // Name of the url parameter.


public override void OnAuthorization(AuthorizationContext filterContext)
{
if (Authorize(filterContext))
{
return;
}
// HandleUnauthorizedRequest(filterContext);
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { controller =
"Index", action = "ShowError" }));
}

protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)


{
base.HandleUnauthorizedRequest(filterContext);
}

private bool Authorize(AuthorizationContext actionContext)


{
try
{
// var s = SecurityManager.GenerateToken("", "");
HttpRequestBase request = actionContext.RequestContext.HttpContext.Request;
string token = request.Params[_securityToken];

if (string.IsNullOrEmpty(token))
{
string authHeader = request.Headers["Authorization"];
// string resultToken = authHeader.Substring("Basic ".Length).Trim();
token = authHeader;
}

User user = SecurityManager.IsTokenValid(token, SecurityManager.GetIP(request),


request.UserAgent);

if (user.IsSuccess)
{
actionContext.Controller.TempData["Token"] = user.Token;
actionContext.Controller.TempData["UserCompany"] = user.CollegeSerial;
actionContext.Controller.TempData["UserID"] = user.UserId;
return true;
}
else
{

actionContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new {


controller = "Index", action = "ShowError" }));

return false;
P a g e 155 | 161
}

}
catch (Exception)
{
actionContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new { controller
= "Index", action = "ShowError" }));

return false;
}
}

}
}

Security Manager
namespace AdminPanel.Attributes
{
public static class SecurityManager
{
private const int _expirationMinutes = 10;
private const string _alg = "HmacSHA256";
private const string _salt = "rz8LuOtFBXphj9WQfvFh"; // Generated at
https://www.random.org/strings

public static User IsTokenValid(string token, string ip, string userAgent)


{
bool result = false;
User responce = null;
try
{
// Base64 decode the string, obtaining the token:username:timeStamp.
string key = Encoding.UTF8.GetString(Convert.FromBase64String(token));
// Split the parts.
string[] parts = key.Split(new char[] { ':' });
if (parts.Length == 3)
{
// Get the hash message, username, and timestamp.
string hash = parts[0];
string username = parts[1];
long ticks = long.Parse(parts[2]);

User user = new User();


user.Email = username;
user.Token = hash;

string url = "/UserPermissions/CheckTokenValid";


ConnecterManager connecterManager = new ConnecterManager();
responce = connecterManager.Post<User>(url, user);

}
}
catch
{
}
return responce;
}

public static string GenerateToken(string username, string password)


{
DateTime currentticks = new DateTime();
long ticks = currentticks.Ticks;

string hash = string.Join(":", new string[] { username, ticks.ToString() });


P a g e 156 | 161
string hashLeft = "";
string hashRight = "";

using (HMAC hmac = HMACSHA256.Create(_alg))


{
hmac.Key = Encoding.UTF8.GetBytes(password);
hmac.ComputeHash(Encoding.UTF8.GetBytes(hash));
hashLeft = Convert.ToBase64String(hmac.Hash);
hashRight = string.Join(":", new string[] { username, ticks.ToString() });
}

return Convert.ToBase64String(Encoding.UTF8.GetBytes(string.Join(":", hashLeft, hashRight)));


}

public static string GetHashedPassword(string password)


{
string key = string.Join(":", new string[] { password, _salt });
using (HMAC hmac = HMACSHA256.Create(_alg))
{
// Hash the key.
hmac.Key = Encoding.UTF8.GetBytes(_salt);
hmac.ComputeHash(Encoding.UTF8.GetBytes(key));
return Convert.ToBase64String(hmac.Hash);
}
}

public static string GetIP(HttpRequestBase request)


{
string ip = request.Headers["X-Forwarded-For"];
if (string.IsNullOrEmpty(ip))
{
ip = request.UserHostAddress;
}
return ip;
}

}
}

P a g e 157 | 161
Encrypt/Decrypt Strings
public class EncryptDecrypt
{

public static string EncryptQueryString(string queryString)


{
char[] padding = { '=' };

//'@'
string key = EncryptionKey.Key;
byte[] EncryptKey = { };
byte[] IV = { 55, 34, 87, 64, 87, 195, 54, 21 };
EncryptKey = System.Text.Encoding.UTF8.GetBytes(key.Substring(0, 8));
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByte = Encoding.UTF8.GetBytes(queryString);
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, des.CreateEncryptor(EncryptKey,
IV), CryptoStreamMode.Write);
cStream.Write(inputByte, 0, inputByte.Length);
cStream.FlushFinalBlock();

return Convert.ToBase64String(mStream.ToArray()).TrimEnd(padding).Replace('+', '-


').Replace('/', '_');
}

public static string Decrypt(string encryptedText)


{
string key = EncryptionKey.Key;
byte[] DecryptKey = { };
byte[] IV = { 55, 34, 87, 64, 87, 195, 54, 21 };
byte[] inputByte = new byte[encryptedText.Length];

DecryptKey = System.Text.Encoding.UTF8.GetBytes(key.Substring(0, 8));


DESCryptoServiceProvider des = new DESCryptoServiceProvider();

string incoming = encryptedText.Replace('_', '/').Replace('-', '+');


switch (encryptedText.Length % 4)
{
case 2: incoming += "=="; break;
case 3: incoming += "="; break;
}

inputByte = Convert.FromBase64String(incoming);

MemoryStream ms = new MemoryStream();


CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(DecryptKey, IV),
CryptoStreamMode.Write);
cs.Write(inputByte, 0, inputByte.Length);
cs.FlushFinalBlock();
System.Text.Encoding encoding = System.Text.Encoding.UTF8;
return encoding.GetString(ms.ToArray());
}
}

P a g e 158 | 161
MVC To WEPApi Caller

public class ConnecterManager


{
public T Get<T>(string url)
{
string responce = Connector.Get(url);
// object result;

try
{
WebAPIResponce result =
(WebAPIResponce)Newtonsoft.Json.JsonConvert.DeserializeObject(responce, typeof(WebAPIResponce));

if (result.StatusCode == HttpStatusCode.OK)
{
return (T)Newtonsoft.Json.JsonConvert.DeserializeObject(result.Result.ToString(),
typeof(T));
}
else
{
throw new ErrorContainer(result.message);
}
}
catch (Exception)
{

throw;
}

public T Post<T>(string url, object value)


{
//object result;
try
{
string objSerilize = Newtonsoft.Json.JsonConvert.SerializeObject(value);
System.IO.MemoryStream objSerilizstream = new
System.IO.MemoryStream(Encoding.UTF8.GetBytes(objSerilize));

string responce = Connector.Post(url, objSerilizstream);

WebAPIResponce result =
(WebAPIResponce)Newtonsoft.Json.JsonConvert.DeserializeObject(responce, typeof(WebAPIResponce));

if (result.StatusCode == HttpStatusCode.OK)
{

return (T)Newtonsoft.Json.JsonConvert.DeserializeObject(result.Result.ToString(),
typeof(T));
}

else
{
throw new ErrorContainer(result.message);
}
}
catch (Exception)
{

throw;
}
}

P a g e 159 | 161
public class Connector
{
public static string HTTP_Method = "GET";
public static string HTTP_Content_Type = "application/json; charset=utf-8";
public static string HTTP_Accept_Type = "application/json";
public static string HTTP_URL =
System.Configuration.ConfigurationManager.AppSettings["WebApiURL"];

public static string Get(string uri)


{
try
{
string fullUrl = Connector.HTTP_URL + uri;

HttpWebRequest _request = (HttpWebRequest)WebRequest.Create(fullUrl);

HttpWebResponse _response = (HttpWebResponse)_request.GetResponse();

StreamReader sr = new StreamReader(_response.GetResponseStream());

string response = sr.ReadToEnd();

return response;
}
catch (Exception ex)
{
throw ex;
}

public static string Post(string uri, MemoryStream stream)


{
string branduri = Connector.HTTP_URL + uri;

HTTP_Method = "POST";
HttpWebRequest _request = (HttpWebRequest)WebRequest.Create(branduri);

_request.Method = HTTP_Method;
_request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET
CLR 2.0.50727)";
_request.ContentType = HTTP_Content_Type;

_request.Accept = HTTP_Accept_Type;
_request.KeepAlive = true;
string postdata = System.Text.Encoding.UTF8.GetString(stream.ToArray());

//_request.ContentLength = postdata.Length;

System.Text.Encoding encording = System.Text.Encoding.UTF8;

StreamWriter sw = new StreamWriter(_request.GetRequestStream(), encording,


postdata.Length);
sw.Write(postdata);

P a g e 160 | 161
sw.Close();

HttpWebResponse _response = (HttpWebResponse)_request.GetResponse();

//
StreamReader sr = new StreamReader(_response.GetResponseStream(), encording,
true, postdata.Length);

string response = sr.ReadToEnd();


return response;
}

P a g e 161 | 161

You might also like