Education project
Cambridge School: REST, GraphQL and React
One data model served over REST and over GraphQL
A school's areas, offices, classrooms and staff in a Spring Boot API, with a GraphQL layer in FastAPI on top and a React frontend.
What it is about
Distributed and Parallel Programming asked for a web system for a school's buildings and staff. The model has areas, offices, classrooms and employees, and tells administrative staff apart from permanent and contract teachers.
The core is a REST API in Spring Boot. On top sits a FastAPI service with Strawberry that offers the same data as GraphQL, and a React frontend consumes the REST API.
What it does
- A REST API in Spring Boot 3 with Java 21, JPA and H2: CRUD for areas, offices, classrooms and staff, and a report of staff per area.
- Each employee belongs to an area and has an office; they can be administrative staff or teachers, and teachers are either permanent or contractors.
- A GraphQL layer with FastAPI and Strawberry that calls the REST API with httpx and exposes queries and mutations over the same data.
- A React 19 and Vite frontend with lists, forms and the report, connected to the API with Axios.
- Built in a team of three, where 18 of the project's 22 commits are mine.
Decisions and their costs
GraphQL as a layer on top, without touching the API
If the GraphQL service read the database, the logic and validations would live in two places.
In-memory H2
The API had to start without installing anything for the demo.
Repositories
Every public repository of the project, with what it holds.
- 2025Java, Spring Boot, Python, FastAPI, GraphQL, React
PDYPEngineeringSebastian-s
In distributed and parallel programming, a multiplayer bingo over TCP sockets with threads, a school system in Spring Boot with a GraphQL layer in FastAPI and React, and a Sudoku solved over RMI.
Stack
Pick a technology to see the projects that use it.








