UCSS

University Course Selection System with role-based access, clash detection, and waitlist management built in Java 21.

Web ApplicationDark Theme

Tech Stack

Java 21JDBCSQLDockerIntelliJ IDEAUMLArgoUML/VisioGitHub Projects/Issues

Key Highlights

Relational schema design with ERD and normalization

JDBC connection pooling with DAO pattern

Atomic transactions with row-level locking

Weekday-aware time-conflict detection algorithm

Graph-based prerequisite validation engine

FIFO waitlist with auto-promotion system

Project Details

Web-based course selection with login/logout, browse & filter, add/drop with clash checks, capacity & FIFO waitlist, and GPA—implemented in plain Java 21 + JDBC + SQL (no Spring).

**Team & role:** Built by a team. My role: Backend & Database.

Highlights (system):

**Student:** Auth, upcoming course list & filters (code, instructor, schedule, quota), add/drop, weekly timetable, GPA view.

**Admin/Professor:** CRUD for courses/sections (quotas, prerequisites, syllabus, schedule), student record ops, grade entry.

**Rules & safety:** Time-conflict prevention, prereq/co-req checks, credit limit, block when full, FIFO waitlist auto-promotion.

**Security:** Role-based access, salted password hashing, and planned field-level encryption for sensitive data.

My contributions (backend & DB):

**Data model & integrity:** Designed relational schema (Student, Course, Section, Meeting, Enrollment, Prereq, Waitlist, etc.), keys/indexes, normalization, and ERD.

**JDBC layer:** Connection pooling, DAO pattern, and transactional workflows for add/drop/swap; atomic seat accounting with row-level locking; waitlist promotion in the same TX.

Business rules:

Clash detection: Weekday-aware time-interval overlap algorithm.

Prereq engine: Graph-based validation with minimum grade thresholds.

GPA: Letter→score mapping and weighted GPA updates on grade entry.

**API & validation:** Lightweight REST-like endpoints (framework-free), input validation, consistent error payloads; Dockerized DB.

**Docs:** Contributed to SRS/SDP/SDD/STR; produced UML (use case, activity, deployment).

**Next up:** Stronger ACID checks and deadlock-retry strategy, integration tests (e.g., Testcontainers), API docs, iCal export, ILP/CP-SAT auto-scheduler PoC, column-level encryption, and basic rate limiting.

© 2025 Hüseyin Bora Baran. All rights reserved.