A Student Register in JavaFX and PostgreSQL
A desktop application for keeping a school’s records: students, classes, grades, and who belongs to which group. It is a JavaFX front end over a PostgreSQL database, with the object-relational mapping handled by Hibernate, and it works as a compact study of how a CRUD application hangs together end to end.
What it does
Users log in and land in a view that matches their role. An administrator manages the whole register: adding and editing students, creating classes, recording grades, and approving the requests students make to join a group. A student sees their own grades and can ask to sign in to a class, which then waits for an administrator to accept or reject it. The register can also be exported to CSV for use outside the program.
How it is built
Each screen is an FXML layout paired with its own controller, so the
windows for logging in, adding a student, recording a grade, or editing
a class are self-contained. Behind them, the tables map to JPA entities:
students, classes, and a join entity for the many-to-many enrolment
between them, keyed by a composite id. The database itself runs in
Docker, so docker compose up -d brings up PostgreSQL on
port 5432 and a pgAdmin console alongside it, and the schema is created
on first run.
Source
The Maven project, FXML layouts, and Docker setup are in the source repository.