Sie sind auf Seite 1von 52

BLOOD BANK

Minor Project Report

Submitted by:

UTSAV KUMAR (0103IT161119)


VIJAY SHANKAR JHA (0103IT161123)
ABHISHEK KUMAR (0103IT173D01)

Group No.- 18

in partial fulfillment for the award of the degree

of

BACHELOR OF ENGINEERING

IN

INFORMATION TECHNOLOGY

At

LAKSHMI NARAIN COLLEGE OF TECHNOLOGY


KALCHURI NAGAR, RAISEN ROAD, BHOPAL (INDIA) - 462021

SESSION JAN JUNE 2019

i
LAKSHMI NARAIN COLLEGE OF TECHNOLOGY BHOPAL (M.P.)

Department of Information Technology

DECLARATION

I hereby declare that the minor project entitled “BLOOD BANK” submitted for the B.E.(Information

Technology) degree is our/my original work and the project has not formed the basis for the award of

any other degree, diploma, fellowship or any other similar titles.

Name & Signature of the students with date

Place: (1) -----------------------------

Date: (2) ------------------------------

(3) ------------------------------

ii
LAKSHMI NARAIN COLLEGE OF TECHNOLOGY BHOPAL (M.P.)

Department of Information Technology

CERTIFICATE

This is to certify that the minor project titled “BLOOD BANK” is the bona fide work carried out by

UTSAV KUMAR(0103IT161119) , VIJAY SHANKAR JHA(0103IT161123) , ABHISHEK

KUMAR(0103IT173D01) are student/students of B.E.(Information Technology) of Lakshmi Narain

College of Technology, Bhopal affiliated to Rajiv Gandhi Proudyogiki Vishwavidyalaya, Bhopal,

Madhya Pradesh (India) during the academic year 2018-19, in partial fulfillment of the requirements for

the award of the degree of Bachelor of Engineering (Information Technology ) and that the project has

not formed the basis for the award previously of any other degree, diploma, fellowship or any other

similar title.

Signature & Seal of HOD, Information Technology Signature of the Guide with Date

Lakshmi Narain College of Technology, Bhopal

iii
ACKNOWLEDGEMENT

We would like to express our special thanks of gratitude to our guide Mrs. PRAGATI AMBEKAR as
well as our HOD Dr. SUSHIL KUMAR sir who gave us the golden opportunity to do this wonderful
project on the topic College Ledger, which also helped us in doing a lot of Research and we came to
know about so many new things we are really thankful to them.
Secondly we would also like to thank our faculties and friends who helped us a lot in finalizing this
project .

iv
ABSTRACT

The purpose of this study was to develop BLOOD BANK information system to assist in the
management of blood donor records and ease or control the distribution of blood in various parts of the
country basing on the Hospital demands. Without quick and timely access to donor records creating
market strategies for blood donation lobbying and sensitization of blood donor becomes very difficult.
The blood management information system offer functionalities to quick access to
donor records collected from various part of the country. It enables monitoring of the results and
performance of the Blood donation activity such that relevant and measurable objectives of the
organization can be checked .
It provides to management timely, confidential and secure medical reports that facilitates planning and
decision making and hence improved medical service delivery. The reports generated by the system
give answers to most of the challenges management faces as far as blood donor records are concerned.

v
Table of Figures

Figure no. Details Page number


2.2.1 Admin Dashboard 10
3.2.1 Model View Controller 16
3.4.1 Main Controller 21
3.4.2 Student Details Description 22
4.1 Faculty Dashboard 26
4.2 Assignment Result 27
4.3 Attendance Module 27
a.1 Login Page 33
a.2 Faculty Dashboard 33
a.3 Attendance Module 34
b. Assessment Module 35

vi
Table of Contents
Title Page i

Declaration of the Student ii


Certificate of the Guide iii
Acknowledgement iv
Abstract v
Table of figures vi

1. INTRODUCTION 1-5
1.1 Problem Definition 2
1.2 Project Overview/Specifications 3
1.3 Hardware Specification 4
1.4 Software Specification 5

2. LITERATURE SURVEY 6-11


2.1 Existing System 7
2.2 Proposed System 9
2.3 Feasibility Study 10

3. SYSTEM ANALYSIS & DESIGN 12-24


3.1 Requirement Specification 15
3.2 Flowcharts / DFDs / ERDs 17
3.3 Design (Use Cases) and Test Cases 19
3.4 Algorithms and Pseudo Code 21
3.5 Testing Process 22

4. RESULTS / OUTPUTS 25-27


5. CONCLUSIONS / RECOMMENDATIONS 28-29
REFERENCES 30-31
APPENDICES 32-44
a. Steps to execute/run/implement the project 33
b. Coding if any 35

vii
CHAPTER 1

INTRODUCTION

Page 1 of 52
1.1 Problem Definition
In today’s world, all that we want is automation. In the existing system all the works are done
manually. Students have to fill up admission form on paper and all the records are maintained on
paper file. In this system it is very difficult to find any information. And it is very difficult to
maintain the fees and accounting reports of college in proper way. In existing system, there is no
custom field selection, there is no efficient way in existing system for report planning and scheduling,
the existing system is not flexible and scalable i.e. not able to be applicable from department to
university level, there is no efficiency in existing system as results first get stored in database and
then display i.e. can be tempered, all the features provided are not accessible or may not in use or
might not known to authorities, there is no interaction provided among admin faculty and student
which effects the workflow and speed. In existing system manual work is included there is always a
need of a person for maintaining the records and updation on regular basis. Use of paper is largely
used for record maintenance which is not eco friendly in today’s era where global warming is
increasing on a large basis. For accessing different types of information different platforms are
provided i.e. no integrated platform, this also increase storing same type of data on different platform
which will increase redundancy and effect workflow along with degradation in quality of code, so
this should be avoided.

Page 2 of 52
1.2 Project Overview / Specification

The main objective of our project is to automate all functionalities of a college or university.
Using this system you can manage all college management work like time table management and
result declaration. Using this project you can view or update data and information about students
and staff easily. This system helps in managing the activity like student attendance, student
department, and assignment submission. Admin can also retrieve information of employee and
student.

The COLLEGE LEDGER can be used to store student information like attendance, branch,
personal info, class, and student result etc. Admin and faculties can create report regarding any
student any time using this system. Using this system you can register new student and their
course details. You can upload assignments and can check its submission anytime. You can
create exam result and submit in this system. Student can check their result online by logging to
the system. You can also add new employee in the system and can check details of the employee
easily. Student can also check course detail online from this system.

Using this system you can manage all information of all aspects of a college, its students,
faculties, Departments, marks and other curricular activities. This College management system
provides the easiest way to manage all functionalities of a college. This system facilitates
colleges to maintain the functionality related to college employees and their students.

College Management System can store and manage all data of the various departments of a
college like Administration, Attendance, Staff details etc. using this system user can retrieve any
information related to student, teacher and fees. Using this system teacher can check student
attendance anytime. This system also help teacher to announce the result. College administration
can also manage college work easily. Admin can check leave, profile and other details of teacher
any time. They can also create time table of classes from this system. The Library module is used
for the data process of library and book accessing for students and staffs. All the actors i.e.
admin, faculty, student can access their accounts through the interactive interface provided with
all the features on dashboard only which provide interaction among all the three levels which
ease the workflow. Results of assignments and attendance are represented graphically for easy
understanding and proper analysis of results. Assignments are provided with deadline and there
is compulsion to attempt all the assignments for accessing newly uploaded ones.
Page 3 of 52
Attendance can be updated by faculties as per the classes in which they take lectures and the
student may check his/her attendance and the graph colour may vary as per the minimum criteria
of attendance for midterm or semester exams. Faculties may send message to the parent’s
students having attendance below the criteria. The message includes total classes held along with
the classes attended by their ward. This improves the interaction among faculties and parents
along with awareness regarding their ward to them (parents).

Assignment module includes the question paper having objective type questions as per the topic
taught in class. This promotes the regular revision of the student and the student may evaluate
his/her performance as per the fields in which he/she needs to cope up or lacking. Each paper is
provided with the timer at the end of which the answers will get automatically submitted and
evaluated. Results will generate in pie chart form having section for attempted, unattempt and
negative attempts.

1.3 Hardware Specification

2 GB RAM

80 GB Hard Disk

Above 2GHz Processor

Mini board with CPU and LCD

Internet Connectivity

Page 4 of 52
1.4 Software Specification

The software used for the development of the project is:

OPERATING SYSTEM: Windows, Linux

ENVIRONMENT: Net beans

LANGUAGE: Java, JavaScript

FRAMEORK: Spring MVC, Hibernate

BACK END: MY SQL server

Page 5 of 52
CHAPTER-2

LITERATURE SURVEY

Page 6 of 52
2.1 Existing System
The Existing system comprises of a lot of manual input. Here the attendance will be carried out
in the hand-written registers as well as the assessments are also done in paper which is not eco-
friendly in today’s era and also temper the work flow. It will be a tedious job to maintain the
records of the user for long time. The human effort is more here. The retrieval of the information
is not as easy as the records are maintained in the hand-written registers and sheets. The existing
comprises of redundancy of data i.e. storage of similar information in different documents. There
is no proper analysis of results and no compulsion or record of the previous or remaining
assignments updated by faculty and submitted by student. There is no proper interaction between
admin, faculty and students for discussion. There is manual generation and planning of reports
which may include biasing and is less efficient. For sharing the attendance status of student with
their parents faculties have to call manually to each student’s parent/guardians which reduce the
speed of workflow. This application will take proper input from user and easy up the work.
Using this system you can manage all information of all aspects of a college, its students,
faculties, Departments, marks and other curricular activities. College ledger provides the easiest
way to manage all functionalities of a college. This system facilitates colleges to maintain the
functionality related to college employees and their students.
Main problems with existing college management system-

Paper-based processes

Educational institutions are burdened by cumbersome paperwork and manual processes,


and they find it difficult to maintain records on attendance, fees, admissions, assignments,
etc., and track the information they need. Using this System, automate academic
processes to save time and reduce staff workload.

Admission & Enrolment

Colleges and Universities are finding hard to achieve admission and enrolment targets.
Aligning people, processes and technology with simple & user-friendly interactive
education solution will help institutions to manage information from inquiry and
application to admission and enrolment.

Page 7 of 52
Teacher Evaluation

Tracking the progress of teachers and evaluating the effectiveness of teachers' work is
significant. Teacher evaluation system improves communication and collaboration
between evaluators and teachers. Student’s feedback will measure teacher’s performance
in the classroom and the automated evaluation process improves student’s learning skills,
achievement and success.

Communication & Collaboration

There is apparently no platform to provide seamless communication between students,


administrators, staff and teachers. Moreover, increasing student discipline incidents
happen as a result of big communication gap between students and teachers. Web and
mobile-based education management system improves communication through instant
notifications and alerts via email, SMS and push messages to keep the
constituents/parents informed at every step of the journey to build relationship and
improve student retention.

Student Monitoring

Teachers are struggling to monitor student’s activities including attendance, leave,


discipline, assignments, etc. School administrators are lacking in result-based
monitoring tools to track student progress. Automate and streamline student attendance
and absenteeism using student information system which delivers real-time status updates
of student activities to support learning needs

Forecasting the academic achievement

Institutions are unable to manage information and there are endless delays in taking
decisions based on complete analysis. Dashboard reports and intelligent analytics are
useful indicators for educators to examine attendance, assignments, grades, etc. and
predict student outcomes. Using data analytics will help institutions to identify students
at-risk and deploy resources to improve achievement and success.

Page 8 of 52
2.2 Proposed System
To overcome the drawbacks of the existing system, the proposed system has been evolved. This
project aims to reduce the paper work, saving time, enhancing workflow and increase interaction
to generate accurate results from the student’s attendance and their assessments. The system
provides with the best user interface. The efficient reports can be generated by using this
proposed system.

2.2.1 Features of College Ledger


I. Complete Customization: According to need of institution the college ledger can be customized
and easily by programmer as per the need of any institute.CL provide the most important feature
needed by any institute i.e. proper assessment of their students.
II. Reporting Planning: College ledger helps to generate reports helps to plan for better study of
students and easy planning for teachers i.e. the list of students as per the eligibility criteria for
giving mid sem and final exams according to the cut off attendance criteria can be easily
generated.
III. Scalable and flexible: As our system is build in spring and hibernate it can easily be scale
according to need of institution from one department to multiple institutions and will provide
functionalities to all three levels which improves interaction and workflow.
IV. Improved Efficiency: College Ledger generates interactive results, scorecards and reduce the
manual work load. The results will be generated and displayed directly without any biasing and
tempering which improves efficiency and the results will be in form of graphs which improves
the analysis of results for students as well as for faculties.
V. Improved Collaboration and Workflow: College Ledger improves interaction among faculties
and students which will ease the workflow and reduce redundancy in data as there is interaction
among all three levels.
.

Page 9 of 52
Fig 2.2.1 Admin Dashboard

2.3 Feasibility Study

Feasibility analysis begins once the goals are defined. It starts by generating broad possible
solutions, which are possible to give an indication of what the new system should look like. This
is where creativity and imagination are used. Analysts must think up new ways of doing things-
generate new ideas. There is no need to go into the detailed system operation yet. The solution
should provide enough information to make reasonable estimates about project cost and give
users an indication of how the new system will fit into the organization. It is important not to
exert considerable effort at this stage only to find out that the project is not worthwhile or that
there is a need significantly change the original goal. Feasibility of a new system means ensuring
that the new system, which we are going to implement, is efficient and affordable. There are
various types of feasibility to be determined. They are,

Page 10 of 52
2.3.1 Economically Feasibility:

The system being developed is economic with respect to School or Collage’s point of view. It is
cost effective in the sense that has eliminated the paper work completely. The system is also time
effective because the calculations are automated which are made at the end of the month or as per
the user requirement. The result obtained contains minimum errors and are highly accurate as the
data is required. Development of this application is highly economically feasible. The only thing
to be done is making an environment with an effective supervision.

2.3.2 Technical Feasibility:

The technical requirement for the system is economic and it does not use any other additional
hardware and software. Technical evaluation must also assess whether the existing systems can
be upgraded to use the new technology and whether the organization has the expertise to use it.

2.3.3 Operational Feasibility:

The system working is quite easy to use and learn due to its simple but attractive interface. User
requires no special training for operating the system. Technical performance includes issues such
as determining whether the system can provide the right information for the Department
personnel student details, and whether the system can be organized so that it always delivers this
information at the right place and on time using intranet services. Acceptance revolves around
the current system and its personnel.

Page 11 of 52
CHAPTER 3

SYSTEM ANALYSIS & DESIGN

Page 12 of 52
Analysis is the focus of system developing and is the stage when system designers have to work
at two levels of definition regarding the study of situational issues and possible solutions in terms
of “what to do” and “how to do”.

System Study

The main objective of college management system is to automate all functionalities of a college
or university. Using this system you can manage all college management work like admission,
assignment submission, time table management and result declaration. Using this college
management system you can view or update data and information about students and staff easily.
This system helps in managing the activity like student admission, student registration, fees
submission. Admin can also retrieve information of employee student..

Needs of the System

Social and economic factor: a wave of social and economic changes often follows in the wake of
the new technology. New opportunities may arise to improve on a production process or to do
something that was not previously possible. Changes in the ways individuals are organized into
groups may then be necessary, and the new groups may complete for economic resources with
established units. Technological factor: people have never before in a time when the scope of
scientific inquiry was so broad, so when the speed of applying the new technology accounts for
many changes in the organization.

Main need for this application-

 Store records and update now and then

 Report generation and planning

 Accurate calculation

 Less manpower

Page 13 of 52
System Planning

Planning for information systems has a time horizon and a focus dimension. The time horizon
dimension specifies the time range of the plan, where as the focus dimension relates whether the
primary concern is strategic, managerial, or operational. The system i.e. The Project that we were
assigned was required to complete within 20 weeks. What we had planned is as follows:

Requirements analysis, Preliminary Investigation & Information Gathering should be covered


within the 1st and 2nd week. 12 Weeks for the design of the system under development. 1 week
for Testing & Implementation. And rest 2 reserve weeks.

Preliminary Investigation

The initial investigation has the objective of determining the validity of the user’s request for a
candidate system and whether a feasibility study should be conducted.

The objectives of the problem posed by the user must be understood within the framework of the
organization’s MIS plan. It had investigated from the concerned authority about the project.

Information Gathering

Key part of feasibility analysis is gathering information about the present system. The analyst
must know what information to gather, where to find it, how to collect it, and what to make of it.
The proper use of tools for gathering information is the key to successful analysis. The tools are
the traditional interview, questionnaires, and on-site observation.

Structured Analysis

The traditional tools of data gathering have limitations. An English narrative description is often
vague and difficult for the user to grasp. System flowcharts focus more on physical than on
logical implementation of the candidate system. Because of these drawbacks, structured tools
were introduced for analysis. Structured analysis is a set of techniques and graphical tools
(design diagrams) that allow the analyst to develop a new kind of system specifications that are
easily understandable to the user.

Page 14 of 52
3.1 Requirement Specification

3.1 Server Side:


The minimum recommended hardware topology for the dataset scenario is a three-tier
deployment that contains a dedicated server for each of the following:

 Server 1: Front-end web server


 Server 2: Application server
 Server 3: SQL Server

For a three-tier deployment supporting a medium dataset, the following are the hardware
minimum requirements:

Hardware requirements for a Front-end web server for the deployment of Project
Component Minimum requirement

Processor 64-bit, four-core, 2.5 GHz minimum per core

RAM 8 GB for developer or evaluation use


16 GB for single server and multiple server farm
installation for production use

Hard disk 80 GB

Hardware requirements for an Application server for the deployment of Project


Component Minimum requirement

Processor 64-bit, four-core, 2.5 GHz minimum per core

RAM 8 GB for developer or evaluation use


16 GB for single-server and multiple-server farm
installation for production use

Hard disk 80 GB

Page 15 of 52
Hardware requirements for the SQL Server tier for the deployment of Project
Component Minimum requirement

Processor 64-bit, four-core, 2.5 GHz minimum per core (If


your dataset size is significantly larger than the
medium dataset, we recommend 8 cores.)

RAM 16 GB

Hard disk 100 GB

 Non-Functional Requirement
 Simple, Attractive, User Friendly
 Self-Contained, Consistent, Self-Explanatory
 Robust.
 Scalable
 Flexible
 Functional Requirement
 Student Information: This module gives information about,
o Profile: This provides personal details of the student.
o Attendance: This provides the student with his/her attendance details.
o Marks: This provides the internal/external marks of a student.
 Staff Information: This module deals mainly with,
o Profile: This provides personal details of the staff.
o Attendance: This provides the staff with his/her attendance details
o View Student Details: This provides the staff to view the student details
 Department Information: This module gives the information about
o Course: This contains the information about the number of the courses offered by
the college and number of seats present in each.
o Staff: This contains the number of staff available in each department.
o Syllabus: This provides the academic syllabus of the students from different
branches
 Administration: This module deals mainly with,
o Admission: This mainly deals registering the students/staff

Page 16 of 52
3.2 Flowcharts / DFDs / ERDs

3.2.1 Design pattern

Fig 3.2.1 Model view controller

3.2.2 Data flow diagram

Data Level 0

Page 17 of 52
Data Level 1

Data Level 2 (attendance)

Page 18 of 52
Data Level 2 (assessment)

3.3 Design (Use cases and Test cases)

Use case Diagram

A use case is a set of scenarios that describe an interaction between a user and a system. A use
case diagram displays the relationship among actors and use cases. The two main components of
a use case diagram are use cases and actors.
Through this diagram we can show the interaction among faculties’, admin and student and
represent the customization of functionalities provided. Use case shows the methodology used in
system analysis identify, clarify and organize the system requirement of college management
system.
The relationship between and among the actors and use cases of college management system:
 ADMIN: update profile, view department attendance, add/remove faculty, add marking scheme.
 FACULTY: update profile, add/remove students, update assignments, update attendance, view
attendance, send message to parents, view student profile, generate reports.

 STUDENT: update profile, view attendance, submit assignments, view scorecards.


Page 19 of 52
USECASE DIAGRAM
College Ledger

Page 20 of 52
3.4 Algorithm and Pseudo Code

Fig 3.4.1 Main controller – showing code for assignment module

Page 21 of 52
Fig 3.4.2 Showing code for fetching students details for assigning the assignment as their
class branch subjects

Page 22 of 52
3.5 Testing Process

Software testing is a critical element of software quality assurance and represents the ultimate
review of specification, design and coding. The increasing visibility of software as a system
element and attendant costs associated with a software failure are motivating factors for we
planned, through testing. Testing is the process of executing a program with the intent of finding
an error. The design of tests for software and other engineered products can be as challenging as
the initial design of the product itself

3.5.1 Unit Testing

A Unit corresponds to a screen /form in the package. Unit testing focuses on verification of the
corresponding class or Screen. This testing includes testing of control paths, interfaces, local data
structures, logical decisions, boundary conditions and error handling. Unit testing may use Test
Drivers, which are control programs to co-ordinate test case inputs and outputs and Test stubs,
which replace low-level modules. A stub is a dummy subprogram.

We are basically two test cases.


Test login page
Test main page

JWebUnitTest.java

package junitwebapp;
import static net.sourceforge.jwebunit.junit.JWebUnit.assertLinkPresent;
import static net.sourceforge.jwebunit.junit.JWebUnit.assertTitleEquals;
import static net.sourceforge.jwebunit.junit.JWebUnit.beginAt;
import static net.sourceforge.jwebunit.junit.JWebUnit.clickLink;
import static net.sourceforge.jwebunit.junit.JWebUnit.setBaseUrl;
import static net.sourceforge.jwebunit.junit.JWebUnit.setTestingEngineKey;
import org.junit.Before;
import org.junit.Test;
import net.sourceforge.jwebunit.util.TestingEngineRegistry;

public class JWebUnitTest {


@Before
public void prepare() {
setTestingEngineKey(TestingEngineRegistry.TESTING_ENGINE_HTMLUNIT);
setBaseUrl("http://localhost:8081/junitwebapp");
}

@Test
public void testLoginPage() {

Page 23 of 52
beginAt("index.jsp");
assertTitleEquals("Login");
assertLinkPresent("login");
clickLink("login");
assertTitleEquals("login");
}

@Test
public void testHomePage() {
beginAt("home.jsp");
assertTitleEquals("Home");
assertLinkPresent("login");
clickLink("login");
assertTitleEquals("Login");
}
}
We examine each and every details of this class. Below line will sets the Engine for testing of our
example.

setTestingEngineKey(TestingEngineRegistry.TESTING_ENGINE_HTMLUNIT);

Below line is the main where we are defining the URL of our testing application.

setBaseUrl("http://localhost:8081/junitwebapp");

VALIDATIONS AND TEST CASES.

Test
Description Action Expected Result Result
Case
Correct
Username and The user will be
Password logged in
To check whether
Entered Successfully
1 username and password
Wrong tested
is valid or not
Username and Returns the
Password login page
Entered
OTP is sent to
Registered email and user
Email entered can reset the
E-mail verification Successfully
2 password
(forgot password) tested
Error prompt
Unregistered
invalid email
Email entered
address
Entered the
New attendance
attendance of
is added to Successfully
3 Repetition of attendance new date and
database tested
lecture
Entered the Update the
Page 24 of 52
attendance of existing data in
existing date attendance
and lecture database
Student/faculty
Successfully
with new id is
registered
Student and faculty added Successfully
4
registration Student/faculty tested
Registration
with existing
denied
id is added

Page 25 of 52
CHAPTER 4

RESULT & OUTPUTS

Page 26 of 52
The project entitled as College Ledger is the system that deals with the issues related to a particular
institution.
In the dashboard, result is reflected directly through bar graphs which represents the annual test report and
attendance of registered students. The widgets provided displays total number of students/faculties, subjects
and running lectures. For better visibility, all the functionalities are provided on dashboard only i.e. Student,
test, manage lectures, attendance, manage sessional.

Fig 4.1 Dashboard of faculty displaying the functionalities provided i.e. test,lecture,attendance,etc. along
with the graphs of results and attendance as well as total no. of faculty ,students, subjects taken, and
lectures.

Page 27 of 52
Fig 4.2 Assignment results along with specifying wrong answers, correct answers and
unattempt ones for better analysis of results.

Fig 4.3 Attendance module- faculty may update attendance as per class subject where
faculty is taking lectures.

Page 28 of 52
CHAPTER 5

CONCLUSIONS & RECOMMENDATION

Page 29 of 52
• Successful implementation of projects is less about technology and more about people and
processes .
• Strategy of our project is to educate and train along with minimising the causes of resistance that
will be a part of system due to change in management.
• Aim of our project is obtaining capable resources for achieving the objective of organisation and
for ensuring the effective utilisation of their services.
• CL is designed in order to achieve high efficiency and accuracy which automate the manual work
regarding attendance and assessment.
• CL saves time by providing accurate results which is need of modern society.
• It reduces the paperwork so its eco-friendly.
• Provides interactive results and charts which makes it more user-friendly.
• To operate this application there is no need of any specialization and it’s a web app , so it can be
easily accessed.

Page 30 of 52
REFFERENCES

Page 31 of 52
[1]Messagesending-
https://control.textlocal.in/activate2/?token=XgIT5xV6Bg65EPXA4I5UgA%3D%3D
[2] High-charts- https://www.highcharts.com/
[3] Content- https://sites.google.com/site/project-report/college-management-system-project-
report
[4]Java mail API
[5] https://www.wikipedia.org/
[6] For use cases, DFD diagrams-https://www.draw.io/
[7] Server requirements-https://docs.microsoft.com
[8]Search engine- https://www.google.com/

Page 32 of 52
APPENDICES

Page 33 of 52
a. Steps to run/execute the project

User login through their registered email and password according to their authorization for accessing
the application.

Fig a.1 Login Page- Admin, faculty and student may login with username i.e. registered
Email along with password provided by faculty or admin for accessing their dashboard
Features.

Fig a.2 Faculty dashboard- faculty dashboard is provided with facilities like adding test, adding
students, updating attendance and graphical representation of results.

Page 34 of 52
Fig a.3 Attendance module- faculty may update attendance lecturewies of all students in the class
where he/she have taken lecture

Page 35 of 52
b. Coding

Fig b.1 Assessment – here each assignment is provided with a id and each question is linked with its
options through unique question of that question and is displayed to the students which linked with the
assignment through subject id.

Sample Code:

1. Attendance

//fetchStudent
@RequestMapping(value = "/fetchStudent/{fLId}")
@ResponseBody
public String fetchStudent(Model m, @PathVariable int fLId) {
System.out.println("@@@@@@@@@@@@@@@@@@ fetchStudent");
FacultyLecture facultyLecture = facultyLectureDaoImpl.fetchFacultyLectureById(fLId);
List<Student> sList = null;
if (facultyLecture != null) {
sList = studentDaoImpl.fetchAllStudentByLectureId(facultyLecture);

System.out.println("sList: " + sList.size());


} else {
System.out.println("No Lecture found");
Page 36 of 52
sList = new LinkedList<>();
}
Gson gson = new Gson();
System.out.println(gson.toJson(sList));
return gson.toJson(sList);
}

//saveAttendance
@RequestMapping(value="/saveAttendance",produces = "application/json")
@ResponseBody
public String saveAttendance(Model m, HttpSession httpSession,@RequestBody String jData ) {
List<Attendance> aList = new LinkedList<>();
System.out.println("@@@@@@@@@@@@@@@@@@ saveStudent");
System.out.println(jData);

String facultyId = "";


if (httpSession.getAttribute("facultyId") != null) {
facultyId = httpSession.getAttribute("facultyId").toString();
} else {
facultyId = "0";
}
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
String today = sdf.format(new Date());
today = today.replaceAll("/", "-");
httpSession.setAttribute("today", today);;

System.out.println("today" + today);

JsonElement jelement = new JsonParser().parse(jData);


JsonArray jarray = jelement.getAsJsonArray();
for (int i = 0; i < jarray.size(); i++) {
JsonObject jobject = jarray.get(i).getAsJsonObject();
int sId = jobject.get("sId").getAsInt();
String status = jobject.get("status").getAsString();
int fLId = jobject.get("fLId").getAsInt();
System.out.println(sId + " : " + status);
//attendanceDate
String attendanceDate = jobject.get("attendanceDate").getAsString();
Attendance attendance = new Attendance();
attendance.setStatus(status);
attendance.setStudentId(sId);
attendance.setAttendanceDate(attendanceDate);
attendance.setfLId(fLId);
attendance.setfId(Integer.parseInt(facultyId));
attendance.setTodayDate(today);
aList.add(attendance);

}
boolean st = false;
for (Attendance a : aList) {
Page 37 of 52
st = attendenceDaoImpl.saveAttendence(a);
}
return st + "";
}

//fetchStudentAttendance
@RequestMapping("/fetchStudentAttendance")
public String fetchStudentAttendance(Model m, HttpSession httpSession) {
System.out.println("@@@@@@@@@@@@@@@@@@ fetchStudentAttendance call");
System.out.println("Inside fetchStudentAttendance action");
Map<Integer, String> allDataMap = new LinkedHashMap<Integer, String>();

List<Subject> subjectList = null;


List<Branch> branchList = null;
List<Semester> semesterList = null;

if (httpSession.getAttribute("facultyId") != null) {
int fId = Integer.parseInt(httpSession.getAttribute("facultyId").toString());
System.out.println("faculty session id: " + fId);
List<FacultyLecture> fList = facultyLectureDaoImpl.fetchAllFacultyLecture(fId);

Iterator<FacultyLecture> iterator = fList.iterator();


String allData = "";
while (iterator.hasNext()) {
FacultyLecture facultyLecture = iterator.next();

int branchId = facultyLecture.getBranchId();


int subjectId = facultyLecture.getSubjectId();
String section = facultyLecture.getSection();
String semesterName = facultyLecture.getSemesterName();

//adding branch in to map


System.out.println("branchId: " + branchId);
branchList = branchDaoImpl.fetchAllBranchById(branchId);
if (branchList != null) {
System.out.println("list" + branchList.size());
Iterator<Branch> iterator3 = branchList.listIterator();
while (iterator3.hasNext()) {
Branch branch = iterator3.next();
allData = branch.getBranchShortName();
}
} else {
System.out.println("No branch found");
}
//adding semester in to map
semesterList = semesterDaoImpl.fetchAllSemesterById(Integer.parseInt(semesterName));
System.out.println("semesterName: " + semesterName);
if (semesterList != null) {
System.out.println("list" + semesterList.size());
Iterator<Semester> iterator4 = semesterList.listIterator();
Page 38 of 52
while (iterator4.hasNext()) {
Semester semester = iterator4.next();
allData = allData + " SEM-" + semester.getSemesterName();
}
} else {
System.out.println("No semester found");
}

//adding section in to map


System.out.println("section: " + section);
String sectionValue = "";
if ("1".equals(section)) {
sectionValue = "A";

} else if ("2".equals(section)) {
sectionValue = "B";

} else if ("3".equals(section)) {
sectionValue = "C";

} else if ("4".equals(section)) {
sectionValue = "D";
}

allData = allData + "(" + sectionValue + ")";

//adding subject in to map


System.out.println("subjectId: " + subjectId);
subjectList = subjectDaoImpl.fetchAllSubjectById(subjectId);
if (subjectList != null) {
System.out.println("subject list" + subjectList.size());
Iterator<Subject> iterator2 = subjectList.listIterator();
while (iterator2.hasNext()) {
Subject subject = iterator2.next();
allData = allData + "/ " + subject.getSubjectName();
}
} else {
System.out.println("No subejct found");
}
System.out.println("----------------------------");
System.out.println("allData: " + allData);
System.out.println("----------------------------");
allDataMap.put(facultyLecture.getFLId(), allData);
allData = "";
}
} else {
System.out.println("session id not found");
}
String facultyName = "";
if (httpSession.getAttribute("facultyName") != null) {
Page 39 of 52
facultyName = httpSession.getAttribute("facultyName").toString();
} else {
facultyName = "NA";
}

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");


String today = sdf.format(new Date());
today = today.replaceAll("/", "-");
httpSession.setAttribute("today", today);;

System.out.println("today" + today);
System.out.println("facultyName: " + facultyName);

m.addAttribute("allDataMap", allDataMap);

m.addAttribute("attendance", new Attendance());


return "crm_view/viewStudentAttendance";

2. Json data file


<script>
function onLoadData() {
$("#showData").css("display", "none");
}
function fetchStudent() {
var fLId = document.getElementById("alldataId").value;
var aDate = document.getElementById("datepicker").value;
alert(aDate);
if(aDate == ''){
aDate ='NA';
}
aDate = aDate.replace('/', '-');
aDate = aDate.replace('/', '-');

var obj = new Object();


obj.fLId = fLId;
obj.datepicker = aDate;

var jData = JSON.stringify(obj);


alert(jData);
$.ajax({
url: 'fetchStudentAttendance/' + jData,
// data : {'empId': empId},
type: 'POST',
success: function (response) {
alert("response : " + response);
response = JSON.parse(response);

Page 40 of 52
var trHTML = '<table class="table table-hover"> <thead> <tr> <th> SNO </th>
<th> Name </th><th> Enrollment Number </th><th> Roll Number </th><th>Attendance
</th><thead></tr><tbody>';
$.each(response, function (i, item) {
var x = i + 1;
var fLId=document.getElementById("alldataId").value;

var link='<a href="viewAllAttendance?fLId='+fLId+'&sId='+item.sId+'">view


record</a>';

trHTML += '<tr id=' + item.sId + '> <td>' + x + ' </td>' + ' <td>' + item.name + '
</td> <td>' + item.enrollmentNumber + '</td><td>' + item.rollNumber + '</td><td>'
+link+'</td></tr> ';

});
trHTML += '</tbody></table>';
$('#studentData').html(trHTML);
$("#showData").css("display", "block");
},
error: function (error) {
alert("Error : " + error);
}
});
}
</script>

3. Assessment

//addTestSubjectForm
@RequestMapping("/addTestSubjectForm")
public String viewaddTestSubjectForm(Model m, HttpSession httpSession) {

System.out.println("Inside attendanceEntry action");


Map<Integer, String> allDataMap = new LinkedHashMap<Integer, String>();

List<Subject> subjectList = null;


List<Branch> branchList = null;
List<Semester> semesterList = null;

if (httpSession.getAttribute("facultyId") != null) {
int fId = Integer.parseInt(httpSession.getAttribute("facultyId").toString());
System.out.println("faculty session id: " + fId);
List<FacultyLecture> fList = facultyLectureDaoImpl.fetchAllFacultyLecture(fId);

Iterator<FacultyLecture> iterator = fList.iterator();


String allData = "";
while (iterator.hasNext()) {
FacultyLecture facultyLecture = iterator.next();

int branchId = facultyLecture.getBranchId();


Page 41 of 52
int subjectId = facultyLecture.getSubjectId();
String section = facultyLecture.getSection();
String semesterName = facultyLecture.getSemesterName();

//adding branch in to map


System.out.println("branchId: " + branchId);
branchList = branchDaoImpl.fetchAllBranchById(branchId);
if (branchList != null) {
System.out.println("list" + branchList.size());
Iterator<Branch> iterator3 = branchList.listIterator();
while (iterator3.hasNext()) {
Branch branch = iterator3.next();
allData = branch.getBranchShortName();
}
} else {
System.out.println("No branch found");
}
//adding semester in to map
semesterList = semesterDaoImpl.fetchAllSemesterById(Integer.parseInt(semesterName));
System.out.println("semesterName: " + semesterName);
if (semesterList != null) {
System.out.println("list" + semesterList.size());
Iterator<Semester> iterator4 = semesterList.listIterator();
while (iterator4.hasNext()) {
Semester semester = iterator4.next();
allData = allData + " SEM-" + semester.getSemesterName();
}
} else {
System.out.println("No semester found");
}

//adding section in to map


System.out.println("section: " + section);
String sectionValue = "";
if ("1".equals(section)) {
sectionValue = "A";

} else if ("2".equals(section)) {
sectionValue = "B";

} else if ("3".equals(section)) {
sectionValue = "C";

} else if ("4".equals(section)) {
sectionValue = "D";
}

allData = allData + "(" + sectionValue + ")";

//adding subject in to map


Page 42 of 52
System.out.println("subjectId: " + subjectId);
subjectList = subjectDaoImpl.fetchAllSubjectById(subjectId);
if (subjectList != null) {
System.out.println("subject list" + subjectList.size());
Iterator<Subject> iterator2 = subjectList.listIterator();
while (iterator2.hasNext()) {
Subject subject = iterator2.next();
allData = allData + "/ " + subject.getSubjectName();
}
} else {
System.out.println("No subejct found");
}
System.out.println("----------------------------");
System.out.println("allData: " + allData);
System.out.println("----------------------------");
allDataMap.put(facultyLecture.getFLId(), allData);
allData = "";
}
} else {
System.out.println("session id not found");
}
String facultyName = "";
if (httpSession.getAttribute("facultyName") != null) {
facultyName = httpSession.getAttribute("facultyName").toString();
} else {
facultyName = "NA";
}

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");


String today = sdf.format(new Date());
httpSession.setAttribute("today", today);;

System.out.println("today" + today);
System.out.println("facultyName: " + facultyName);

m.addAttribute("allDataMap", allDataMap);

m.addAttribute("attendance", new Attendance());


return "crm_view/addTestSubjectform";
}

@RequestMapping("/addTest")
public String viewAddTestForm(Model m, HttpSession httpSession, @RequestParam int fLId
,@RequestParam int no ,@RequestParam int duration) {

System.out.println("fLId: " + fLId);


List<Test> testList = new LinkedList<>();

if (httpSession.getAttribute("facultyId") != null) {

Page 43 of 52
FacultyLecture fl = facultyLectureDaoImpl.fetchFacultyLectureById(fLId);

TestDetail td = new TestDetail();


td.setBranchId(fl.getBranchId());
td.setSemesterId(Integer.parseInt(fl.getSemesterName()));
td.setSectionId(Integer.parseInt((fl.getSection())));
td.setDuration(duration);
int fId = Integer.parseInt(httpSession.getAttribute("facultyId").toString());
td.setfId(fId);
System.out.println("faculty session id: " + fId);
int testId = testDaoImpl.addTestDetail(td);

for(int i=0;i<no;i++)
{
testList.add(new Test());
}
Test t = new Test();
t.setTestId(testId);
t.setTestList(testList);

m.addAttribute("testList", testList);
m.addAttribute("test", t);

} else {
System.out.println("faculty session is Null");
}

return "crm_view/addTest";
}

//saveTest
@RequestMapping("/saveTest")
public String saveTest(@ModelAttribute Test testList, Model m, HttpSession httpSession) {

System.out.println("inside save Test");


if (testList != null) {
System.out.println("size: " + testList.getTestList().size());

if (httpSession.getAttribute("facultyId") != null) {

TestDetail td = new TestDetail();


td.setBranchId(1);
td.setSemesterId(2);
td.setSectionId(1);
td.setfLId(1);
int fId = Integer.parseInt(httpSession.getAttribute("facultyId").toString());
td.setfId(fId);
System.out.println("faculty session id: " + fId);
int testId = testDaoImpl.addTestDetail(td);

Page 44 of 52
for (Test t : testList.getTestList()) {
System.out.println("Test Id: " + t.getTestId());
t.setTestId(testId);
testDaoImpl.addTest(t);
}
} else {
System.out.println("faculty session is Null");
}
} else {
System.out.println("Not Test found");
}

return "redirect:/addTestSubjectForm";
}

Page 45 of 52