Classic Hangman word-guessing game built with modern web technologies, featuring clean architecture, bilingual support (EN/ES), and responsive design.
Juego interactivo de Hangman desarrollado con stack moderno de TypeScript, implementando arquitectura hexagonal en el backend y React en el frontend con animaciones CSS personalizadas.
- Runtime: Node.js 18+
- Framework: Express.js
- Lenguaje: TypeScript
- Base de Datos: PostgreSQL 14+
- ORM: TypeORM
- Testing: Jest + Supertest
- Validación: Joi
- Framework: React 18+
- Lenguaje: TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS
- HTTP Client: Axios
- i18n: i18next
- Testing: Vitest + React Testing Library
- Docker Desktop installed
- Docker Compose v2.0+
- Git
Windows:
start.batLinux/macOS:
chmod +x start.sh
./start.shDevelopment Mode:
docker-compose up -dProduction Mode:
docker-compose -f docker-compose.prod.yml up -dmake dev # Start development environment
make prod # Start production environment
make logs # View logs
make down # Stop all containersAfter starting, services are available at:
- Frontend (Dev): http://localhost:5173
- Frontend (Prod): http://localhost
- Backend API: http://localhost:3000
- API Health: http://localhost:3000/api/health
- Adminer (DB): http://localhost:8080
- System: PostgreSQL
- Server: postgres
- Username: hangman_user
- Password: hangman_pass
- Database: hangman_db
git clone <repository-url>
cd hangman-gamenpm run install:allcp backend/.env.example backend/.env
cp frontend/.env.example frontend/.envdocker-compose up -d postgrescd backend
npm run migrate
npm run seedcd backend
npm run devcd frontend
npm run devhangman-game/
├── backend/ # Backend con arquitectura hexagonal
│ ├── src/
│ │ ├── core/ # Lógica de negocio
│ │ ├── ports/ # Interfaces
│ │ ├── adapters/ # Implementaciones concretas
│ │ ├── config/ # Configuración
│ │ └── middleware/ # Middlewares Express
│ └── tests/ # Tests unitarios e integración
│
├── frontend/ # Frontend React
│ ├── src/
│ │ ├── components/ # Componentes React
│ │ ├── hooks/ # Custom hooks
│ │ ├── services/ # API services
│ │ ├── i18n/ # Traducciones EN/ES
│ │ └── styles/ # CSS y animaciones
│ └── tests/ # Tests de componentes
│
└── docker-compose.yml # Configuración Docker
- Objetivo: Adivinar la palabra letra por letra
- Límite: 6 intentos fallidos permitidos
- Victoria: Completar la palabra antes de agotar intentos
- Derrota: Agotar los 6 intentos sin completar la palabra
cd backend
npm test # Todos los tests
npm run test:unit # Tests unitarios
npm run test:integration # Tests de integración
npm run test:coverage # Reporte de coberturacd frontend
npm test # Tests interactivos
npm run test:coverage # Reporte de coberturaPOST /api/games/start- Iniciar nueva partidaPOST /api/games/:id/guess- Adivinar letraGET /api/games/:id- Obtener estado del juegoPOST /api/games/:id/surrender- Abandonar juegoGET /api/games/:id/history- Historial de movimientos
GET /api/words/categories- Obtener categoríasGET /api/words/random- Palabra aleatoria
GET /api/rules- Obtener reglasGET /api/tips- Tips para jugar
El juego soporta inglés (EN) y español (ES) con cambio en tiempo real:
- Detección automática del idioma del navegador
- Persistencia de preferencia en localStorage
- Todos los textos UI externalizados
- ✅ Arquitectura hexagonal (backend)
- ✅ Diseño responsive (Mobile, Tablet, Desktop)
- ✅ Animaciones suaves CSS
- ✅ Soporte multiidioma (EN/ES)
- ✅ Tests con +80% coverage
- ✅ Containerizado con Docker
- ✅ TypeScript en todo el stack
- ✅ Validaciones frontend y backend
npm run dev # Desarrollo
npm run build # Build producción
npm test # Ejecutar tests
npm run typecheck # Verificar tipos
npm run migrate:latest # Ejecutar migraciones
npm run seed # Seed de datosnpm run dev # Desarrollo
npm run build # Build producción
npm run preview # Preview de build
npm test # Tests
npm run lint # Lintingdocker-compose up # Iniciar servicios
docker-compose down # Detener servicios
docker-compose logs -f # Ver logs en tiempo realISC
Las contribuciones son bienvenidas. Por favor, abre un issue primero para discutir los cambios que te gustaría realizar.
Para problemas o preguntas, por favor abre un issue en el repositorio.
Esta carpeta contiene varios archivos de documentación de ayuda:
| Archivo | Propósito | Cuándo Usar |
|---|---|---|
INICIO_RAPIDO.md |
Guía express de 5 minutos | Primer inicio del proyecto |
CONFIGURAR_BD.md |
Setup completo de PostgreSQL | Configuración inicial de base de datos |
GUIA_INICIO_WINDOWS.md |
Instrucciones específicas para Windows | Usuarios de Windows |
APLICACION_LISTA.md |
Checklist de verificación | Validar que todo funciona |
PASOS_FINALES.md |
Últimos ajustes y despliegue | Antes de producción |
SOLUCION_FINAL.md |
Troubleshooting completo | Si encuentras problemas |
RESULTADO_FINAL.md |
Resumen del proyecto terminado | Referencia final |
Los siguientes archivos se crean automáticamente durante el desarrollo y están excluidos del repositorio (.gitignore):
*.ps1- Scripts PowerShell para Windows*.bat- Scripts batch para Windows.claude/settings.local.json- Configuración local de Claude Codenul- Archivo temporal del sistema
Nota: Estos archivos NO deben ser incluidos en commits ya que son específicos de cada máquina o generados automáticamente.
Última actualización: 2025-10-31 Estado del Proyecto: ✅ Funcional - En desarrollo activo
🤖 Desarrollado con Claude Code