Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

Student Management System

JAVA PROJECT

Farhan Tahmeed Mahi & Atique Shahriar Chaklader | CSE215.3 | North South University
INTRODUCTION
As Java is an Object-Oriented Programming based language. Our project “Student
Management System” reflects as a program coded with the concept of Objects and
classes. It is a project focused in managing and organizing student information based on
the users input. As for now, it’s aim is to give teachers and faculty members to check,
save, create and rewrite data of students onto a file. This project delivers a simplified user
experience in managing data of students within an institute in the perspective of
administration. The benefits of this project are – Easy to use, has it’s own calculation
system depending on what they user wants, no limit in creating student record. Such
reliability will not cause the past records to get lost somehow, secured system; only
authorized users can access and manipulate the data.

METHODOLOGY
The project was mainly coded on Visual Studio Code using Maven, RedHat, plugins and
JVM/JDK. Some of the class files were also coded on IntelliJ Community Edition 2023.1.2.

The program was coded using Java language. Variables, Arrays, Methods, Inheritance,
Objects, Polymorphism, Encapsulation, File, and Exception Handling were used in the
project. “private” access modifiers were used in the program to keep certain data and
values safe and secured.

Library methods and built-in packages were imported in most class files. Such as-

Java Input Stream Output Stream (java.io)

❖ For exception handling such as ArrayOutOfBoundsException,


InputMismatchException. NullPointerException, NoSuchElementExcetion,
FileNotFound Exception or IOException.
❖ For reading and writing File using Java.io.File;

Java Utility classes and interfaces (java.util)

❖ For Scanner class


❖ For date and time utilities

Java built-in language package (java.lang)

❖ For Char and String based methods

PAGE 1
In addition, the class files included within the project are Main, Accounts,
CurrentAccount, Login, Student, StudentGrade, DataAnalysis, and Course. Most methods
in the class files are void so operations and tasks are carried out just by calling the
methods in the main class.
Firstly, Login, CurrentAccount, Accounts class files are to secure the records of the
management system an authorized login and sign up system was made which includes
reading and writing data in a file. Not only that, the program also ensures the user input
validity such as username, First name, Second Name, Email address, password strength,
etc. For example, during sign-up if the user provides a password with the length less than
six, or with no digits, uppercase, and lowercase it will not accept the password and
continue to ask for password again.
Secondly, the other class files – Student, StudentGrade, Course, DataAnalysis involve
Data analyzation of Student records, appending, rewriting, calculating student grades. All
of these can be done on a large scale without halting the program. Moreover, all these
data are stored in Files, so the Data which is once stored cannot be erased until removed
intentionally.
Thirdly, the Main class is also one of the classes with longest lines of codes. It involves
nested Switch-case statements which causes the program to run using the concept of
USSD. The program only exits if the user input is Zero (Digit). The options are arranged
in an organized and uncomplicated manner to help the user understand the program
easily.
Lastly, ColorEffect class is for the colors in the command prompt for some visualization
effect. Such as, an exception message would be in red color. A successful login message
will be in blue, and basic functions in white or ash. RandomTest class is for carrying out
particular tests before adding them in Main class.

For reusability and reliability on the existing codes of some classes we used Inheritance to
inherit methods and variables of parent class. Such as Login and CurrentAccount class
inherits the methods and variables of Accounts Class. The same way, StudentGrade and
Course is the child class of Student. The main class has objects or array of objects of the
methods of these classes which carries out the functionality of the program.

This program is likely to handle huge scale of data. And the importance of preserving the
data in variables until stored in file was colossal. In order to carry on with the data input
output, saving, and reading operation without halting Try Catch was used in almost every
segment of codes where the statements would likely catch a Runtime exception or
checked exception. In some cases, Try-catch-finally clauses were used. Exceptions such as
- ArrayOutOfBoundsException, InputMismatchException, NoSuchElementExcetion,
FileNotFound, and IOException were handled.

PAGE 2
UML CLASS DIAGRAM

Course
-Quiz1: double
-Quiz2: double DataAnalysis
-Quiz3: double
-Midmark: double
-Finalmark: double
+viewData() : void
-Attendancemark : double
-Marks: double +searchData(): void
-Coursename: String
-Faculty: String +ViewGradeData(): void
-CGPA: double
-Grade: String

+Accessors and Mutators


+Course(ID: long, Name: String, Grade: String, CGPA:
double)
+compareQuizMarks(): double
+getGrade(): String
+CourseInput(): void
+ calculateTotalMarks(): void
+saveGradeToFile(): void
+toString(): String

Student
StudentGrade -id: long
-name: String
-CGPA : double -Department: String
-Grade: String -Semester: String
-Email: String
+StudentGrade()
+Accessors and Mutators +Accessors and Mutators
+StudentGrade(ID: long, name: String, Grade: +Student ()
String, CGPA: double) +Student (ID: long, name: String,
+ManualStudentInput(): void Department: String, Semester: int,
+ saveData(): void Email: String)
+toString(): String + studentData(): void
+saveData(): void
+toString (): String

PAGE 3
ColorEffect
-final String BLACK_BACKGROUND:
String
Accounts --final String RED_BACKGROUND:
-Email: String String
-Password: String -final String GREEN_BACKGROUND:
-UserName: String String
-Name: String -final String YELLOW_BACKGROUND:
String
+Accessors and Mutators - final String BLUE_BACKGROUND:
+Accounts() String
+ Accounts(String Email, String Password, -final String PURPLE_BACKGROUND:
String User, String Name) String
+Accounts(String Email, String Password) -final String CYAN_BACKGROUND:
+accessor and mutators String
+checkPassword() : void -final String WHITE_BACKGROUND:
+checkEmail() : void String
+ checkUser() : void
+checkName() : void
+writeFile(): void
+toString(): String

Login
CurrentAccount -ActiveName: String
-ActiveEmail: String
+Login()
+CurrentAccount() +Accessors and Mutators
+CurrentAccount(Email: String, +Login(Email: String, Password: String, User:
Password: String, Username: String, String, Name: String)
Name: String) +Login(String Activename, String
+CurrentAccount(Email: String, ActiveEmail)
Username: String) +readFile(): void
+Time() : Void +toString(): String
+LoginPage() : String

PAGE 4
DIFFICULTIES AND ERROR
The major difficulty of the project was to work on the files and GUI. However, we did
come up with an USSD idea to run the program in the old-fashioned way. The data in file
is stored in a sequence and words are separated with space. A particular data field with
space can result in wrong values assigned to variables and the program can even crash.

The program is simple, not much error would be addressed. No custom exceptions are
thrown, exception handling is mainly dependent on exceptions that are defined within
the library classes. The program has a bug, sometimes when user choose to append a
student data, right after taking inputs and storing data in file the program crashes. We
believe it is most likely a problem in one of the methods that gets called after appending.
The methods get called as per the user’s choice in the command prompt. So not every
time this bug occurs and we lean forward to fix such minor bugs.
Also, there is no timeout. The program keeps running without a break even if there is no
user input. No way to get back to the main screen until the selected method executes
completely. By this we can tell user cannot exit while a method is running. Codes are long
and in some places objects are created even if they are never used. This is consuming
memory and may be counted as a waste of memory resource.

CONCLUSION
The program is really simple and easy to use for now with different types of logic
implemented for the viability of the program. Based on our topic which is Student
Management System almost every feature has been implemented to satisfy the usability
of the Student Management System. Basis features which would be required to manage
student data has been effectuated in the project for now.

In the future, we commit to improve this project further to make it more creative as
technology and IT evolves with their innovations. We are planning to transform this
USSD based program to GUI with some modish and easy-to-use UIX designs. Not only
that, we have plans to make the program free to use after developing the understanding
of webpages. Funding will be convened through ads in the app to keep the application up
and running after a large scale of users join. Security, maintenance, and support will be
ensured in the future with even a larger developer team. AI will be implemented for
students to talk and interact with. Students can ask for any advice and get information
which they require. Moreover, this program will help students stay on track and regulate
their life with a smart schedule. As a result, vast improvement in their mental, physical

PAGE 5
health, and their grades. We are very ambitious about this management system, this
could have a long way to go helping students of the next generations with their CGPA,
advices, etc. Moreover, we have plans to use an algorithm for finding the best
motivational factors from all across the internet for the students.

Our project’s main purpose is to help the students manage their hectic life, the
administrators managing the records easily, and to keep an eye on student’s tracks to
point out their flaws. Their well development would be nation’s power and ultimate
growth of the country.

PAGE 6

You might also like