Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎨 MichoMakeup Backend

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.


📌 Descripción general

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.


🚀 Funcionalidades principales

  • 🎨 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.

🛠️ Pila tecnológica

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

🏗️ Arquitectura

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.

🔒 Principios clave de diseño

  • 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.

⚙️ Ejecución local

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:run

La documentación de la API estará disponible al ejecutar en: http://localhost:8080/swagger-ui.html

📬 Contacto

Si quieres conversar o necesitas ayuda para adaptarlo a tus necesidades, puedes encontrarme aquí:

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages