Sistema de gestión de asistencia con soporte para marca biométrica, operación offline y sincronización inteligente. Desarrollado en Java + Spring Boot 3 con arquitectura modular.
Repositorio oficial: https://github.com/ThianR/Horus.git
- Java 21 instalado.
- Maven 3.8+ (configurado en el path).
- Node.js (para el frontend Vite).
- Python 3.10+ (para el microservicio de biometría).
frontend/: Cliente web SPA desarrollado con Vite.backend/: Servidor API REST (Spring Boot 3 + Java 21).python-service/: Microservicio de reconocimiento facial (FastAPI + DeepFace).data/: Base de datos local SQLite (se genera automáticamente).
La forma más sencilla de ejecutar todo el ecosistema es utilizar el script de arranque principal ubicado en la raíz del proyecto. Este script levantará el Frontend, el motor de Inteligencia Artificial y el Backend en paralelo.
- Abrir una terminal en la raíz del proyecto.
- Copiar el archivo
.env.examplecomo.envy configurar los valores requeridos. - Ejecutar el script por lotes:
.\ejecutar_sistema.bat
Una vez que el script finalice de levantar los servicios, el sistema estará disponible en:
- Frontend (Web):
http://localhost:5173 - Backend (API):
http://localhost:8000 - Biometría (IA Swagger):
http://localhost:8001/docs
- POST
/api/sincronizacion/subir-eventos- Sube un lote de marcaciones desde el kiosco. Es idempotente (verifica UUIDs).
- GET
/api/sincronizacion/descargar-cambios- Descarga empleados y configuraciones para actualizar el kiosco offline.
- POST
/api/marcaciones/registrar- Registra una marcación individual (online).
- POST
http://localhost:8001/api/v1/extract(Python Service)- Extrae el vector de características faciales (embedding) de una imagen.
- GET
/api/reportes/asistencia.csv- Descarga el reporte histórico de asistencias.
- Las variables de entorno globales se leen desde el
.enven la raíz (recomendado para desarrollo). - La configuración específica de Spring Boot está en
backend/src/main/resources/application.properties. - Por defecto se utiliza SQLite en modo archivo con persistencia en:
./data/horus_db.db.