JAVA Application Project Name:
School Management System App.
1. AIM
The main aim of this project is to provide a platform for
managing attendance of students, generate
attendance reports, manage and record student details, manage the fee details of students , creating timetable etc.
Attendance is calculated at the end of each day and updated to the database,
whereas the reports are generated at the end of each month and percentage is calculated at the end of year.
With
the help of school management software project, student details and
faculty details information such as phone numbers, user-id, address, etc. can
be easily managed. The history and attendance details of each user (both
student and faculty members) can be maintained.
2. Overview
School Management
System will have main modules for proper functioning. Details of the MVC architecture that will be
used in this project will be as follow;
MVC is an architecture
that separates business logic, presentation and data.In MVC, “M” stands for Model,” V”
stands for View and “C”stands for controller. It is a systematic way to use the application
where the flow starts from the view layer (where the request is raised)
and processed in controller layer and sent to model layer to
insert data and get back the success or the failure message.In this project, we
will be using below technologies for these layers:
·
Model layer:- DAO and JDBC
·
View layer: - JSP
.
Controller
layer: - Servlet
JAVA will be
used as Business Logic Service for this project. For Testing purpose, we will
be using JUNIT since we are developing TDD code.
3. Project Modules
3.1.
User module : It has right for
creating any new entry of faculty and student details.It will be
split, based on Roles Such as Student, Teacher, Principal, Admin.All users
will have unique login Id and password, after logged into the system, user will be able to see and manage all
options like:
Student details: - This deal with the academic and personal
details of pupils.
Teacher details-It
helps to maintain the record of the teachers allot the subject and the subject
code to the particular staff member. Moreover, it also helps to provide the
facility to have a user and password to the staff members.
Admission details: -User
can take the necessary information during the admission of the pupil. It helps
to store the detail of the student.
Timetable Details: - User
make the timetable of the classes according to the days. And allot that
timetable to the staff members.
Fee Details: - Here user can manage all fee details of the students, can manage &
update all students fee details (Adding new fees detail, Edit the Existing Fees
details, View all the details of the Fees)
Attendance Details: - User
can have the accessibility to maintain the attendance record.
3.2.
Admission module: Here user can manage all formalities
regarding admission, & update the students record details
3.3
Attendance module: Here user
can manage attendance details of the students and update all student attendance
details. Monthly report of
attendance from starting of the month to the end of the month. And at the end
of the year, attendance percentage is calculated.
3.4
Fee module: Here we
can manage all fee details of the students, can manage & update all
students fee details.
2. 4.
Database : The system uses MySQL as a language for the databases.
4.1.
Tables : In the database, SQLTables
that we required to make the system are as follows:
User table: Manage all the operations of user
School table: Manage all the operation of schools
Timetable: Managing periods of the classes
Subject: Manage all the operations related to subjects.
Attendance table: Manage all the operations regarding attendance
Admission table: Manage all the operations of Admission
Fee
table: Manage all the operations
related to fee.
4.1.1.
Tables and their attributes of school Attendance management
system
User
Module: -
Column Name
|
Type
|
Default
|
Identification
|
Id
|
INTEGER
|
AUTO
GENERATED
|
PK
|
User_name
|
VARCHAR
|
NULL
|
UNQ_K
|
User_id
|
VARCHAR
|
||
Contact
|
VARCHAR
|
||
Parent_name
|
VARCHAR
|
||
Dob
|
DATE
|
||
gender
|
ENUM
|
||
Password
|
LONGTEXT
|
||
address
|
LONGTEXT
|
||
CreatedAt
|
DATE_TIME
|
||
UpdatedAt
|
DATE_TIME
|
Timetable:
-
Column Name
|
Type
|
Default
|
Identification
|
Timetable_id
|
VARCHAR
|
NULL
|
PK
|
Class_id
|
VARCHAR
|
FK
|
|
Week_day
|
ENUM
|
||
Subject_id
|
VARCHAR
|
FK
|
|
Teacher_id
|
VARCHAR
|
FK
|
|
Start_time
|
TIME
|
||
End_time
|
TIME
|
Subject
Table: -
Column Name
|
Type
|
Default
|
Identification
|
Id
|
INTEGER
|
AUTO
GENERATED
|
PK
|
Subject_name
|
VARCHAR
|
||
Class_id
|
INTEGER
|
FK
|
|
Is_expired
|
TINYINT(1)
|
||
Started_year
|
INTEGER
|
||
Ended_year
|
INTEGER
|
||
Created_at
|
TIMESTAMP
|
||
Updated_at
|
TIMESTAMP
|
Fee
Table: -
Column Name
|
Type
|
Defult
|
Identification
|
Id
|
INTEGER
|
AUTOGENERATED
|
PK
|
Amount
|
DECIMAL
|
||
Type
|
ENUM
|
||
Year
|
INTEGER
|
||
Class_id
|
INTEGER
|
FK
|
|
Created_at
|
TIMESTAMP
|
||
Updated_at
|
TIMESTAMP
|
Type (enum) –
admission ,monthly, exam, special)
School Table:
Column
|
Type
|
Default
|
Identification
|
Id
|
INTEGER
|
AUTOGENERATED
|
PK
|
School_name
|
VARCHAR
|
||
Head_id
|
INTEGER
|
FK
|
|
Principal_id
|
INTEGER
|
FK
|
|
Hhm_id(headmaster-high school)
|
INTEGER
|
FK
|
|
Phm_id(primary headmaster
|
INTEGER
|
FK
|
|
Created_at
|
TIMASTAMP
|
||
Updated_at
|
TIMESTAMP
|
Admission
Table:
Column
|
Type
|
Default
|
Identification
|
Id
|
VARCHAR
|
AUTOGENERATED
|
PK
|
Fee_id
|
INTEGER
|
FK
|
|
Class_id
|
VARCHAR
|
FK
|
|
Created_at
|
TIMESTAMP
|
||
Updated_at
|
TIMESTAMP
|
Attendance Table: -
Column
|
Type
|
Default
|
identification
|
Id
|
INTEGER
|
AUTOGENERATED
|
PK
|
Tt_id(timetable_id)
|
INTEGER
|
FK
|
|
Student_id
|
INTEGER
|
FK
|
|
Teacher_id
|
INTEGER
|
FK
|
|
Present
|
TINYINT(1)
|
||
Attendance_time
|
TIEMSTAMP
|
||
Created_at
|
TIMESTAMP
|
||
Updated_at
|
TIMESTAMP
|
Student_Admission
Table: -
Column
|
Type
|
Default
|
Identification
|
Id
|
INTEGER
|
AUTOGENERATED
|
PK
|
Student_id
|
INTEGER
|
FK
|
|
Admission_id
|
VARCHAR
|
FK
|
|
Due_date
|
TIMESTAMP
|
||
Payment_complete
|
TINYINT(1)
|
||
Created_at
|
TIMESTAMP
|
||
Updated_at
|
TIMESTAMP
|
Fees_Payment:
-
Column
|
Type
|
Default
|
Identification
|
Id
|
INTEGER
|
AUTOGENERATED
|
PK
|
Fee_id
|
INTEGER
|
FK
|
|
Student_id
|
INTEGER
|
FK
|
|
Admission_id
|
INTEGER
|
FK
|
|
Amount_paid
|
INTEGER
|
||
Payment_date
|
TIMESTAMP
|
||
Payment_mode
|
ENUM
|
||
Payment_type
|
ENUM
|
||
Card_type
|
ENUM
|
||
Created_at
|
TIMESTAMP
|
||
Updated_at
|
TIMESTAMP
|
Payment_mode : enum(offline/online) Payment_type
: cash/cheque/card/netbanking/upi Card
_type: credit card/ debit card
Classes
Table: -
Column
|
Type
|
Default
|
Identification
|
Id
|
INTEGER
|
AUTOGENERATED
|
PK
|
Name
|
VARCHAR
|
||
School _id
|
INTEGER
|
FK
|
|
Section
|
VARCHAR
|
||
Branch_id
|
INTEGER
|
FK
|
|
Teacher_id
|
INTEGER
|
FK
|
|
Created_at
|
TIMESTAMP
|
||
Updated_at
|
TIMESTAMP
|
branches
Table: -
Column
|
Type
|
Default
|
Identification
|
Id
|
INTEGER
|
AUTOGENERATED
|
PK
|
School_id
|
INTEGER
|
FK
|
|
Principal_id
|
INTEGER
|
FK
|
|
Hhm_id
|
INTEGER
|
FK
|
|
Phm_id
|
INTEGER
|
FK
|
|
Address
|
VARCHAR
|
||
Created_at
|
TIMESTAMP
|
||
Updated_at
|
TIMESTAMP
|
Role
Table: -
c
Column
|
Type
|
Default
|
Identification
|
Id
|
VARCHAR
|
AUTOGENERATED
|
PK
|
Name
|
VARCHAR
|
||
Created_at
|
TIMESTAMP
|
||
Updated_at
|
TIMESTAMP
|
5. Testing
Once code has been generated, software must be tested to
uncover as many errors as possible before delivery to customer.
The main aim of testing is to design a series of test
cases that can find errors.
Testing of software, checks whether the needed
requirements that guided its design and implementation fulfilled or not.
Testing is helpful in performing the functions of project
within an acceptable time.
Testing of software is sufficiently usable and it checks
whether the desire result/output is generated or not.
In this project, we will use JUNIT for unit testing code. Since we are developing TDD
code.
2. 6. Technology used in the project: -
CSS: CSS has been
used for all the designing part
JAVA: All the
business logic has been written in Java
JSP: All the front-end logic has been written in
JSP
MySQL: MySQL
database has been used as database for project
Servlet: Servlet is
used as controller
7.Tools used in the project: -
- Build System Management: Apache- Maven 4.0.0
- Server: Apache -Tomcat-9.0.34
- IDE: Eclipse JEE IDE (version- Eclipse 2019-12 (4.14))
- Version Controller: Git (version-2.26.0). window.1
8. Libraries
Libraries that will be used in the project is as below;
·
Junit- 4.11
·
Mysql-connector-java-8.0.20
·
Javax.sevlet-api-4.0.1
·
Javax.servlet.jsp-api-2.3.3