Proyecto de formación

Colegio Cambridge: REST, GraphQL y React

Un mismo modelo de datos servido por REST y por GraphQL

La gestión de áreas, oficinas, salones y empleados de un colegio en una API de Spring Boot, con una capa GraphQL en FastAPI encima y un frontend en React.

De qué se trata

Programación distribuida y paralela pidió un sistema web para la planta física y el personal de un colegio. El modelo tiene áreas, oficinas, salones y empleados, y distingue a los administrativos de los profesores de planta y contratistas.

El núcleo es una API REST en Spring Boot. Encima va un servicio en FastAPI con Strawberry que ofrece los mismos datos como GraphQL, y un frontend en React consume la API REST.

Qué hace

  • Una API REST en Spring Boot 3 con Java 21, JPA y H2: CRUD de áreas, oficinas, salones y empleados, y un reporte de empleados por área.
  • Cada empleado pertenece a un área y tiene una oficina; puede ser administrativo o profesor, y el profesor, de planta o contratista.
  • Una capa GraphQL con FastAPI y Strawberry que consulta la API REST con httpx y expone consultas y mutaciones sobre los mismos datos.
  • Un frontend en React 19 y Vite con listas, formularios y el reporte, conectado a la API con Axios.
  • Hecho en un equipo de tres, en el que 18 de los 22 commits del proyecto son míos.

Decisiones y sus costos

  1. GraphQL como capa encima, sin tocar la API

    Si el servicio GraphQL leyera la base, la lógica y las validaciones quedarían en dos lugares.

  2. H2 en memoria

    La API tenía que levantarse sin instalar nada para la demostración.

Repositorios

Cada repositorio público del proyecto, con lo que contiene.

  • 2025

    PDYPEngineeringSebastian-s

    En programación distribuida y paralela, un bingo multijugador por sockets TCP con hilos, un sistema escolar en Spring Boot con una capa GraphQL en FastAPI y React, y un Sudoku que resuelve por RMI.

    Java, Spring Boot, Python, FastAPI, GraphQL, React
Organización en GitHub: EngineeringSebastian-s

Stack

Elige una tecnología para ver qué proyectos la usan.