A Student Register in JavaFX and PostgreSQL

Michał Jurzak

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.

The administrator panel: classes on top, students below, and the queue of pending enrolment requests on the right.

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.