A robust, event-driven desktop application built in Java designed to transition a traditional console-based system into a fully interactive Graphical User Interface (GUI). This project is developed for CS 1102 - Computer Programming 1 (Programming Assignment Unit 7).
The Student Management System provides an administrative dashboard for managing student academic records, course enrollments, and grade assignments. Built on top of Java Swing and decoupled using Clean Architecture principles, the application isolates business logic from the user interface.
- Encapsulated Models: Uses a dedicated
Studentclass with private fields and controlled getters/setters. - Decoupled Data Layer: Centralized
StudentManagementrepository managing in-memory collections (ArrayListand nestedHashMap). - Event-Driven Interface: Built using
JFrame,JTabbedPane,JTable, andJComboBoxto handle user actions dynamically. - Defensive Error Handling: Employs explicit input validation and numeric bounds checking via
JOptionPanedialog modals to prevent runtime exceptions.
- Add new students with auto-duplication checks on Student ID.
- Selection-based record updating in real-time.
- View all students in an interactive
JTable.
- Dynamic student selection using
JComboBox. - Enrolls students into pre-defined university courses.
- Prevents duplicate course enrollment for individual students.
- Filtered course lists based on selected student.
- Assigns and updates course grades dynamically in memory and updates UI tables instantaneously.
Figure 1: Main administrative portal displaying active student profiles in a JTable alongside data input controls.
Figure 2: Course enrollment panel utilizing dynamic JComboBox components to assign courses to students.
Figure 3: Grade assignment dashboard displaying real-time table updates upon grade allocation.
Figure 4: Defensive programming in action—modal error dialog (JOptionPane.ERROR_MESSAGE) triggering on invalid inputs.
- JDK 11 or higher (Java 17/21 recommended)
- An IDE such as Eclipse, IntelliJ IDEA, or NetBeans
- Clone the repository:
git clone [https://github.com/ImDiki/StudentManagementSystem.git]






