codigo0/docs/GUIA_IMPLEMENTACION_PROGRESIVA.md

5.7 KiB

🚀 GUÍA DE IMPLEMENTACIÓN PROGRESIVA - EMERGES TES

Versión: 1.0
Fecha: 2025-01-XX
Estado: Guía de Implementación Activa


🎯 PROPÓSITO

Esta guía te permite implementar el sistema de gestión de contenido de forma progresiva y segura, sin romper la app operativa existente.

Principio: Cada paso es independiente, validable y reversible.


📋 PREPARACIÓN INICIAL

Paso 0: Verificar Prerequisitos

Requisitos:

  • Node.js 18+ instalado
  • PostgreSQL 14+ instalado y corriendo
  • Acceso a la base de datos PostgreSQL
  • App operativa funcionando correctamente

Verificar:

node --version    # Debe ser 18+
psql --version    # Debe ser 14+
npm --version     # Debe estar instalado

🏗️ FASE 1: INFRAESTRUCTURA BASE

Paso 1.1: Instalar Dependencias del Backend

cd backend
npm install

Resultado esperado: Dependencias instaladas sin errores.


Paso 1.2: Configurar Variables de Entorno

  1. Crear archivo backend/.env:
cd backend
cp ENV_TEMPLATE.md .env
# Editar .env con tus credenciales reales
  1. Completar valores:
    • DB_HOST: localhost (o IP del servidor)
    • DB_PORT: 5432 (puerto por defecto PostgreSQL)
    • DB_NAME: emerges_tes
    • DB_USER: tu_usuario_postgres
    • DB_PASSWORD: tu_password_postgres

Validar:

# Probar conexión manual
psql -h localhost -U tu_usuario -d postgres -c "SELECT version();"

Paso 1.3: Crear Base de Datos y Esquema

cd backend
npm run db:create

Este comando:

  • Crea la base de datos emerges_tes si no existe
  • Ejecuta todas las migraciones SQL
  • Crea el esquema completo (tablas, índices, vistas, funciones)

Resultado esperado:

✅ Conectado a PostgreSQL
✅ Base de datos 'emerges_tes' creada
✅ Conectado a base de datos 'emerges_tes'
✅ Migración 001: Esquema creado
✅ Migración 002: Funciones y triggers creados
🎉 Base de datos configurada correctamente

Validar:

psql -h localhost -U tu_usuario -d emerges_tes -c "\dt emerges_content.*"
# Debe mostrar las tablas creadas

Paso 1.4: Migrar Contenido Inicial

cd backend
npm run migrate

Este comando:

  • Lee src/data/procedures.ts y migra protocolos
  • Lee src/data/drugs.ts y migra fármacos
  • Inserta en PostgreSQL con estado validated

Resultado esperado:

🚀 Iniciando migración de contenido...
✅ Conexión a PostgreSQL establecida
📋 Migrando X protocolos...
  ✅ rcp-adulto-svb
  ✅ rcp-adulto-sva
  ...
💊 Migrando Y fármacos...
  ✅ adrenalina
  ✅ amiodarona
  ...
🎉 Migración completada exitosamente

Validar:

psql -h localhost -U tu_usuario -d emerges_tes -c "SELECT COUNT(*) FROM emerges_content.content_items WHERE type = 'protocol';"
psql -h localhost -U tu_usuario -d emerges_tes -c "SELECT COUNT(*) FROM emerges_content.content_items WHERE type = 'drug';"

Paso 1.5: Iniciar Servidor Backend

cd backend
npm run dev

Resultado esperado:

🚀 EMERGES TES Backend API
📍 Servidor en: http://localhost:3000
📊 Health check: http://localhost:3000/health
✅ Conexión a PostgreSQL exitosa

Validar:

curl http://localhost:3000/health
# Debe devolver JSON con status: "ok"

Validación FASE 1

Checklist:

  • Base de datos creada
  • Esquema completo (7 tablas)
  • Contenido migrado (protocolos + fármacos)
  • Servidor backend corriendo
  • Health check responde correctamente
  • App operativa sigue funcionando igual (sin cambios)

Si todo está : Puedes continuar a FASE 2.

Si hay problemas: Revisar logs, verificar credenciales, consultar documentación.


🔄 FASE 2: SINCRONIZACIÓN OFFLINE (Próxima)

Estado: Pendiente de implementación

Objetivos:

  • Modificar app para cargar contenido desde API
  • Implementar cache local (IndexedDB)
  • Sincronización en background
  • Fallback robusto

IMPORTANTE: Esta fase se implementará cuando FASE 1 esté completamente validada.


📝 NOTAS IMPORTANTES

Seguridad

  • NUNCA commitear archivo .env a Git
  • Añadir backend/.env a .gitignore
  • Usar credenciales seguras en producción

Backup

Antes de migrar contenido:

# Backup de PostgreSQL
pg_dump -h localhost -U tu_usuario emerges_tes > backup_antes_migracion.sql

Rollback

Si algo sale mal:

# Restaurar backup
psql -h localhost -U tu_usuario emerges_tes < backup_antes_migracion.sql

🆘 TROUBLESHOOTING

Error: "Cannot connect to PostgreSQL"

Solución:

  1. Verificar que PostgreSQL está corriendo: sudo systemctl status postgresql
  2. Verificar credenciales en .env
  3. Verificar que el usuario tiene permisos

Error: "Database already exists"

Solución:

  • Es normal si ya ejecutaste db:create antes
  • El script no falla si la BD ya existe

Error: "Table already exists"

Solución:

  • Las migraciones usan CREATE TABLE IF NOT EXISTS
  • Si hay conflicto, revisar migraciones SQL

📚 DOCUMENTACIÓN RELACIONADA

  • docs/ARQUITECTURA_BBDD_Y_GESTION_CONTENIDO.md - Arquitectura completa
  • docs/MODELO_DATOS_CONTENIDO.md - Modelo de datos
  • docs/ROADMAP_CONTENIDO_Y_ADMIN.md - Roadmap completo

ESTADO ACTUAL

FASE 1: Infraestructura Base

  • Estructura de directorios creada
  • Scripts SQL de creación de esquema
  • Configuración de PostgreSQL
  • Scripts de migración básicos
  • Servidor Express básico
  • Pendiente: Validación con datos reales

Próximo paso: Ejecutar FASE 1 y validar que todo funciona.


Esta guía se actualiza según progreso de implementación.