# EduEasy — Instalación y Uso ## Instalación rápida con Docker ```bash # 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 ```bash docker compose down ``` ### Detener y borrar datos ```bash docker compose down -v ``` --- ## Instalación manual (sin Docker) ### Requisitos - Node.js 22+ - PostgreSQL 16+ - espeak-ng (para TTS) ```bash # 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 1. Página principal (`/`) → muestra los 3 perfiles 2. Seleccionar un perfil → va a `/francesca`, `/sebastian`, o `/child` (Isabella) 3. Cada perfil muestra sus actividades 4. 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 ```bash curl -X POST http://localhost:3000/api/debug/reset \ -H "Content-Type: application/json" \ -d '{"childId":"..."}' ``` ### Ver estado completo de un child ```bash curl http://localhost:3000/api/debug/state?childId=... ``` ### Sembrar ejercicios de prueba ```bash 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 ```bash # 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) ```