Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Student Management System (Java Swing GUI)

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


Executive Summary & System Overview

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.

Key Architectural Highlights

  • Encapsulated Models: Uses a dedicated Student class with private fields and controlled getters/setters.
  • Decoupled Data Layer: Centralized StudentManagement repository managing in-memory collections (ArrayList and nested HashMap).
  • Event-Driven Interface: Built using JFrame, JTabbedPane, JTable, and JComboBox to handle user actions dynamically.
  • Defensive Error Handling: Employs explicit input validation and numeric bounds checking via JOptionPane dialog modals to prevent runtime exceptions.

Features & Modules

1. Student Records Management

  • Add new students with auto-duplication checks on Student ID.
  • Selection-based record updating in real-time.
  • View all students in an interactive JTable.

2. Course Enrollment Module

  • Dynamic student selection using JComboBox.
  • Enrolls students into pre-defined university courses.
  • Prevents duplicate course enrollment for individual students.

3. Grade Management Module

  • Filtered course lists based on selected student.
  • Assigns and updates course grades dynamically in memory and updates UI tables instantaneously.

Program Output & System Screenshots

1. Student Records Tab

![Student Records Tab] image image

Figure 1: Main administrative portal displaying active student profiles in a JTable alongside data input controls.


2. Course Enrollment Tab

![Course Enrollment Tab] image image

Figure 2: Course enrollment panel utilizing dynamic JComboBox components to assign courses to students.


3. Grade Management Tab

![Grade Management Tab] image image

Figure 3: Grade assignment dashboard displaying real-time table updates upon grade allocation.


4. Input Validation & Error Handling

![Validation Error Dialog] image

Figure 4: Defensive programming in action—modal error dialog (JOptionPane.ERROR_MESSAGE) triggering on invalid inputs.


How to Run the Project

Prerequisites

  • JDK 11 or higher (Java 17/21 recommended)
  • An IDE such as Eclipse, IntelliJ IDEA, or NetBeans

Execution Steps

  1. Clone the repository:
    git clone [https://github.com/ImDiki/StudentManagementSystem.git]

About

# Student Management System (Java Swing GUI) A desktop-based Student Management System built with Java Swing and Object-Oriented Programming (OOP) principles.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors