7.7 KiB
7.7 KiB
✅ CHECKLIST DE IMPLEMENTACIÓN - SERVIDOR DE CONTENIDO
Versión: 1.0.0
Fecha: 2025-01-06
Estado: Pendiente de Implementación
📋 FASES DE IMPLEMENTACIÓN
FASE 1: Base de Datos (Semana 1-2)
1.1 Configuración PostgreSQL
- Instalar PostgreSQL en servidor
- Crear base de datos
emerges_tes - Crear usuario con permisos
- Configurar conexión en
config/database.js
1.2 Schema y Tablas
- Ejecutar
docs/SERVER_DATABASE_SCHEMA.sql - Verificar schema
tes_contentcreado - Verificar todas las tablas creadas
- Verificar ENUMs creados
- Verificar índices creados
- Verificar triggers funcionando
- Verificar vistas creadas
1.3 Datos Iniciales
- Crear usuario administrador
- Migrar contenido inicial (opcional)
- Verificar datos en BD
Archivos:
docs/SERVER_DATABASE_SCHEMA.sqlbackend/config/database.js
FASE 2: API Pública (Semana 3-4)
2.1 Endpoint Health
GET /api/healthimplementado- Verifica conexión BD
- Retorna versión pack latest
- Testing completo
2.2 Endpoint Content Pack
GET /api/content/pack/latestimplementadoGET /api/content/pack/:versionimplementado- Soporte
If-None-Match(304 Not Modified) - Headers
ETagyCache-Control - Testing completo
2.3 Endpoints Individuales
GET /api/content/protocol/:slugimplementadoGET /api/content/guide/:slugimplementado- Incluye recursos asociados
- Incluye relaciones
- Testing completo
2.4 Endpoint Media
GET /api/content/media/:idimplementado- Soporte descarga directa
- Testing completo
2.5 Middleware
- CORS configurado (solo dominios permitidos)
- Rate limiting (100 req/min)
- Error handling global
- Logging de requests
Archivos:
server/src/api/public/health.jsserver/src/api/public/content-pack.jsserver/src/api/public/content.jsserver/src/middleware/cors.jsserver/src/middleware/rate-limit.js
FASE 3: Generador Content Pack (Semana 5)
3.1 Servicio Pack Generator
pack-generator.jsimplementadoloadPublishedContent()funcionandoloadMediaResources()funcionandocalculateLinks()funcionandocalculateHash()funcionandosavePack()funcionandoupdateLatestSymlink()funcionando
3.2 Testing
- Generar pack de prueba
- Verificar JSON válido
- Verificar hash correcto
- Verificar symlink
- Verificar tamaño razonable
Archivos:
server/src/services/pack-generator.jsserver/storage/packs/(directorio)
FASE 4: API Admin (Semana 6-7)
4.1 Autenticación
POST /api/admin/auth/loginimplementadoGET /api/admin/auth/meimplementado- JWT funcionando
- Middleware de autenticación
- Testing completo
4.2 Endpoints Contenido
GET /api/admin/content(lista con filtros)GET /api/admin/content/:id(detalle)POST /api/admin/content(crear)PUT /api/admin/content/:id(actualizar)DELETE /api/admin/content/:id(soft delete)POST /api/admin/content/:id/publish(publicar)POST /api/admin/content/:id/validate(validar)- Testing completo
4.3 Endpoints Recursos
GET /api/admin/media(lista)POST /api/admin/media/upload(upload)PUT /api/admin/media/:id(actualizar)DELETE /api/admin/media/:id(eliminar)POST /api/admin/media/:id/associate(asociar)- Testing completo
4.4 Endpoint Pack
POST /api/admin/pack/generateimplementadoGET /api/admin/pack/versionsimplementado- Testing completo
4.5 Middleware Admin
- RBAC implementado
- Rate limiting (50 req/min)
- Audit logging
- Validación de permisos
Archivos:
server/src/api/admin/auth.jsserver/src/api/admin/content.jsserver/src/api/admin/media.jsserver/src/api/admin/pack.jsserver/src/middleware/auth.jsserver/src/middleware/rbac.js
FASE 5: Panel Admin (Semana 8-10)
5.1 Autenticación UI
- Página de login
- Manejo de token JWT
- Logout
- Protección de rutas
5.2 Editor de Contenido
- Editor de protocolos (tabs: básico, pasos, checklist, recursos)
- Editor de guías (8 secciones Markdown)
- Editor de manual
- Editor de fármacos
- Preview "Modo TES"
- Guardado en servidor
5.3 Gestor de Recursos
- Lista de recursos con filtros
- Upload de imágenes/vídeos
- Edición de metadatos
- Asociación a contenido
- Visualización de recursos sin asociar
5.4 Generador de Pack
- UI para generar pack
- Selección de versión
- Indicador de progreso
- Descarga de pack generado
- Lista de versiones anteriores
5.5 Dashboard
- Estadísticas de contenido
- Contenido pendiente de validación
- Recursos sin asociar
- Actividad reciente
Archivos:
admin-panel/src/pages/(ya existe, extender)
FASE 6: Integración App (Semana 11-12)
6.1 Content Adapter
ContentAdapterinterface definidaPackContentAdapterimplementadoLocalContentAdapter(fallback) implementadoContentAdapterFactoryimplementado- Testing completo
6.2 Descarga de Pack
- Service Worker descarga pack al iniciar
- Cache en IndexedDB
- Verificación de hash
- Actualización automática
- Fallback a procedures.ts si no hay pack
6.3 Integración en App
- Hooks actualizados (useProtocol, useDrug)
- Componentes consumen desde adapter
- Enlaces bidireccionales funcionando
- Testing offline completo
Archivos:
src/services/content-pack.ts(extender)src/hooks/useContentPack.ts(extender)src/workers/content-pack-worker.ts(nuevo)
🧪 TESTING
Testing Unitario
- Servicios (pack-generator, content-service)
- Endpoints API (públicos y admin)
- Validaciones
- Cálculo de hash
Testing Integración
- Flujo completo: crear → validar → publicar → generar pack
- Descarga de pack en app
- Cache offline
- Fallback a local
Testing de Carga
- API pública (100 req/min)
- API admin (50 req/min)
- Generación de pack (tiempo < 30s)
📊 MÉTRICAS DE ÉXITO
Fase 1 (Base de Datos)
- ✅ Schema creado sin errores
- ✅ Todas las tablas funcionando
- ✅ Índices optimizados
- ✅ Datos iniciales cargados
Fase 2 (API Pública)
- ✅ Todos los endpoints funcionando
- ✅ Rate limiting activo
- ✅ CORS configurado
- ✅ Respuestas < 200ms
Fase 3 (Generador Pack)
- ✅ Pack generado correctamente
- ✅ Hash calculado correctamente
- ✅ JSON válido y optimizado
- ✅ Tiempo de generación < 30s
Fase 4 (API Admin)
- ✅ Autenticación funcionando
- ✅ RBAC funcionando
- ✅ CRUD completo
- ✅ Audit logging activo
Fase 5 (Panel Admin)
- ✅ Login funcionando
- ✅ Editores funcionando
- ✅ Upload de recursos funcionando
- ✅ Generación de pack desde UI
Fase 6 (Integración App)
- ✅ App descarga pack correctamente
- ✅ Cache offline funcionando
- ✅ Fallback a local funcionando
- ✅ Sin modificar código existente
🚫 RESTRICCIONES VERIFICADAS
- NO se modificó
src/data/procedures.ts - NO se modificó
src/data/drugs.ts - NO se modificaron rutas existentes
- NO se modificó Service Worker
- NO se modificaron componentes existentes
- Todo funciona offline-first
- Sin dependencias externas (Supabase, etc.)
📝 NOTAS DE IMPLEMENTACIÓN
Validador: _________________
Fecha: _________________
Resultado: ☐ Aprobado ☐ Pendiente ☐ Rechazado
Comentarios:
[Espacio para comentarios]
Fin del Checklist