87f52777c457271be8b40bbd64ea243b0332bc69
Clima Laboral SaaS - Fase 1
Resumen
Sistema SaaS multi-tenant con MariaDB (una base por empresa). Incluye superadmin, admin por empresa, participantes, encuestas fijas, cálculos automáticos, histórico, reportes PDF/Excel e importación de usuarios.
Conexión MariaDB
Actualmente el acceso correcto es con user_ia en 192.168.222.20 (puerto 3306).
Estructura
backend/API Node.js + Expressfrontend/UI React + Vitebackend/src/sql/scripts de base de datos
Base de datos central
Archivo: backend/src/sql/central_schema.sql
Tablas:
superadminscompanies(datos de conexión de cada empresa)start_date/end_datecontrolan vigencia de acceso por empresa
Base de datos por empresa
Archivos:
backend/src/sql/tenant_schema.sqlbackend/src/sql/seed_questions.sql
Tablas principales:
admins,users,survey_periods,dimensions,questions,survey_questions,responses,survey_results
Preparación Fase 2:
scales,question_versions,question_weights,metric_definitions,survey_rules
Flujo del sistema
- Superadmin crea empresa.
- Se genera DB de empresa, se ejecuta schema + seed, se crea admin principal.
- Admin crea medición (survey_period) y se genera snapshot en
survey_questions. - Admin activa la medición.
- Participantes responden.
- Admin cierra la medición y se calculan resultados automáticamente.
- Dashboard, histórico, PDF y Excel disponibles.
Cálculos automáticos
- Promedio por pregunta, por dimensión y global.
- Conversión a escala 0-100:
(avg - 1) / 4 * 100. - Clasificación: 0-59 Bajo, 60-79 Medio, 80-100 Alto.
- Participación: participantes únicos / total usuarios activos.
Endpoints principales
POST /auth/loginGET /superadmin/companiesPOST /superadmin/companiesGET /admin/survey-periodsPOST /admin/survey-periodsPATCH /admin/survey-periods/:id/activatePATCH /admin/survey-periods/:id/closeGET /admin/dashboardPOST /admin/users/importGET /reports/pdf/:surveyPeriodIdGET /reports/excel/:surveyPeriodIdGET /surveys/activePOST /surveys/responses
Importación de usuarios
Se espera un Excel con columnas:
- Nombre
- Departamento
- Cargo
Banco de preguntas (Excel)
Exportación e importación desde Admin:
- Archivo Excel con columnas:
question_code,dimension_code,dimension_name,text,is_active. - Si cambia el texto de una pregunta con mismo
question_code, se crea una nueva versión con fecha. - Para cambios, exporta, edita y vuelve a importar.
Versiones de encuesta
Cada set de preguntas genera un question_set_code con versión. Las mediciones se crean usando el set activo.
Importación de admins
No aplica en Fase 1. Solo se permite un admin principal por empresa, creado por Superadmin al provisionar la compañía.
Puesta en marcha (local)
- Instalar dependencias en
backend/yfrontend/. - Crear base central con
central_schema.sql. - Crear superadmin con
npm run seed:superadmin -- "Nombre" correo@dominio.com clave. - Iniciar backend y frontend.
Puertos y acceso
- Backend:
4020 - Frontend:
5373 - La UI consume la API usando la IP del host (no usa
localhost).
Nota
No se ejecutaron instalaciones por restricciones del entorno.
Description
Languages
JavaScript
95.4%
CSS
4.2%
HTML
0.4%