Skip to content

MM-Robin/StudentInformationSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

Student Information System

Java · JDBC · MySQL · Swing GUI · ER Modelling

Java MySQL Swing HAW Hamburg


Overview

A Java desktop application that integrates a MySQL database into a student information management system. Built with Java Swing for the GUI and JDBC for database connectivity, the system retrieves student records and exam attempt data supervised by professors.

The project extends an existing prototype with SQL query implementation, ER schema updates to include professors, and a modified UI to display supervisor details.


Features

Feature Detail
Database integration JDBC connection to MySQL — real and dummy mode supported
Student records Query and display all students from the database
Attempt tracking Retrieve exam attempts supervised by a specific professor
Supervisor display Attempts window shows professor name, employee number, and research field
Swing GUI Desktop UI with an attempts frame for structured data display
Dummy mode Runs without a live DB connection for offline testing

Project Structure

StudentInformationSystem/
│
└── StudentInformationSystem/
    ├── src/
    │   └── student/info/system/
    │       ├── StudentInformationSystem.java  # Entry point
    │       ├── DatabaseAccessor.java          # JDBC connection & SQL queries
    │       ├── Student.java                   # Student data model
    │       ├── Attempt.java                   # Exam attempt data model
    │       └── AttemptsFrame.java             # Swing UI — attempts display
    │
    └── lib/
        └── mysql-connector-j-8.0.33.jar       # MySQL JDBC driver

Database Design

The system was extended to include a Professor entity alongside Students and Attempts:

Entity Key Attributes
Student studentID, name, programID
Program programID, name
Attempt attemptID, studentID, professorID, grade
Professor professorID, firstName, lastName, employeeNumber, researchField

Key queries implemented:

-- Retrieve all students with their program
SELECT * FROM Student_info.STUDENT
JOIN PROGRAM ON Student.programID = PROGRAM.programID;

-- Retrieve all attempts supervised by a specific professor
SELECT * FROM ATTEMPT
WHERE professorID = ?;

Setup & Run

Prerequisites: Java 8+, MySQL server, IntelliJ IDEA or Eclipse

1. Configure the database

CREATE DATABASE Student_info;
-- Run your schema setup script

2. Update connection details in DatabaseAccessor.java

String dbUrl = "jdbc:mysql://localhost:3306/Student_info";
String username = "your_user";
String password = "your_password";

3. Build and run

# Compile
javac -cp lib/mysql-connector-j-8.0.33.jar -d bin src/student/info/system/*.java

# Run
java -cp bin:lib/mysql-connector-j-8.0.33.jar student.info.system.StudentInformationSystem

Use "dummy" as the DB URL to run without a database connection.


Tech Stack

Component Technology
Language Java
Database MySQL
Connectivity JDBC (mysql-connector-j 8.0.33)
GUI Java Swing
Modelling ER Diagram · Relational Schema

Author

Mainuddin Monsur Robin M.Sc. Information and Communication Engineering — HAW Hamburg

GitHub

About

Java desktop app with MySQL JDBC integration — student records, exam attempts, professor supervision and Swing GUI

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages