CASE STUDY 04 / ACADEMIC / MICROSERVICES

University SSO — Campus Catering & Residence Platform

Academic team project

A university platform where students, staff, professors and administrators sign in once through Keycloak to use catering, student residence, reservation, subscription and claims services.

Spring Boot microservices
6
application roles
7
one sign-in for every service
SSO

Keycloak single sign-on

  1. 01One Keycloak realm for the whole platform
  2. 02A dedicated Keycloak client per microservice
  3. 03Accounts managed through the Keycloak Admin Client
  4. 04Realm roles assigned to every user
  5. 05Role-based access in each service

Problem

Campus services such as catering, the student residence, reservations and claims were separate concerns, yet students, staff, professors and administrators needed one secure account to use all of them.

Architecture

Each business domain runs as its own Spring Boot microservice registered with a Eureka discovery server. Services call each other through OpenFeign, persist data in PostgreSQL with JPA / Hibernate and document their REST APIs with OpenAPI / Swagger. An Angular application provides the interface.

  • Authentication: users, roles and Keycloak administration
  • Catering: menus, meals and meal votes
  • Residence: blocks and rooms
  • Reservations: residence and restaurant bookings with Stripe payments
  • Subscriptions: residence and restaurant subscriptions with QR codes
  • Claims: attachments, a dashboard and SMS alerts through Twilio

Single Sign-On with Keycloak

A dedicated Keycloak realm secures the whole platform. Every microservice is declared as its own Keycloak client with resource role mappings. The authentication service uses Spring Security and the Keycloak Admin Client to register accounts, update or delete them and assign realm roles, from administrators to students, staff and professors.

Features

Users book residence rooms and restaurant meals, pay through a Stripe integration in test mode, receive PDF documents, QR codes and email notifications, and file claims with attachments that trigger SMS alerts.

Engineering Details

Maven-built Spring Boot services with Lombok, Bean Validation, Thymeleaf and FreeMarker email templates, and Swagger UI to explore every API.

Tech Stack

  • Java
  • Spring Boot
  • Spring Cloud
  • Eureka
  • OpenFeign
  • Keycloak
  • Spring Security
  • JWT
  • PostgreSQL
  • Hibernate / JPA
  • Angular
  • OpenAPI / Swagger
  • Stripe
  • Twilio
  • Thymeleaf
  • Maven

NEXT PROJECT

E-story

A reading and learning platform split into Spring Boot microservices behind a Spring Cloud Gateway, with Keycloak authentication and one PostgreSQL database per service, all running in Docker Compose.