School Management Software

Features of this software

My School Management System performs 3 functions. 1) It stores students' personal information. 2) During exams, it grades students and prints terminal reports 3) It stores records of fee payment of students and class bills. 
I built this application in 2021. Schools that use this application wanted it in different flavors.  For example, the image above is a design for a school whose accountant was also the proprietor. This way, there needed to be only a password for the Accounting - section. However, most other schools that use this software system have the proprietor and accountant are separate persons, so I implemented passwords for Academics - section and Accounting - section.

optional interfaces of the SCHOOL MANAGEMENT SOFTWARE

Tools I used

I programmed the backend in core JAVA. Then I designed frontend using JAVAFX. I initially programmed everything in Intellij Idea Community Edition, but I later switched to Netbeans IDE. This was because it was easier to import external Jasper-report jar files into Netbeans and I needed those jar files to print terminal report of students. 
The most demanding part of the Academics - section was making sure the system was right with grade calculations. With the Accounting - section, accurate calculation of financial data was the most time consuming part, as there needed to be no bugs there.

sample source code of home interface

Main is the class that displays the application on the user's computer. This class extends the JAVAFX's Application class. Line 20 below shows the use of 'style.css' file to design the buttons and text on the first window of the software.

In the next image, class PasswordForMain contains the nodes that recieve passwords from the user. Without the user entering the passwords, he can't log into the system. PasswordForMain is a Horizontal Box (HBox) so items are placed from top to bottom.

ACADEMICS - SECTION

Each button on the screen enables you to access a specific page to perform  a specific academic work. Here I will talk about the 'add students', and 'examination' windows.

I designed the ACADEMIC SECTION to contain buttons with images. This enhances the User Experience (UX). From the code below, each button contains an image and a text. Then its added to a gridPane. The gridPane is used in javafx to hold items in a particular order. 

ADD STUDENTS 

ADD STUDENTS button displays the window where a new student can be admitted into the school. This window is partitioned. The left side is for admitting a single student. The right side is for admitting multiple students at the same time, by importing an excel sheet containing student data.

Line 40 of the source code image below begins the addition of a new student. Method newAdmissionGui() is called to display the fields to enter a new student's details. Finally, when 'save student' button is clicked,  method studentIDOperation() on line 70 of the next image is called in the background. This method gives the new student his id, class, subjects and empty terminal report.

EXAMINATION

All things exam, are performed here. Marks of students are interred or imported here, the system auto does the calculation, giving each student his respective class position, printing terminal report of students, and exporting the MASTER SHEET of the exam.

ACCOUNTING - SECTION

School fees history, revenue and expenditure of the school, students' bill, and all money related activities are taken care of here. I will show the 'pay fees', and 'revenue/expenditure' windows.

PAY FEES

This is where school fees of a student is paid. This window also stores the bills and all the receipts of each student since they were admitted to the school.

REVENUE/EXPENDITURE

the accountant enters items and their respective costs to this table in this window. The system then updates him with the total revenue and expenditure for selected date.