116 lines
3.5 KiB
Markdown
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 ✅
|
||
|
|
|