Revise README for HR Platform details and structure

Updated project name and provided detailed documentation on the HR management platform, including architecture, deployment, and functionality.
This commit is contained in:
Marco Gallegos
2025-12-13 14:59:32 -06:00
committed by GitHub
parent 5e5008a4ff
commit fe8949f75b

262
README.md
View File

@@ -1 +1,261 @@
# hr_soul23 # Sistema de Gestión de Socias HR Platform
**FQDN:** `hr.soul23.cloud`
**Puerto:** `3011`
**Stack principal:** Node.js
**Despliegue:** Docker Compose
---
## 1. Descripción general
Este proyecto es una **plataforma profesional de gestión de recursos humanos (HR)** enfocada en la administración de socias y personal operativo. El sistema está diseñado para operar como un servicio web desacoplado, desplegado mediante contenedores Docker y accesible a través del subdominio `hr.soul23.cloud`.
La plataforma centraliza información crítica del personal, automatiza procesos administrativos (vacaciones, permisos) y emite eventos hacia sistemas externos mediante webhooks. Desde su diseño base, el sistema está preparado para escalar funcionalmente e integrarse con agentes de inteligencia artificial.
Este README define el **alcance funcional, técnico y operativo** del proyecto.
---
## 2. Alcance (Scope)
El sistema cubre:
* Gestión centralizada de socias.
* Importación automatizada de datos desde Google Sheets.
* Base de datos como fuente única de verdad.
* Búsqueda incremental de personal.
* Gestión de vacaciones conforme a la Ley Federal del Trabajo (México).
* Gestión de permisos.
* Emisión de eventos vía webhooks.
* Arquitectura lista para integración de control de asistencias.
Quedan fuera de este alcance inicial:
* Nómina.
* Evaluaciones de desempeño.
* Autenticación avanzada (SSO).
---
## 3. Principios técnicos
* **Node.js como runtime principal.**
* **API REST** como interfaz de comunicación.
* **Configuración sobre código** (no hardcodeo).
* **Persistencia transaccional** en base de datos.
* **Historial inmutable** de eventos.
* **Contenerización completa** para entornos reproducibles.
---
## 4. Arquitectura de alto nivel
### 4.1 Frontend
* Aplicación web.
* Consumo de API vía HTTP.
* Búsqueda incremental (autocomplete).
* Formularios dinámicos.
### 4.2 Backend (Node.js)
* Servidor HTTP escuchando en puerto **3011**.
* Framework recomendado: Express / Fastify.
* Capa de servicios para reglas de negocio.
* Capa de controladores (API).
* Capa de integración (Google Sheets, webhooks).
### 4.3 Base de datos
Entidades principales:
* Socias
* Sucursales
* Antigüedad / contratos
* Vacaciones
* Permisos
* Eventos emitidos
* Asistencias (fase futura)
---
## 5. Despliegue
### 5.1 Docker Compose
El sistema se desplegará exclusivamente mediante **Docker Compose**.
Características:
* Un contenedor para el backend Node.js.
* Un contenedor para la base de datos.
* Red interna privada.
* Variables de entorno definidas en `.env`.
El servicio Node.js expone:
* **Puerto interno:** 3011
* **Puerto externo:** 3011
---
### 5.2 Acceso
El servicio será accesible en:
```
https://hr.soul23.cloud
```
El balanceo, SSL y DNS se manejan fuera del scope de esta aplicación.
---
## 6. Importación desde Google Sheets
### Objetivo
Usar Google Sheets como **entrada temporal de datos**, no como sistema.
### Comportamiento
* Lectura vía Google Sheets API.
* Mapeo dinámico de columnas.
* Normalización de valores vacíos (ej. "en trámite").
* Identificación de registros por claves lógicas.
* Logs de sincronización.
---
## 7. Gestión de socias
Cada socia incluye:
* ID interno.
* Fecha de ingreso (campo crítico).
* Datos personales y laborales.
* Asociación a sucursal.
La fecha de ingreso gobierna la lógica de vacaciones.
---
## 8. Vacaciones
### 8.1 Marco legal
Las vacaciones se calculan conforme a la **Ley Federal del Trabajo (México)**.
La tabla de días por antigüedad:
* Existe como **configuración editable**.
* No se hardcodea.
* Puede actualizarse sin cambios de código.
---
### 8.2 Ciclo
* Cada socia inicia con 12 días en su primer ciclo.
* El ciclo se calcula desde la fecha de ingreso.
* Los días pueden tomarse en uno o varios periodos.
---
### 8.3 Caducidad
* Los días generados en un ciclo **caducan al iniciar el siguiente ciclo**.
* No existe acumulación indefinida.
El sistema debe calcular:
* Saldo disponible.
* Días consumidos.
* Días vencidos.
---
### 8.4 Registro
Cada solicitud guarda:
* Socia.
* Fechas.
* Días utilizados.
* Ciclo.
* Estado.
* Timestamp.
El historial es inmutable.
---
## 9. Permisos
* Permisos por horas o días.
* Motivo configurable.
* Historial permanente.
* Relación directa con asistencias futuras.
---
## 10. Webhooks
### 10.1 Principio
Vacaciones y permisos generan **eventos de salida**.
---
### 10.2 Endpoints
Existen únicamente dos endpoints:
* `/webhook/vacaciones/{token}`
* `/webhook/permisos/{token}`
---
### 10.3 Token
* Token aleatorio de **11 caracteres**.
* Forma parte de la URL.
* Identifica el destino.
* No es autenticación.
---
## 11. Agentes de Inteligencia Artificial
Los agentes operan sobre:
* Datos estructurados.
* Reglas configuradas.
* Historial real.
No definen reglas nuevas.
---
## 12. Seguridad
* Variables sensibles vía entorno.
* Control de acceso (fase futura).
* Bitácora de eventos.
---
## 13. Estado del proyecto
* Diseño funcional: ✅
* Diseño técnico: ✅
* Implementación: ⏳
---
## 14. Nota final
Este README es el **contrato técnico y funcional** del sistema.
Si una implementación contradice este documento, la implementación está mal.