Skip to content

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.