La Plateforme Tracker is a Java-based school project designed to manage and visualize student data stored in a PostgreSQL database. The application offers full CRUD functionality, filterable views, and graphical data representation using JavaFX.
- Add, update, delete, and list students, each with:
- Last name
- First name
- Age
- Average grade
- Filter students by:
- Grade range
- Age range
- Name / First name (partial match)
- Display filtered student data using dynamic bar charts.
- Account creation and login
- Secure password storage (hashed with a unique salt per user)
src
├── main
│ ├── java
│ │ ├── DAO # Database access (students, users)
│ │ ├── exceptions # Custom exceptions
│ │ ├── ihmcontroller # JavaFX controllers
│ │ ├── main # Application launcher
│ │ ├── model # Data models (Student, User)
│ │ ├── searchfilter # Filtering logic
│ │ └── utils # Utilities (e.g., DB connection, hashing)
│ └── resources
│ ├── icons # App icons
│ ├── style # CSS stylesheets
│ ├── GraphPage.fxml
│ ├── LoginPage.fxml
│ ├── MainPage.fxml
│ └── RegisterPage.fxml
├── test # Unit tests
├── .env # Database credentials
├── pom.xml # Maven configuration
└── creation_db.sql # SQL script to create the database and tables
- Java JDK 17+
- Maven
- PostgreSQL
git clone https://github.com/AdelinePat/LaPlateformeTracker
cd LaPlateformeTracker- Open PostgreSQL (via pgAdmin or terminal)
- Run the creation_db.sql script located at the root of the project
Create a .env file in the root directory with the following variables:
URL=jdbc:postgresql://localhost:5432/your_database_name
USER=your_postgres_username
PASSWORD=your_postgres_password
DASHBOARD_PATH=/MainPage.fxml
REGISTER_PATH=/RegisterPage.fxml
LOGIN_PATH=/LoginPage.fxml
GRADEGRAPH_PATH=/GraphPage.fxml
mvn clean install
You can launch it directly from your IDE or with:
mvn javafx:run
The src/test folder includes unit tests for core functionalities. Run them with:
mvn test
- JavaFX
- PostgreSQL JDBC driver
- Maven
- JUnit (for testing)
Passwords are hashed with a per-user unique salt Stored securely in the database to protect user credentials
Project developed by students at [La Plateforme School] as part of a group coursework.