# Proyecto Lectura Integral Aplicación educativa para navegadores + dashboard web para seguir el progreso de lectura (método Doman + Montessori + Reggio Emilia) con generación de contenido mediante un motor local (Diffusers + SD Turbo) integrado al backend NestJS. ## Estructura inicial - `app/`: webapp React + Vite (TypeScript) para el niño, pensada como PWA usable en cualquier tablet/navegador. - `backend/`: API NestJS + TypeScript con métricas, sincronización y servicio Gemini compartido. - `web/`: dashboard React (Vite + TS) con paneles de progreso y disparadores de contenido para adultos. - `content/`: plantillas de palabras, fonemas, historias y assets reutilizables. - `progreso/`: registros en Markdown con bitácora y TODOs. ## Variables de entorno - `.env`: define `IMAGE_SERVICE_URL` (ver `.env.example`) para apuntar al servicio FastAPI de generación local (por defecto `http://localhost:8001`). - `app/.env`: configura `VITE_API_BASE_URL` (por defecto `http://localhost:3000`) para que la webapp consuma las imágenes/servicios del backend. ## Próximos pasos sugeridos 1. Afinar contenido inicial (palabras, fonemas, guiones de historias) y generar assets base. 2. Conectar apps al backend (auth simple, endpoints de progreso) y compartir tipado vía paquete común. 3. Integrar cliente Gemini (texto + imagen) con caché local y panel de revisión. 4. Diseñar almacenamiento offline/sincronización en mobile + visualizaciones detalladas en web. ## Generación automática local - El backend Nest expone `/global-words` y `/global-words/:slug/image`. El primer request a cada imagen llama al servicio local (`image-service`, FastAPI + Diffusers con `stabilityai/sd-turbo`) y cachea el resultado en `content/generated/global-words/`. - Al iniciar `backend` se lanza un prefetch en background para cubrir todas las palabras pre-cargadas sin intervención manual. - La webapp PWA apunta a esas rutas via `VITE_API_BASE_URL` y muestra un reto de asociación palabra-imagen una vez que la ilustración está lista.