codigo0/docs/FASE_2_PLAN_COMPLETAR.md

116 lines
3.5 KiB
Markdown

# FASE 2: BACKEND Y BASE DE DATOS - PLAN DE COMPLETACIÓN
## Estado Actual
### ✅ Ya Implementado
- **Backend Express.js** completo con estructura modular
- **Rutas API** implementadas:
- `/api/auth` - Autenticación
- `/api/content` - Gestión de contenido
- `/api/drugs` - Gestión de fármacos
- `/api/media` - Gestión de recursos multimedia
- `/api/content-pack` - Generación y entrega de Content Pack
- `/api/scorm` - Generación de paquetes SCORM
- `/api/validation` - Sistema de validación
- `/api/stats` - Estadísticas
- **Content Pack Generator** (`pack-generator.js`)
- **Migraciones de base de datos**:
- `001_create_auth_schema.sql` - Autenticación y usuarios
- `002_create_drugs_schema.sql` - Fármacos
- **Sistema de autenticación** con JWT
- **Sistema de permisos** granular
- **Modelos** (Drug.js)
### ⏳ Pendiente de Verificación/Completar
1. **Base de datos**:
- Verificar conexión
- Verificar que las migraciones se ejecutaron correctamente
- Verificar que hay datos de prueba
2. **Content Pack Generator**:
- Verificar que `loadPublishedProtocols()` funciona
- Verificar que `loadPublishedDrugs()` funciona
- Verificar que `loadPublishedGuides()` funciona (si aplica)
- Probar generación completa del pack
3. **Integración Frontend-Backend**:
- Verificar que el frontend puede consumir `/api/content-pack/latest.json`
- Verificar que `ExternalContentAdapter` carga correctamente
- Probar fallback automático
4. **Datos iniciales**:
- Migrar protocolos desde `src/data/procedures.ts` a BD
- Migrar fármacos desde `src/data/drugs.ts` a BD (ya hay seed)
- Migrar guías si aplica
## Plan de Acción
### Paso 1: Verificar Base de Datos
```bash
# Verificar conexión
cd backend
node -e "import('./config/database.js').then(m => m.testConnection())"
# Verificar migraciones
psql -U emerges_tes_user -d emerges_tes_db -c "\dt tes_content.*"
```
### Paso 2: Verificar Content Pack Generator
```bash
# Probar generación manual
cd backend
node -e "
import('./src/services/pack-generator.js').then(async (m) => {
const gen = new m.ContentPackGenerator();
const pack = await gen.generatePack();
console.log('Pack generado:', pack.metadata);
});
"
```
### Paso 3: Probar Endpoint
```bash
# Iniciar backend
cd backend
npm start
# En otra terminal, probar endpoint
curl http://localhost:3000/api/content-pack/latest.json | jq '.metadata'
```
### Paso 4: Integrar con Frontend
- Verificar que `ExternalContentAdapter` intenta cargar desde `/api/content-pack/latest.json`
- Verificar que el cache funciona
- Probar fallback cuando el backend no está disponible
### Paso 5: Migrar Datos Iniciales
- Usar scripts existentes en `backend/scripts/` para migrar contenido
- O crear nuevos scripts si es necesario
## Verificaciones Necesarias
### ✅ Checklist
- [ ] Base de datos conectada y funcionando
- [ ] Migraciones ejecutadas correctamente
- [ ] Content Pack se genera sin errores
- [ ] Endpoint `/api/content-pack/latest.json` responde correctamente
- [ ] Frontend puede cargar Content Pack
- [ ] Fallback a datos locales funciona
- [ ] Datos iniciales migrados a BD
- [ ] Todo funciona en conjunto
## Próximos Pasos Inmediatos
1. **Verificar estado de BD** - Comprobar conexión y estructura
2. **Probar Content Pack Generator** - Generar pack manualmente
3. **Probar endpoint** - Verificar que responde correctamente
4. **Integrar con frontend** - Probar carga desde la app
5. **Migrar datos** - Poblar BD con contenido inicial
---
**Estado**: En progreso
**Prioridad**: Alta
**Dependencias**: FASE 1 completada ✅