codigo0/docs/CHECKLIST_IMPLEMENTACION_SERVIDOR.md

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_content creado
  • 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.sql
  • backend/config/database.js

FASE 2: API Pública (Semana 3-4)

2.1 Endpoint Health

  • GET /api/health implementado
  • Verifica conexión BD
  • Retorna versión pack latest
  • Testing completo

2.2 Endpoint Content Pack

  • GET /api/content/pack/latest implementado
  • GET /api/content/pack/:version implementado
  • Soporte If-None-Match (304 Not Modified)
  • Headers ETag y Cache-Control
  • Testing completo

2.3 Endpoints Individuales

  • GET /api/content/protocol/:slug implementado
  • GET /api/content/guide/:slug implementado
  • Incluye recursos asociados
  • Incluye relaciones
  • Testing completo

2.4 Endpoint Media

  • GET /api/content/media/:id implementado
  • 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.js
  • server/src/api/public/content-pack.js
  • server/src/api/public/content.js
  • server/src/middleware/cors.js
  • server/src/middleware/rate-limit.js

FASE 3: Generador Content Pack (Semana 5)

3.1 Servicio Pack Generator

  • pack-generator.js implementado
  • loadPublishedContent() funcionando
  • loadMediaResources() funcionando
  • calculateLinks() funcionando
  • calculateHash() funcionando
  • savePack() funcionando
  • updateLatestSymlink() 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.js
  • server/storage/packs/ (directorio)

FASE 4: API Admin (Semana 6-7)

4.1 Autenticación

  • POST /api/admin/auth/login implementado
  • GET /api/admin/auth/me implementado
  • 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/generate implementado
  • GET /api/admin/pack/versions implementado
  • 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.js
  • server/src/api/admin/content.js
  • server/src/api/admin/media.js
  • server/src/api/admin/pack.js
  • server/src/middleware/auth.js
  • server/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

  • ContentAdapter interface definida
  • PackContentAdapter implementado
  • LocalContentAdapter (fallback) implementado
  • ContentAdapterFactory implementado
  • 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