Backend Engineering Project

Assignment Management System

JWT-secured REST backend with a layered Spring Boot architecture.

Overview

The Assignment Management System is an application for managing assignments through a REST API. My contribution to this project is the backend: the Spring Boot service, its security layer, its API surface and its data model. The React frontend in the repository is not my work, and this case study covers only the backend.

The backend runs on Java 21 with Spring Boot 3.5.4 and exposes JSON endpoints secured with JWT, backed by PostgreSQL through Spring Data JPA.

Backend architecture

Client

HTTP

REST API

JSON

JWT Filter

Spring Security

Controller

DTOs

Service

business rules

Repository

Spring Data JPA

PostgreSQL

persistence

Java 21

language runtime

Spring Boot 3.5.4

application framework

Hibernate

ORM

Requests pass through a JWT authentication filter before reaching controllers. Controllers translate DTOs and delegate to services, which hold the business rules; repositories handle persistence against PostgreSQL.

Technical highlights

AUTH

Authentication & security

Spring Security is configured for stateless authentication with JWT: credentials are exchanged for a signed token, and a filter validates that token on subsequent requests before the endpoint is reached.

API

REST API design

Endpoints are grouped by resource and expressed with standard HTTP semantics. Controllers exchange DTOs rather than entities, keeping the persistence model separate from the public contract.

DATA

Data persistence

Spring Data JPA with Hibernate maps entities onto PostgreSQL. Repository interfaces keep query logic declarative and out of the service layer.

STRUCTURE

Project structure

The codebase is organised into controllers, DTOs, security/JWT, models, repositories and services — each package with one clear responsibility, so a new contributor can find the right file quickly.

Technology stack

  • Java 21
  • Spring Boot 3.5.4
  • Spring Security
  • JWT
  • Spring Data JPA / Hibernate
  • PostgreSQL
  • REST APIs

Project links