This is a JavaFX-based school management application that connects to a PostgreSQL database using JDBC. The PostgreSQL database is containerized using Docker and managed through a docker-compose.yml
file. The application is packaged as a .jar
file for easy distribution and execution.
- User-friendly interface for managing school-related data.
- Manage students, teachers, classes and courses.
- View and update records (CRUD operations).
- Search and filter records with ease.
- View logs.
The database schema is structured to store and manage information related to:
- Students: Personal and academic information.
- Teachers: Personal information and subjects taught.
- Classes: Class details and student enrollments.
- Courses: Course details and class schedules.
- Grades: Student grades and assessments.
The schema is normalized to ensure efficient storage and retrieval of data, with well-defined relationships between tables.
- JavaFX: For building the desktop user interface.
- PostgreSQL: Relational database used for storing school data.
- JDBC: Java Database Connectivity to connect Java applications with the PostgreSQL database.
- Docker: Used to containerize and run the PostgreSQL database.
To run this application, ensure you have the following installed:
- Java Development Kit (JDK) 21 or later
- Docker and Docker Compose
- PostgreSQL JDBC Driver (included in the project)
-
Clone the repository:
git clone https://github.com/Vasilis-Thomas/School-Management-System.git cd School-Management-System
-
Setup PostgreSQL Database:
- Adjust the environment variables defined in
.env
that are used to setup and deploy the PostgreSQL container.
docker-compose up -d
- Adjust the environment variables defined in
-
Running the Application:
java -jar target/schoolManagementSystem.jar
👤 Θωμάς Βασίλειος
- GitHub: @Vasilis-Thomas
👤 Σαρακενίδης Νικόλαος
- GitHub: @Nikoreve