School System github

Java JSON Gradle

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

  1. creating queryable data in a JSON file
  2. 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)
  3. admission of new students, recording of data
  4. Absences can be recorded, this should also be entered in the diary with the student's name and reason
  5. (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

main menu for admins
more admin functions
class info site with averages of the students by subjects
UML diagram

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.