184 lines
4.6 KiB
Markdown
184 lines
4.6 KiB
Markdown
# ✅ CHECKLIST DE VERIFICACIÓN - ADMIN PANEL
|
|
|
|
## 🔧 CONFIGURACIÓN INICIAL
|
|
|
|
### Backend
|
|
|
|
- [ ] PostgreSQL instalado y corriendo
|
|
- [ ] Usuario `planetazuzu` creado en PostgreSQL
|
|
- [ ] Base de datos `emerges_tes` creada
|
|
- [ ] Archivo `.env` configurado en `backend/`
|
|
- [ ] Dependencias instaladas (`npm install` en `backend/`)
|
|
- [ ] Tablas creadas (`npm run db:create`)
|
|
- [ ] Usuario admin creado (`npm run seed:admin`)
|
|
- [ ] Contenido de ejemplo creado (`npm run seed:content`)
|
|
- [ ] Servidor backend inicia sin errores (`npm run dev`)
|
|
|
|
### Admin Panel
|
|
|
|
- [ ] Dependencias instaladas (`npm install` en `admin-panel/`)
|
|
- [ ] Archivo `.env` configurado
|
|
- [ ] Servidor de desarrollo inicia (`npm run dev`)
|
|
|
|
---
|
|
|
|
## 🔐 AUTENTICACIÓN
|
|
|
|
- [ ] Login funciona con credenciales por defecto
|
|
- Email: `admin@emerges-tes.local`
|
|
- Password: `Admin123!`
|
|
- [ ] Token JWT se genera correctamente
|
|
- [ ] Token se guarda en localStorage/sessionStorage
|
|
- [ ] Rutas protegidas requieren autenticación
|
|
- [ ] Logout funciona correctamente
|
|
|
|
---
|
|
|
|
## 📝 GESTIÓN DE CONTENIDO
|
|
|
|
### Crear Contenido
|
|
|
|
- [ ] Se puede crear un nuevo protocolo
|
|
- [ ] Se puede crear un nuevo checklist
|
|
- [ ] Se puede crear un nuevo fármaco
|
|
- [ ] Validación previene crear contenido incompleto
|
|
- [ ] Estado inicial es `draft`
|
|
|
|
### Editar Contenido
|
|
|
|
- [ ] Se puede editar contenido existente
|
|
- [ ] Cada edición crea una nueva versión
|
|
- [ ] Historial de versiones se actualiza
|
|
- [ ] Log de auditoría registra cambios
|
|
|
|
### Validar Contenido
|
|
|
|
- [ ] Revisor puede validar contenido
|
|
- [ ] Estado cambia a `approved` tras validación
|
|
- [ ] Super admin puede publicar contenido
|
|
- [ ] Estado cambia a `published` tras publicación
|
|
|
|
### Listar Contenido
|
|
|
|
- [ ] Lista de contenido muestra todos los items
|
|
- [ ] Filtros funcionan (tipo, nivel, estado, categoría)
|
|
- [ ] Búsqueda funciona
|
|
- [ ] Paginación funciona
|
|
|
|
---
|
|
|
|
## 📦 CONTENT PACK
|
|
|
|
- [ ] Endpoint `/api/content/pack/latest` funciona
|
|
- [ ] Retorna solo contenido con estado `published`
|
|
- [ ] Content pack incluye todos los tipos de contenido
|
|
- [ ] Hash del pack se calcula correctamente
|
|
- [ ] App puede consumir content pack
|
|
- [ ] Content pack funciona offline (cache)
|
|
|
|
---
|
|
|
|
## 🔄 VERSIONADO
|
|
|
|
- [ ] Cada cambio crea nueva versión
|
|
- [ ] Historial de versiones se muestra correctamente
|
|
- [ ] Se puede ver contenido de versión anterior
|
|
- [ ] Se puede revertir a versión anterior
|
|
- [ ] Comparación de versiones funciona
|
|
|
|
---
|
|
|
|
## 📊 AUDITORÍA
|
|
|
|
- [ ] Log de auditoría registra todas las acciones
|
|
- [ ] Log muestra usuario, acción, timestamp
|
|
- [ ] Log muestra detalles de cambios
|
|
- [ ] Log es consultable y filtrable
|
|
|
|
---
|
|
|
|
## 🧪 SEED DATA
|
|
|
|
### Checklists
|
|
|
|
- [ ] `checklist-electrodos-desa` existe
|
|
- [ ] `checklist-preparacion-intubacion` existe
|
|
- [ ] `checklist-rcp-adulto-svb` existe
|
|
- [ ] Checklists tienen items correctos
|
|
- [ ] Checklists tienen metadata correcta
|
|
|
|
### Protocolos
|
|
|
|
- [ ] `rcp-adulto-svb-extended` existe
|
|
- [ ] `shock-hemorragico-extended` existe
|
|
- [ ] Protocolos tienen pasosRapidos
|
|
- [ ] Protocolos tienen checklist integrado
|
|
- [ ] Protocolos tienen dosisInline
|
|
- [ ] Protocolos tienen fuentes
|
|
|
|
---
|
|
|
|
## 🔒 PERMISOS Y ROLES
|
|
|
|
- [ ] `super_admin` tiene acceso total
|
|
- [ ] `editor_clinico` solo puede editar protocolos/fármacos/checklists
|
|
- [ ] `editor_formativo` solo puede editar guías/manuales
|
|
- [ ] `revisor` solo puede validar
|
|
- [ ] `viewer` solo puede leer
|
|
- [ ] Permisos se aplican correctamente en API
|
|
|
|
---
|
|
|
|
## 🌐 OFFLINE Y PWA
|
|
|
|
- [ ] Content pack se cachea en localStorage
|
|
- [ ] App funciona offline con cache
|
|
- [ ] Actualizaciones se detectan cuando hay conexión
|
|
- [ ] Service Worker no se rompe
|
|
|
|
---
|
|
|
|
## 🐛 ERRORES COMUNES
|
|
|
|
### Backend no inicia
|
|
|
|
- [ ] Verificar que PostgreSQL está corriendo
|
|
- [ ] Verificar credenciales en `.env`
|
|
- [ ] Verificar que las tablas existen
|
|
- [ ] Verificar logs de error
|
|
|
|
### Login falla
|
|
|
|
- [ ] Verificar que usuario admin existe
|
|
- [ ] Verificar que password es correcto
|
|
- [ ] Verificar que JWT_SECRET está configurado
|
|
|
|
### Content pack vacío
|
|
|
|
- [ ] Verificar que hay contenido con estado `published`
|
|
- [ ] Verificar que endpoint funciona
|
|
- [ ] Verificar logs del servidor
|
|
|
|
---
|
|
|
|
## ✅ VERIFICACIÓN FINAL
|
|
|
|
- [ ] Todo el checklist está marcado
|
|
- [ ] No hay errores en consola
|
|
- [ ] No hay errores en logs del servidor
|
|
- [ ] App funciona correctamente con content pack
|
|
- [ ] App funciona offline
|
|
- [ ] No se rompió funcionalidad existente
|
|
|
|
---
|
|
|
|
## 📝 NOTAS
|
|
|
|
- Si algún item falla, documentar el error
|
|
- Verificar que las restricciones se cumplen:
|
|
- ✅ NO se modifica `procedures.ts`
|
|
- ✅ NO se modifica `drugs.ts`
|
|
- ✅ NO se rompe PWA offline
|
|
- ✅ NO se cambian rutas existentes
|
|
|