WORK//04
Student Management System
A full-stack CRUD system for students, courses and departments.
- Type
- Full-stack web app
- Platform
- Web · React + Spring Boot
- Role
- Full-stack: REST API, database schema and React frontend
- Year
- 2026
Overview
A classic three-tier application done carefully: a React frontend talks to a Spring Boot REST API, which stores students, courses and departments in MySQL.
It's the kind of internal tool every college and training centre needs, and a good test of clean backend layering.
The problem
Student records kept in spreadsheets drift out of sync: the same student in two courses, departments renamed in one place but not another. A small relational app with validation fixes that.
What I built
- Student list with search and filters
- Add and edit forms with validation
- Course and department management (full CRUD)
- Each student assigned to one course and one department
Architecture & key decisions
Layered Spring Boot API
Controllers, services, repositories, entities and DTOs are kept separate, with a global exception handler that turns missing records into clean 404 responses.
Relational schema
A MySQL schema with foreign keys from students to courses and departments, shipped as schema.sql so the database can be recreated in one step.
React + Axios frontend
Pages for students, courses and departments call the API through a single Axios service, styled with Bootstrap 5.
Challenges
Keeping requests and entities apart
Request and response DTOs stop the API from leaking database entities and make validation explicit.
Outcome
A complete, documented full-stack project covering REST design, JPA and relational modelling in Java, alongside my mobile work.