codigo0/admin-panel
2026-01-19 09:10:16 +01:00
..
shared/types Actualizar herramientas y contenidos 2026-01-19 09:10:16 +01:00
src Actualizar herramientas y contenidos 2026-01-19 09:10:16 +01:00
DIAGNOSTICO.md Actualizar herramientas y contenidos 2026-01-19 09:10:16 +01:00
index.html Actualizar herramientas y contenidos 2026-01-19 09:10:16 +01:00
package-lock.json Actualizar herramientas y contenidos 2026-01-19 09:10:16 +01:00
package.json Actualizar herramientas y contenidos 2026-01-19 09:10:16 +01:00
README.md Actualizar herramientas y contenidos 2026-01-19 09:10:16 +01:00
tailwind.config.js Actualizar herramientas y contenidos 2026-01-19 09:10:16 +01:00
tsconfig.json Actualizar herramientas y contenidos 2026-01-19 09:10:16 +01:00
tsconfig.node.json Actualizar herramientas y contenidos 2026-01-19 09:10:16 +01:00
vite.config.ts Actualizar herramientas y contenidos 2026-01-19 09:10:16 +01:00

🎛️ Admin Panel - EMERGES TES

Panel de administración para gestionar contenido (protocolos, guías, manual, vademécum, checklists) sin modificar el código de la app.

🏗️ Arquitectura

  • Frontend: React + Vite + TypeScript
  • Backend: Node.js + Express + PostgreSQL
  • Autenticación: JWT
  • RBAC: Roles y permisos granulares

🚀 Inicio Rápido

Backend

cd backend
npm install
npm run db:create    # Crear BD y tablas
npm run seed:admin   # Crear usuario admin
npm run seed:content # Crear contenido de ejemplo
npm run dev          # Iniciar servidor (puerto 3000)

Admin Panel

cd admin-panel
npm install
npm run dev          # Iniciar en http://localhost:5174

Credenciales por defecto

  • Email: admin@emerges-tes.local
  • Password: Admin123!
  • Role: super_admin

⚠️ IMPORTANTE: Cambiar la contraseña después del primer login.

📁 Estructura

admin-panel/
├── src/
│   ├── components/      # Componentes React
│   │   ├── dashboard/   # Dashboard principal
│   │   ├── content/     # Editores de contenido
│   │   ├── audit/       # Auditoría y versiones
│   │   └── common/      # Componentes compartidos
│   ├── pages/           # Páginas principales
│   ├── hooks/           # Custom hooks
│   ├── services/        # API services
│   └── utils/           # Utilidades
├── shared/
│   └── types/           # TypeScript types compartidos
└── package.json

🔐 Roles y Permisos

  • super_admin: Acceso total
  • editor_clinico: Editar protocolos, fármacos, checklists
  • editor_formativo: Editar guías formativas
  • revisor: Revisar y validar contenido
  • viewer: Solo lectura

📝 Funcionalidades

  • Dashboard con estadísticas
  • Biblioteca de contenido con filtros
  • Editor de Protocolo con vista previa "modo TES"
  • Editor de Checklist reutilizable
  • Editor de Guías Markdown con preview
  • Manager de Vademécum
  • Pantalla de Fuentes y Actualizaciones
  • Auditoría (logs + comparar versiones + revertir)
  • Sistema de versionado
  • Validación de contenido

🔄 Integración con App Principal

El content pack se consume como "override" del contenido local:

  1. La app intenta obtener el último pack publicado desde /api/content/pack/latest
  2. Si existe y está validado, lo usa
  3. Si no, usa los datos locales actuales (src/data/)
  4. Funciona offline usando cache del último pack

🧪 Tests

npm test              # Tests unitarios
npm run test:e2e      # Tests end-to-end
npm run test:manual   # Checklist manual de verificación