- Eliminada ruta duplicada /sebastian/sumas (código muerto) - Removido topic 'sumas' del engine (reemplazado por 'matematicas') - Creado docker-compose.yml (PostgreSQL + app, 1 comando install) - Dockerfile: copiado prisma CLI al runner stage para db push - APIs debug protegidas: 403 en producción (reset, state, seed) - Audit métodos europeos: 24 archivos corregidos al 100% - Montessori: matemática Francesca + Sebastián - Decroly: lectura, ortografía, historia, geografía, banderas - Borel-Maisonny: lectura inicial Isabella (ya existía) - Freinet: expresión escrita Sebastián (ya existía) - Validación prerequisitos: 0 rotos en contenido nuevo (157 ejercicios) - INSTALL.md: guía completa de instalación - fase4.md: documentación del overhaul - E2E: 2 tests corregidos, 61/61 pasan - TypeScript: exit 0, Build: exit 0
3.8 KiB
3.8 KiB
EduEasy — Instalación y Uso
Instalación rápida con Docker
# 1. Clonar el repositorio
git clone https://gitea.cbcren.online/renato97/edueasy.git
cd edueasy
# 2. Levantar todo (app + base de datos)
docker compose up -d
# 3. Verificar que está corriendo
curl http://localhost:3000
La app queda disponible en http://localhost:3000.
La base de datos PostgreSQL en http://localhost:5432.
Variables de entorno
| Variable | Default | Descripción |
|---|---|---|
DATABASE_URL |
postgresql://edueasy:edueasy_pass@db:5432/edueasy |
URL de PostgreSQL |
NEXTAUTH_SECRET |
change-me-in-production |
Secreto para sesiones (CAMBIAR en producción) |
NODE_ENV |
production |
Entorno de ejecución |
Detener
docker compose down
Detener y borrar datos
docker compose down -v
Instalación manual (sin Docker)
Requisitos
- Node.js 22+
- PostgreSQL 16+
- espeak-ng (para TTS)
# 1. Instalar dependencias
npm install
# 2. Configurar base de datos
createdb edueasy
echo 'DATABASE_URL="postgresql://edueasy:edueasy_pass@localhost:5432/edueasy?schema=public"' > .env.local
# 3. Aplicar schema
npx prisma db push
npx prisma generate
# 4. Desarrollo
npm run dev
# 5. Producción
npm run build
npm start
Perfiles de aprendizaje
| Perfil | Edad | Materias | Métodos europeos |
|---|---|---|---|
| Isabella | 4 años | Lectura (9 etapas), Números (8 etapas) | Borel-Maisonny (gesto-fonema), Montessori sensorial |
| Francesca | 6 años | Matemáticas (10 etapas), Lecturas (9 etapas), Ortografía (2 etapas) | Montessori operacional, Decroly (centros de interés) |
| Sebastián | 8 años | Matemáticas (11 etapas), Lectura (6 etapas), Historia (5 etapas), Geografía (3 etapas), Banderas (2 etapas) | Montessori avanzado, Decroly, Freinet (expresión) |
Cómo navegar
- Página principal (
/) → muestra los 3 perfiles - Seleccionar un perfil → va a
/francesca,/sebastian, o/child(Isabella) - Cada perfil muestra sus actividades
- Al tocar una actividad, empieza la sesión de ejercicios con TTS
APIs de debug (solo desarrollo)
Estas APIs solo funcionan en
NODE_ENV=development. En producción devuelven 403.
Resetear progreso de un child
curl -X POST http://localhost:3000/api/debug/reset \
-H "Content-Type: application/json" \
-d '{"childId":"..."}'
Ver estado completo de un child
curl http://localhost:3000/api/debug/state?childId=...
Sembrar ejercicios de prueba
curl -X POST http://localhost:3000/api/debug/seed \
-H "Content-Type: application/json" \
-d '{"childId":"...","profile":"FRANCESCA","topic":"matematicas","stages":[1,2],"markAllCorrect":true}'
Testing
# TypeScript
npx tsc --noEmit
# Build
npm run build
# E2E tests (Playwright)
npx playwright test
Estructura del proyecto
curriculum/ # Datos de ejercicios (generados programáticamente)
lectura/ # Isabella - lectura (9 etapas)
numeros/ # Isabella - matemática (8 etapas)
francesca/ # Francesca - matemática (10 etapas)
francesca-lectura/ # Francesca - comprensión lectora (9 etapas)
francesca-ortografia/ # Francesca - ortografía (2 etapas)
sebastian/ # Sebastián - matemática (11 etapas)
sebastian-lectura/ # Sebastián - lectura y expresión (6 etapas)
sebastian-historia/ # Sebastián - historia argentina (5 etapas)
sebastian-geografia/ # Sebastián - geografía (3 etapas)
sebastian-banderas/ # Sebastián - banderas provinciales (2 etapas)
lib/curriculum/engine.ts # Motor: carga etapas, calcula próximo ejercicio
app/api/ # APIs REST
components/ # Componentes React reutilizables
e2e/ # Tests E2E (Playwright)