Skip to content

A Java Swing application designed to help teachers manage classroom layouts, track students, add remarks, and take personal notes through a clear and interactive interface.

Notifications You must be signed in to change notification settings

evelin1031/project-classroom-management-app-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Classroom Management Application – Java Swing (EIDD – POA 2025)

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.


Main Features

Class Management

  • Create teachers and their associated classes
  • Dedicated interface for each teacher
  • Easy navigation between screens

Visual Classroom Layout

  • 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

Student Management

  • Add students and assign them to a table
  • Delete students
  • Random student selection
  • Student list with absence marking (red text)

Remarks & Notes

  • 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

Automatic Saving

  • The entire model (teachers, classes, students, remarks…) is saved in JSON on exit
  • Reloaded automatically at application startup

Software Architecture (MVC + Design Patterns)

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

Design Patterns Used

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

Technologies Used

  • 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)

Project Structure

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

Authors

Eve Lin

  • 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

Bastien Adivèze

  • 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)

Running the Project

  1. Import the project into Eclipse, IntelliJ, or any Java IDE.
  2. Ensure that Log4J dependencies are available.
  3. Run the following class:
Controleur.main()

License & Usage

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.

© 2025 - Eve Lin & Bastien Adivèze - EIDD - POA Project - 2025. All rights reserved.

Thank you for using our application!

About

A Java Swing application designed to help teachers manage classroom layouts, track students, add remarks, and take personal notes through a clear and interactive interface.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages