|
|
||
|---|---|---|
| .. | ||
| shared/types | ||
| src | ||
| DIAGNOSTICO.md | ||
| index.html | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tailwind.config.js | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
🎛️ 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:
- La app intenta obtener el último pack publicado desde
/api/content/pack/latest - Si existe y está validado, lo usa
- Si no, usa los datos locales actuales (
src/data/) - 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