Ronda 1: 5 categorías con puntos normales (100-500)
Ronda 2: 5 categorías diferentes con puntos x2 (200-1000)
Backend:
- question_service: soporta excluir categorías y multiplicador de puntos
- game_manager: trackea current_round, start_round_2() carga nuevo tablero
- game_events: emite round_started al completar ronda 1
Frontend:
- useSocket: escucha evento round_started
- Game.tsx: muestra indicador de ronda actual
- types: GameRoom incluye current_round
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Agrega sistema de locks en Redis para operaciones de sala
- add_player, remove_player y change_team ahora son atómicos
- Previene sobrescritura de estado cuando jugadores se unen simultáneamente
- Nuevo método change_player_team con lock integrado
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Añade sistema de reconexión tras refresh/cierre del navegador
- Persistencia de sesión en localStorage (3h TTL)
- Banner de reconexión en Home
- Evento rejoin_room en backend
- Nuevas categorías: Series TV, Marvel/DC, Disney, Memes, Pokémon, Mitología
- Correcciones de bugs:
- Fix: juego bloqueado al fallar robo (steal decision)
- Fix: jugador duplicado al cambiar de equipo
- Fix: rotación incorrecta de turno tras fallo
- Config: soporte para Cloudflare tunnel (allowedHosts)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- README.md: descripción general, stack, instalación rápida
- docs/API.md: referencia completa de API REST y WebSocket
- docs/ARCHITECTURE.md: arquitectura del sistema con diagramas
- docs/INSTALLATION.md: guía detallada de instalación
- backend/.env.example: plantilla de configuración
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update all code references to new name
- Rename design document
- Update package.json
- Update frontend titles and branding
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- /categories: Query categories from database instead of hardcoded list
- /today-questions: Query approved questions with date_active = today
- /question/{id}: Query specific question from database
- /board/{room_code}: Load board from database if not in Redis
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Sound System:
- Add soundStore with volume/mute persistence
- Add useSound hook with Web Audio API fallback
- Add SoundControl component for in-game volume adjustment
- Play sounds for correct/incorrect, steal, timer, victory/defeat
Team Chat:
- Add TeamChat component with collapsible panel
- Add team_message WebSocket event (team-only visibility)
- Store up to 50 messages per session
Emoji Reactions:
- Add EmojiReactions bar with 8 emojis
- Add ReactionOverlay with floating animations (Framer Motion)
- Add rate limiting (1 reaction per 3 seconds)
- Broadcast reactions to all players in room
Admin Monitor:
- Add Monitor page showing active rooms from Redis
- Display player counts, team composition, status
- Add ability to close problematic rooms
Admin Settings:
- Add Settings page for game configuration
- Configure points/times by difficulty, steal penalty, max players
- Store config in JSON file with service helpers
CSV Import/Export:
- Add export endpoint with optional filters
- Add import endpoint with validation and error reporting
- Add UI buttons and import result modal in Questions page
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Timer System:
- Add TimerManager service with asyncio for server-side timers
- Support steal time reduction (50% time)
- Automatic timer cancellation on answer
Question Loading:
- Add QuestionService to load daily questions from PostgreSQL
- Generate 8×5 board (categories × difficulties)
- Filter by date_active and approved status
Database Integration:
- Create GameSession in PostgreSQL when game starts
- Update scores during game and on finish
- Store db_session_id in Redis for cross-reference
Replay Integration:
- Save all game events: question_selected, answer_submitted, steal_attempted, steal_passed, game_finished
- Generate unique replay code on game finish
Achievement Integration:
- Initialize PlayerStats in Redis when joining room
- Update stats on every answer (streak, category, speed, etc.)
- Check achievements on game finish for all players
Game Finish:
- Automatic finish when all questions answered
- Manual finish by host
- Emit game_finished with winner, scores, replay_code, achievements
Phase 3 tasks completed:
- F3.1: Timer manager with asyncio
- F3.2: Question service for board loading
- F3.3: GameSession PostgreSQL integration
- F3.4: Replay event saving
- F3.5: Achievement stats tracking
- F3.6: Complete game finish flow
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Achievement System:
- Add Achievement model with condition types (streak, steal, specialist, etc.)
- Add AchievementManager service for tracking and awarding achievements
- Add Pydantic schemas for achievements (AchievementResponse, PlayerStats, etc.)
- Seed 18 achievements from design doc
- Add GET /api/game/achievements endpoint
Replay System:
- Add ReplayManager service for saving/loading game replays
- Add GET /api/replay/{code} and /api/replay/session/{id} endpoints
- Format replays for frontend consumption
Phase 2 tasks completed:
- F2.1: Achievement model and migration
- F2.2: Pydantic schemas
- F2.3: AchievementManager service
- F2.4: ReplayManager service
- F2.5: API endpoints
- F2.6: Seed 18 achievements data
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Configure Alembic for database migrations with initial schema
- Fix base.py to use lazy loading for async engine (avoids import-time issues)
- Change AI model from sonnet to haiku (claude-3-haiku-20240307)
- Fix pytest version compatibility with pytest-asyncio
- Add frontend package-lock.json
Phase 1 tasks completed:
- F1.1: Development environment (Docker, Node.js 20, Python 3.12, venv)
- F1.2: PostgreSQL with 8 categories seeded
- F1.3: Redis connection verified
- F1.4: Anthropic API configured and tested
- F1.5: Backend server + WebSocket verified
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Backend: FastAPI + Python-SocketIO + SQLAlchemy
- Models for categories, questions, game sessions, events
- AI services for answer validation and question generation (Claude)
- Room management with Redis
- Game logic with stealing mechanics
- Admin API for question management
- Frontend: React + Vite + TypeScript + Tailwind
- 5 visual themes (DRRR, Retro, Minimal, RGB, Anime 90s)
- Real-time game with Socket.IO
- Achievement system
- Replay functionality
- Sound effects per theme
- Docker Compose for deployment
- Design documentation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>