This solution was created during Flow Academy's' Junior Java Developer course. The
task was to build a school registration system in java. The UI was the Linux Terminal.
Table of contents
Overview
Requirements
Flow Work Earth - project phase 2.
School System
The task was to build a school registration system.
Recommended classes: Name, Subject, Grade, Student, Teacher, ClassDiary
- creating queryable data in a JSON file
- when starting the program, options:
a - entering a grade in the diary
b - student search/query (displayed on the console)
i. basic info query
ii. grade point average (can also be requested broken down by subject)
c - class search/query (displayed on console)
i. basic info query
ii. grade point average (can also be requested broken down by subject)
- admission of new students, recording of data
- Absences can be recorded, this should also be entered in the diary with the student's name
and reason
- (optional) expand the relationship between teachers and subjects, it can be 1-to-many
relationship (one
a teacher can belong to several subjects and vice versa)
Creating extended functionalities is optional.
Deadline and the date of the project presentation: 2023-11-29 17:00
Main feaures of the finished project
- CRUD operations in the meaning of a school system: creating/modifying/deleting/archiving users
- different menus due to login based on the user's type: student, teacher, admin
- teachers can registrate student class diaries (absent students and the reason of absence)
- teachers can registrate marks to different subjects (available actually 10 different subject
defined as enums)
- all data - marks, absenses - is available for students or classes too
- possible to treat classes and students as archived: in this case their data are saved to
different json-files and handled by this way in the future
My process
Screenshots
Built with Java
- OOP
- Streams
- IO
- Exception handling
- Collections (Map, List)
- JSON serialization-deserialization
What I learned
In this project phase one of the most important skills was to order the different features by
importance, because there was only 2 weeks for it. It was also beneficial for practicing time
management as well. The solid fundementals of using JSON-s was one of the biggest technical
challenge due to the numerous classes. After the first project phase (where I made a minesweeper
application with 2 of my classmates together) this time I put the emphasize on to create clean code
too.
Continued development
The application was made during the course, where the used language was hungarian, for this reason I
wanted to modify the program to be used as a bilingual application: therefore I have to translate
its menus and add a langauge choice option. It would be also very useful the develop and design the
application's UI to be able to used from a web-environment.
Author
Acknowledgments
I want to thank all the mentors for giving tips and good advices about how to build up this system
during the consultation occasions.