Back
University ERP System

University ERP System

December 2025 · Engineering

Java Swing SQL JDBC RBAC SHA-256

A high-concurrency desktop Enterprise Resource Planning (ERP) system built in Java, designed for university academic administration with a dual-database architecture and multi-tier role access control.

Overview

University administrative systems tend to be clunky, monolithic, or completely proprietary. This project was an exercise in building something robust, well-architected, and actually pleasant to use — in pure Java + Swing, without frameworks.

Architecture

The system uses a dual-database design:

  • Auth DB — stores user credentials (hashed with SHA-256 + salt), session tokens, and role assignments. Completely isolated from academic data.
  • Academic DB — stores courses, enrollments, grades, and transcripts. Only accessible after successful authentication.

This separation ensures that a compromise of the academic database does not expose user credentials, and vice versa.

Features

  • Role-Based Access Control (RBAC) with three administrative levels: Admin > Faculty > Student
  • SHA-256 password hashing with per-user salt — no plaintext passwords stored anywhere
  • Concurrent course enrollment support for 100+ simultaneous entries using connection pooling
  • Automated grade management — GPA calculation, grade sheet generation, transcript export
  • PDF transcript generation using iText — formatted, printable academic transcripts on demand

Technical Highlights

Aspect Implementation
UI Java Swing with custom components
Database MySQL via JDBC
Auth SHA-256 + salt, session tokens
Concurrency JDBC connection pool
Export iText PDF library

Lessons Learned

Building this without an ORM or web framework forced a deep understanding of JDBC transaction management, Swing’s event dispatch thread model, and the practical tradeoffs of connection pooling under load.