Some checks failed
CI/CD - Francia Ocupada (La Resistencia) / build-and-deploy (push) Failing after 6s
Francia Ocupada (La Resistencia)
🎮 Estado Actual: v1.4 - ESTABLE
Proyecto renombrado a "Traición en París" / "Francia Ocupada".
✅ Funcionalidades Implementadas
Backend (Socket.io + Node.js)
- ✅ Sistema de Reconexión Inteligente: Los jugadores pueden recargar la página o volver a entrar y mantienen su sesión (ID de socket actualizado en tiempo real).
- ✅ Persistencia de Partidas: Las partidas no se pierden si un jugador se desconecta brevemente.
- ✅ Control de Sesiones: Seguimiento de
matchNumberymatchResultspara estadísticas continuas en el dashboard de admin. - ✅ Lógica de Juego Completa:
- Roles ocultos y asignación aleatoria balanceada.
- Fases: Lobby, Intro, Reveal Role, Roll Call, Vote Leader, Team Building, Vote Team, Mission, Mission Reveal, Mission Result, Assassin Phase.
- Reglas especiales: 4ª misión con 7+ jug. requiere 2 fallos, 5 rechazos de líder = Victoria espía.
- Temporizadores de seguridad para votaciones de líder.
Frontend (Next.js + Tailwind + Framer Motion)
- ✅ Diseño Premium: Estética "World War II" con tipografías, colores y assets temáticos (fichas de póker, documentos secretos, mapas tácticos).
- ✅ UX Fluida: Animaciones de transición entre todas las fases.
- ✅ Feedback Visual:
- Cartas de rol específicas para cada personaje (Marlene, Capitán Philippe, Francotirador, etc.).
- Tablero táctico dinámico que muestra el progreso de la partida.
- Indicadores claros de "Tu Turno" o "Esperando al líder".
- ✅ Audio: Banda sonora y efectos de sonido integrados.
🎨 Últimas Mejoras (v1.4 - Diciembre 2025)
- 🔄 Fix Crítico: Solucionado bug donde el Líder perdía sus botones de acción al recargar la página.
- 📊 Dashboard Admin: Panel de administración mejorado con historial de partidas y estadísticas de victorias.
- 🖼️ Assets: Nuevas imágenes para roles y fondos de victoria/derrota.
- 📱 Responsividad: Mejoras en la vista móvil para la fase de "Pasando Lista" y Tablero.
🚀 Despliegue y Ejecución
Requisitos
- Docker y Docker Compose
- Node.js 18+ (para desarrollo local)
Ejecución con Docker (Producción)
# Desplegar todo el stack
./deploy.sh
El script deploy.sh se encarga de:
- Bajar los últimos cambios de
main. - Construir las imágenes con tags de versión.
- Levantar los contenedores (Client, Server, DB).
Desarrollo Local
# Servidor
cd server && npm run dev
# Cliente
cd client && npm run dev
🌐 URLs
- Juego: https://franciaocupada.martivich.es
- API: https://api.franciaocupada.martivich.es
- Dashboard Admin: (Accesible vía socket evento
admin_get_data)
📝 Ramas Git
main: Rama de producción (Estable v1.4).develop: Rama de desarrollo e integración.
👥 Roles del Juego
La Resistencia (Aliados)
- Marlene (Merlín): Conoce a los espías. Debe mantenerse oculta.
- Capitán Philippe (Percival): Conoce a Marlene (y al Agente Doble). Debe protegerla.
- Partisanos: Miembros leales de la resistencia. No saben nada.
El Eje (Alemanes/Espías)
- Francotirador (Asesino): Si los aliados ganan las 3 misiones, tiene un disparo final para matar a Marlene y robar la victoria.
- Agente Doble (Morgana): Se hace pasar por Marlene ante el Capitán Philippe.
- Comandante Schmidt (Mordred): Espía desconocido para Marlene.
- Infiltrado (Oberon): Espía que no conoce a los otros espías.
- Colaboricionistas: Espías estándar.
🔧 Stack Tecnológico
- Frontend: Next.js 14, React, TypeScript, Framer Motion, TailwindCSS
- Backend: Node.js, Express, Socket.IO, TypeScript
- Base de Datos: PostgreSQL 15
- Infraestructura: Docker, Nginx (Proxy Inverso)
Description
Languages
TypeScript
92%
Shell
7.1%
Dockerfile
0.5%
CSS
0.3%