Nota personal:
Este proyecto lo desarrollé como parte de un ejercicio recreativo de arquitectura y backend.
Está basado en Spring Boot y diseñado para soportar juegos multijugador en tiempo real con dos modos principales:
- Sesiones colaborativas de dibujo.
- Partidas rápidas con asignación de palabras y mecánicas de adivinanza.
No fue concebido inicialmente para producción, pero puede servir como base de aprendizaje o referencia para proyectos que requieran comunicación en tiempo real y gestión de sesiones distribuidas.
El MichoMakeup Backend es una aplicación en Spring Boot 3.5.0 que gestiona partidas multijugador de dibujo en tiempo real.
El sistema admite hasta 10 salas concurrentes, cada una con entre 2 y 6 participantes, y utiliza Redis para el manejo de estado junto con WebSockets para la comunicación en tiempo real.
Cuenta además con integración de API documentada mediante SpringDoc OpenAPI y soporte CORS para conectarse con un frontend en Angular.
- 🎨 Dibujo colaborativo en tiempo real: Sincronización de lienzo compartido entre múltiples usuarios.
- ⚡ Partidas rápidas: Sistema de asignación de palabras y mecánica de adivinanza.
- 🏠 Gestión de salas: Creación y administración de sesiones con códigos únicos y TTL automático en Redis.
- 🌐 API REST: Endpoints para operaciones estándar del sistema.
- 📖 Documentación interactiva: Generada con OpenAPI/Swagger.
- 🔗 Soporte CORS: Integración lista para aplicaciones frontend modernas.
| Tecnología | Versión | Uso principal |
|---|---|---|
| Java | 17 | Plataforma de ejecución |
| Spring Boot | 3.5.0 | Framework principal |
| Spring Data Redis | 3.5.0 | Manejo de estado distribuido |
| Spring WebSocket | 3.5.0 | Comunicación en tiempo real |
| SpringDoc OpenAPI | 2.8.8 | Generación de documentación |
| Lombok | 1.18.36 | Reducción de boilerplate |
| Maven | - | Gestión de dependencias y build |
El sistema sigue una arquitectura modular con separación clara de responsabilidades:
- Comunicación: REST APIs + WebSocket/STOMP.
- Gestión de sesiones: Redis Templates para salas, usuarios, estado del juego y datos de dibujo.
- Módulos de juego:
- Colaborativo → sesiones de dibujo compartido.
- Partidas rápidas → asignación de palabras y turnos de adivinanza.
- Configuración centralizada: CORS, Redis, WebSocket y OpenAPI definidos en clases dedicadas.
- Comunicación en tiempo real: Combinación de REST y WebSocket.
- Gestión stateless: Redis con TTL para mantener persistencia sin estado.
- Arquitectura modular: Separación de modos de juego en módulos independientes.
- Configuración flexible: Ajustable por entornos mediante configuración externa.
Requisitos previos
- Java 17
- Maven
- Redis en ejecución
# Clonar el repositorio
git clone https://github.com/https-michi/michomakeup-backend.git
# Acceder al proyecto
cd michomakeup-backend
# Compilar y ejecutar
mvn spring-boot:runLa documentación de la API estará disponible al ejecutar en: http://localhost:8080/swagger-ui.html
Si quieres conversar o necesitas ayuda para adaptarlo a tus necesidades, puedes encontrarme aquí:
- Discord:
mi00001