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.
- CLIENTAngularStudent, staff and admin views
- IDENTITYKeycloak SSOOne realm · a client per service
- DISCOVERYEureka · OpenFeignService registry and calls
- SERVICESSpring BootSix domain microservices
- DATAPostgreSQLJPA / Hibernate persistence
- Spring Boot microservices
- 6
- application roles
- 7
- one sign-in for every service
- SSO
Keycloak single sign-on
- 01One Keycloak realm for the whole platform
- 02A dedicated Keycloak client per microservice
- 03Accounts managed through the Keycloak Admin Client
- 04Realm roles assigned to every user
- 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
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.