This application was developed as part of an Object-Oriented Programming (POA) group project at EIDD.
It provides teachers with a simple and visual tool to manage classroom layouts, track students, add remarks, and take personal notes.
- Create teachers and their associated classes
- Dedicated interface for each teacher
- Easy navigation between screens
- Configure the number of rows (8 tables per row)
- Assign students to tables
- Move students easily using drag-and-drop
- Automatic reset when redesigning the layout
- Add students and assign them to a table
- Delete students
- Random student selection
- Student list with absence marking (red text)
- Double-click a student to open their remark panel
- Add free or predefined remarks
- Delete existing remarks
- Dedicated panel for the teacher's personal notes
- The entire model (teachers, classes, students, remarks…) is saved in JSON on exit
- Reloaded automatically at application startup
The project follows the MVC architecture:
- Model: Professeur, Classe, Eleve, Remarque, GestionnaireClasses, Modele
- View: Frame, PanelProf, PanelClasse, PanelRemarque, PanelProfNotes, PanelFond
- Controller: Manages interactions and synchronization between model and view
| Pattern | Location | Purpose |
|---|---|---|
| MVC | Entire project | Separates logic, data, and UI |
| Observer (indirect via Swing repainting) | Swing automatically refreshes UI components when the model changes | Provides reactive updates without manually implementing the Observer interface |
| Factory (partial) | Centralized methods for creating objects | Simplifies object instantiation |
| Mediator | Controller | Coordinates interactions between UI components |
- Java 17
- Swing / AWT for the user interface
- Log4J 2 for logging
- JSON (org.json) for data state persistence with automatic load/save at application start/exit
- JUnit 5 (planned for unit testing)
src/
├── controleur/
│ └── Controleur.java
├── modele/
│ ├── Classe.java
│ ├── Eleve.java
│ ├── Professeur.java
│ ├── Remarque.java
│ ├── GestionnaireClasses.java
│ ├── Modele.java
│ └── JsonManager.java
└── vue/
├── Frame.java
├── PanelClasse.java
├── PanelProf.java
├── PanelRemarque.java
├── PanelProfNotes.java
└── PanelFond.java
- Complete implementation of the classroom layout
- Student management (add, delete, random selection)
- Drag-and-drop movement system
- Student list & absence marking
- Integration of the teacher notes panel
- Improvements, UI interactions, and cleanup
- Setup of main windows and screens
- General view structure
- Image and background integration
- Implementation of the student remark system
- Initial version of classroom layout UI
- Implementation of data saving & loading (JSON persistence)
- Import the project into Eclipse, IntelliJ, or any Java IDE.
- Ensure that Log4J dependencies are available.
- Run the following class:
Controleur.main()
This project is provided strictly for educational use within the context of the EIDD POA course. Reproduction, redistribution, or reuse of this project, especially for academic evaluation by other students, is prohibited.
Thank you for using our application!