- Configure workspace Git repository with comprehensive .gitignore - Add Odoo as submodule for ERP reference code - Include documentation: SETUP.md, GIT-STRUCTURE.md - Add gitignore templates for projects (backend, frontend, database) - Structure supports independent repos per project/subproject level Workspace includes: - core/ - Reusable patterns, modules, orchestration system - projects/ - Active projects (erp-suite, gamilit, trading-platform, etc.) - knowledge-base/ - Reference code and patterns (includes Odoo submodule) - devtools/ - Development tools and templates - customers/ - Client implementations template 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
391 lines
11 KiB
Markdown
391 lines
11 KiB
Markdown
# DATOS DE GAMIFICACION - GAMILIT
|
|
|
|
**Versión:** 1.0.0
|
|
**Fecha:** 2025-11-29
|
|
**Fuente:** Consolidado desde orchestration/inventarios/SEEDS_INVENTORY.yml
|
|
**Estado:** PRODUCTION-READY
|
|
|
|
---
|
|
|
|
## Resumen Ejecutivo
|
|
|
|
GAMILIT implementa un sistema completo de gamificación educativa con:
|
|
- **7 Rangos Maya** (sistema de progresión jerárquica)
|
|
- **20 Achievements** (logros desbloqueables)
|
|
- **ML Coins** (moneda virtual para comodines)
|
|
- **4 Comodines** (ayudas durante ejercicios)
|
|
- **4 Leaderboards** (tablas de posiciones)
|
|
- **Sistema de Misiones** (diarias, semanales, especiales)
|
|
|
|
---
|
|
|
|
## 1. Sistema de Rangos Maya
|
|
|
|
### 1.1 Jerarquía de Rangos
|
|
|
|
Los usuarios progresan a través de **7 niveles** basados en XP acumulado:
|
|
|
|
| Nivel | Rango | XP Mínimo | XP Máximo | Bonus Subida | Multiplicador XP |
|
|
|-------|-------|-----------|-----------|--------------|------------------|
|
|
| 1 | **Novato** | 0 | 99 | - | 1.00x |
|
|
| 2 | **Aprendiz** | 100 | 299 | +50 ML | 1.05x |
|
|
| 3 | **Experto** | 300 | 599 | +100 ML | 1.10x |
|
|
| 4 | **Maestro** | 600 | 999 | +200 ML | 1.15x |
|
|
| 5 | **Sabio** | 1,000 | 1,499 | +350 ML | 1.20x |
|
|
| 6 | **Guardián** | 1,500 | 2,499 | +500 ML | 1.25x |
|
|
| 7 | **Leyenda** | 2,500 | ∞ | +1,000 ML | 1.30x |
|
|
|
|
### 1.2 Rangos Alternativos (DocumentoDeDiseño v6.5)
|
|
|
|
El documento de diseño también define rangos con nombres mayas alternativos:
|
|
|
|
| Nivel | Rango Maya | Umbral XP Mínimo | Bonus por Subida |
|
|
|-------|------------|------------------|------------------|
|
|
| 1 | **AJAW** | 0 | - |
|
|
| 2 | **NACOM** | 500 | +100 ML |
|
|
| 3 | **AH K'IN** | 1,000 | +250 ML |
|
|
| 4 | **HALACH UINIC** | 1,500 | +500 ML |
|
|
| 5 | **K'UK'ULKAN** | 1,900 | +1,000 ML |
|
|
|
|
> **Nota:** Ambas jerarquías están implementadas. Consultar ADR correspondiente para decisión final.
|
|
|
|
### 1.3 Ubicación en Base de Datos
|
|
|
|
```sql
|
|
-- Schema: gamification_system
|
|
-- Tablas:
|
|
gamification_system.maya_ranks -- Definición de rangos
|
|
gamification_system.user_ranks -- Rangos asignados a usuarios
|
|
gamification_system.user_stats -- XP y estadísticas del usuario
|
|
```
|
|
|
|
### 1.4 Seeds de Producción
|
|
|
|
```yaml
|
|
archivo: apps/database/seeds/prod/gamification_system/03-maya_ranks.sql
|
|
registros: 7
|
|
```
|
|
|
|
---
|
|
|
|
## 2. Sistema de Achievements (Logros)
|
|
|
|
### 2.1 Categorías de Logros
|
|
|
|
| Categoría | Descripción | Ejemplos |
|
|
|-----------|-------------|----------|
|
|
| **Explorador** | Descubrimiento y curiosidad | Primer ejercicio, primer módulo |
|
|
| **Maestro** | Dominio y excelencia | 100% en ejercicio, racha perfecta |
|
|
| **Colaborador** | Participación social | Unirse a equipo, ayudar a compañero |
|
|
| **Innovador** | Creatividad y originalidad | Respuesta creativa, enfoque único |
|
|
|
|
### 2.2 Logros Disponibles (20 logros demo)
|
|
|
|
Los logros se otorgan automáticamente mediante triggers cuando se cumplen las condiciones.
|
|
|
|
#### Por Progreso:
|
|
- Primer ejercicio completado
|
|
- 5 ejercicios completados
|
|
- 10 ejercicios completados
|
|
- Primer módulo completado
|
|
- Todos los módulos completados
|
|
|
|
#### Por Maestría:
|
|
- Score perfecto (100%)
|
|
- Racha de 5 correctos
|
|
- Racha de 10 correctos
|
|
- Sin usar pistas
|
|
|
|
#### Por Colaboración:
|
|
- Unirse a un equipo
|
|
- Primer desafío peer-to-peer
|
|
- Ganar desafío
|
|
|
|
#### Por Constancia:
|
|
- 3 días consecutivos
|
|
- 7 días consecutivos (semana completa)
|
|
- 30 días consecutivos (mes completo)
|
|
|
|
### 2.3 Ubicación en Base de Datos
|
|
|
|
```sql
|
|
-- Schema: gamification_system
|
|
gamification_system.achievement_categories -- Categorías
|
|
gamification_system.achievements -- Definición de logros
|
|
gamification_system.user_achievements -- Logros desbloqueados
|
|
```
|
|
|
|
### 2.4 Funciones Relevantes
|
|
|
|
```sql
|
|
gamification_system.check_and_award_achievements(user_id)
|
|
gamification_system.claim_achievement_reward(user_id, achievement_id)
|
|
```
|
|
|
|
---
|
|
|
|
## 3. Sistema de ML Coins (Monedas Lectoras)
|
|
|
|
### 3.1 Obtención de ML Coins
|
|
|
|
| Fuente | ML Coins | Frecuencia |
|
|
|--------|----------|------------|
|
|
| Ejercicio completado | 10-50 | Por ejercicio |
|
|
| Score perfecto (100%) | +20 bonus | Por ejercicio |
|
|
| Subida de rango | 50-1,000 | Por rango |
|
|
| Logro desbloqueado | 25-100 | Por logro |
|
|
| Misión completada | 50-200 | Por misión |
|
|
| Racha diaria | 10-50 | Diario |
|
|
|
|
### 3.2 Uso de ML Coins
|
|
|
|
Los ML Coins se gastan en la **Tienda de Comodines**:
|
|
|
|
| Comodín | Costo (ML) | Descripción |
|
|
|---------|------------|-------------|
|
|
| Pista | 25 | Revela parte de la respuesta |
|
|
| Visión Lectora | 50 | Tiempo extra (+30s) |
|
|
| Segunda Oportunidad | 75 | Reintentar sin penalización |
|
|
| Time Freeze | 100 | Pausar temporizador (30s) |
|
|
|
|
### 3.3 Ubicación en Base de Datos
|
|
|
|
```sql
|
|
-- Schema: gamification_system
|
|
gamification_system.user_stats -- ml_coins, ml_coins_earned_total
|
|
gamification_system.ml_coins_transactions -- Historial de transacciones
|
|
```
|
|
|
|
### 3.4 Funciones Relevantes
|
|
|
|
```sql
|
|
gamification_system.award_ml_coins(user_id, amount, reason)
|
|
gamification_system.deduct_ml_coins(user_id, amount, reason)
|
|
```
|
|
|
|
---
|
|
|
|
## 4. Sistema de Comodines (Power-ups)
|
|
|
|
### 4.1 Tipos de Comodines
|
|
|
|
| Comodín | Enum | Efecto | Duración |
|
|
|---------|------|--------|----------|
|
|
| **Pista** | `hint` | Revela parte de respuesta correcta | Instantáneo |
|
|
| **Visión Lectora** | `time_freeze` | Congela temporizador | 30 segundos |
|
|
| **Segunda Oportunidad** | `retry` | Permite reintentar ejercicio | 1 uso |
|
|
| **Skip** | `skip` | Saltar ejercicio sin penalización | 1 uso |
|
|
|
|
### 4.2 Inventario de Usuario
|
|
|
|
Cada usuario tiene un inventario de comodines:
|
|
|
|
```typescript
|
|
interface ComodinesInventory {
|
|
user_id: string;
|
|
hint_count: number; // Pistas disponibles
|
|
time_freeze_count: number; // Visión Lectora disponibles
|
|
retry_count: number; // Segunda Oportunidad disponibles
|
|
skip_count: number; // Skips disponibles
|
|
}
|
|
```
|
|
|
|
### 4.3 Ubicación en Base de Datos
|
|
|
|
```sql
|
|
-- Schema: gamification_system
|
|
gamification_system.comodines_inventory -- Inventario por usuario
|
|
gamification_system.active_boosts -- Comodines activos
|
|
gamification_system.inventory_transactions -- Historial de uso
|
|
gamification_system.comodin_usage_log -- Log de uso
|
|
gamification_system.comodin_usage_tracking -- Tracking detallado
|
|
|
|
-- ENUM
|
|
comodin_type: {time_freeze, hint, retry, skip}
|
|
```
|
|
|
|
---
|
|
|
|
## 5. Sistema de Leaderboards
|
|
|
|
### 5.1 Tipos de Leaderboards
|
|
|
|
| Leaderboard | Métrica | Alcance |
|
|
|-------------|---------|---------|
|
|
| **Global XP** | total_xp | Toda la plataforma |
|
|
| **ML Coins** | ml_coins_earned_total | Toda la plataforma |
|
|
| **Streaks** | current_streak | Toda la plataforma |
|
|
| **Por Mecánica** | score por exercise_type | Por tipo de ejercicio |
|
|
|
|
### 5.2 Vistas Materializadas
|
|
|
|
```sql
|
|
-- Vistas para performance
|
|
gamification_system.leaderboard_global -- Top global
|
|
gamification_system.leaderboard_classroom -- Por aula
|
|
gamification_system.leaderboard_weekly -- Semanal
|
|
gamification_system.leaderboard_mechanic -- Por mecánica
|
|
```
|
|
|
|
### 5.3 Ubicación en Base de Datos
|
|
|
|
```sql
|
|
gamification_system.leaderboard_metadata -- Configuración de leaderboards
|
|
```
|
|
|
|
---
|
|
|
|
## 6. Sistema de Misiones
|
|
|
|
### 6.1 Tipos de Misiones
|
|
|
|
| Tipo | Reinicio | Ejemplos |
|
|
|------|----------|----------|
|
|
| **Diarias** | Cada día a 00:00 | Completar 3 ejercicios, Obtener 100 XP |
|
|
| **Semanales** | Cada lunes | Completar 1 módulo, Racha de 5 días |
|
|
| **Especiales** | Por evento | Evento de temporada, Desafío especial |
|
|
|
|
### 6.2 Objetivos de Misiones
|
|
|
|
```yaml
|
|
objective_types:
|
|
- complete_exercises # Completar N ejercicios
|
|
- correct_streak # Racha de N correctos
|
|
- earn_xp # Obtener N XP
|
|
- use_comodines # Usar N comodines
|
|
- daily_streak # N días consecutivos
|
|
- perfect_scores # N scores perfectos
|
|
- complete_modules # Completar N módulos
|
|
- explore_modules # Explorar N módulos
|
|
```
|
|
|
|
### 6.3 Ubicación en Base de Datos
|
|
|
|
```sql
|
|
-- Schema: gamification_system
|
|
gamification_system.missions -- Definición de misiones
|
|
|
|
-- Schema: progress_tracking
|
|
progress_tracking.scheduled_missions -- Misiones asignadas a usuarios
|
|
```
|
|
|
|
### 6.4 Triggers de Actualización
|
|
|
|
Ver `docs/sistema-recompensas/07-CORRECCION-SISTEMA-MISIONES.md` para los 8 triggers implementados:
|
|
- `trg_update_missions_on_exercise`
|
|
- `trg_update_missions_on_streak`
|
|
- `trg_update_missions_on_earn_xp`
|
|
- `trg_update_missions_on_use_comodines`
|
|
- `trg_update_missions_on_daily_streak`
|
|
- `trg_update_missions_on_perfect_scores`
|
|
- `trg_update_missions_on_complete_modules`
|
|
- `trg_update_missions_on_explore_modules`
|
|
|
|
---
|
|
|
|
## 7. Flujo de Recompensas
|
|
|
|
### 7.1 Al Completar Ejercicio
|
|
|
|
```
|
|
1. Usuario completa ejercicio
|
|
↓
|
|
2. INSERT en exercise_attempts (xp_earned, ml_coins_earned)
|
|
↓
|
|
3. TRIGGER: update_user_stats_on_exercise_complete()
|
|
↓
|
|
4. UPDATE user_stats: total_xp, ml_coins, exercises_completed
|
|
↓
|
|
5. CHECK rank promotion
|
|
↓
|
|
6. CHECK achievement conditions
|
|
↓
|
|
7. UPDATE missions progress
|
|
↓
|
|
8. Respuesta: { score, rewards: {xp, mlCoins}, rankUp?, achievements[] }
|
|
```
|
|
|
|
### 7.2 Arquitectura Dual-Table
|
|
|
|
Ver `docs/sistema-recompensas/01-ARQUITECTURA-SISTEMA.md`:
|
|
|
|
- **exercise_submissions**: Workflow (draft → submitted → graded)
|
|
- **exercise_attempts**: Recompensas (XP, ML Coins, tracking)
|
|
|
|
---
|
|
|
|
## 8. Ejercicios por Módulo
|
|
|
|
### Distribución de Contenido
|
|
|
|
| Módulo | Nombre | Ejercicios | XP Total | ML Total |
|
|
|--------|--------|------------|----------|----------|
|
|
| M1 | Comprensión Literal | 5 | 500 | 100 |
|
|
| M2 | Comprensión Inferencial | 5 | 500 | 100 |
|
|
| M3 | Comprensión Crítica | 5 | 500 | 100 |
|
|
| M4 | Textos Digitales | 5 | 500 | 100 |
|
|
| M5 | Producción Creativa | 3 | 500 | 100 |
|
|
| **Total** | | **23** | **2,500** | **500** |
|
|
|
|
### Mecánicas por Módulo
|
|
|
|
**Módulo 1 (Literal):**
|
|
- Crucigrama Científico
|
|
- Línea de Tiempo
|
|
- Completar Espacios en Blanco
|
|
- Verdadero o Falso
|
|
- Sopa de Letras (BONUS)
|
|
|
|
**Módulo 2 (Inferencial):**
|
|
- Detective Textual
|
|
- Construcción de Hipótesis
|
|
- Predicción Narrativa
|
|
- Puzzle de Contexto
|
|
- Rueda de Inferencias
|
|
|
|
**Módulo 3 (Crítica):**
|
|
- Tribunal de Opiniones
|
|
- Debate Digital
|
|
- Análisis de Fuentes
|
|
- Podcast Argumentativo
|
|
- Matriz de Perspectivas
|
|
|
|
**Módulo 4 (Digital):** 5 ejercicios (Ver DocumentoDeDiseño v6.5)
|
|
|
|
**Módulo 5 (Creativo):** 3 opciones A/B/C (Ver DocumentoDeDiseño v6.5)
|
|
|
|
---
|
|
|
|
## 9. Referencias
|
|
|
|
### Documentación Relacionada
|
|
|
|
- [DocumentoDeDiseño_Mecanicas_GAMILIT_v6_1.md](./DocumentoDeDiseño_Mecanicas_GAMILIT_v6_1.md) - Especificación completa
|
|
- [docs/sistema-recompensas/01-ARQUITECTURA-SISTEMA.md](../sistema-recompensas/01-ARQUITECTURA-SISTEMA.md) - Arquitectura
|
|
- [docs/sistema-recompensas/07-CORRECCION-SISTEMA-MISIONES.md](../sistema-recompensas/07-CORRECCION-SISTEMA-MISIONES.md) - Misiones
|
|
|
|
### Seeds de Producción
|
|
|
|
```
|
|
apps/database/seeds/prod/gamification_system/
|
|
├── 01-achievement_categories.sql
|
|
├── 02-leaderboard_metadata.sql
|
|
├── 03-maya_ranks.sql
|
|
├── 04-achievements.sql
|
|
├── 05-user_stats.sql
|
|
├── 06-user_ranks.sql
|
|
├── 07-ml_coins_transactions.sql
|
|
├── 08-user_achievements.sql
|
|
└── 09-comodines_inventory.sql
|
|
```
|
|
|
|
### Inventarios de Orchestration
|
|
|
|
- `orchestration/inventarios/SEEDS_INVENTORY.yml` - Inventario completo de seeds
|
|
- `orchestration/inventarios/DATABASE_INVENTORY.yml` - Estado de BD
|
|
|
|
---
|
|
|
|
**Última actualización:** 2025-11-29
|
|
**Mantenido por:** Architecture-Analyst
|