# ✅ 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