Versus — Documentación
Versus es un juego de preguntas multijugador con 5 modos de juego: Survival, Precision, Binary Duel, Precision Duel y Sabotage. Las preguntas se obtienen en tiempo real mediante scrapers propios.
Servicios
| Servicio | Tecnología | Puerto (dev) |
|---|---|---|
| Frontend | Angular 21 | 4200 |
| Backend | Spring Boot 4 | 8080 |
| Base de datos | PostgreSQL 18 | 5432 |
| pgAdmin | pgAdmin 4 | 5050 |
| Scraper | Scrapy (Python) | — |
Documentación por área
-
Arquitectura
Visión general del sistema, flujos de petición y guía de despliegue.
-
Desarrollo
Configuración del entorno, comandos y flujo de trabajo Git.
-
Backend
Módulos, entidades, endpoints y diagramas de clases del API REST.
-
Frontend
Arquitectura Angular, gestión de estado con signals y guía de testing.
-
Base de datos
Esquema ER completo con todas las tablas, índices y relaciones.
-
Guía de coordinación técnica
Contratos de API entre frontend y backend. Fuente de verdad.
-
Style guide
Tokens de diseño, componentes y convenciones de CSS del frontend.
-
QA
Estrategia de testing y plan de pruebas por módulo.
-
Scraping
Spiders de Scrapy, pipeline de preguntas, deduplicación y guías para añadir nuevas fuentes.
Roadmap de sprints
| Sprint | Contenido | Estado |
|---|---|---|
| 1-2 | Auth, usuarios, preguntas, juego singleplayer, stats | ✅ |
| 3 | WebSockets, matchmaking, modos PvP | 🚧 |
| 4 | Historial, ranking, moderación, admin, scraping | 🚧 |
Funcionalidades recientes
/settings: pagina centralizada para editar username, password, avatar, notificaciones, audio y eliminar cuenta.- Avatar: galeria predefinida con confirmacion, upload PNG/JPEG con crop basico y limite de 2MB.
- Topbar: muestra username/avatar reales y XP derivado de
player_statshasta tener un campoxpdedicado. - Cuenta: soft delete con
status=DELETED,is_active=falsey anonimizacion de datos. - Logros: catalogo inicial, desbloqueo al terminar partida, toast global, grid en perfil y emblema reciente en el avatar.
Arranque rápido
# Copiar variables de entorno
cp .env.example .env
# Stack completo con hot reload
docker compose -f docker-compose.yml -f docker-compose.dev.yml up
# Solo la documentación
docker compose -f docker-compose.yml -f docker-compose.dev.yml --profile docs up docs