actualizacion de Readme

This commit is contained in:
Marcos Elias Rios Nuñez 2026-06-01 10:14:14 -03:00
parent d539eff25e
commit dfe185045d

163
README.md
View File

@ -1,41 +1,140 @@
# sip_huellas # S.I.P - Sistema de Identificación Papiloscópica
## Estructura del Proyecto (Inspirada en Laravel) El **S.I.P** es una plataforma web pericial y criminalística diseñada para la gestión, catalogación y análisis de huellas dactilares, minucias y fichas de clasificación mono-dactilar basándose en los principios del Sistema Dactiloscópico Argentino (Vucetich).
Flask no impone una estructura, pero podemos emular el patrón de Laravel utilizando Blueprints para modularizar la aplicación.
''' El ecosistema está completamente contenedorizado y utiliza una arquitectura desacoplada: un backend robusto en **Flask** que emula el patrón modular de Laravel, y una interfaz de usuario interactiva en **Vue 3**.
---
## 🏗️ Estructura del Proyecto (Inspirada en Laravel)
Flask no impone una estructura rígida, pero este desarrollo emula el patrón arquitectónico de Laravel utilizando *Blueprints* para modularizar el backend por dominios:
```text
sip_huellas/ sip_huellas/
├── api/ # Backend Flask (Similar a la carpeta 'app' de Laravel) ├── api/ # Backend Flask (Equivalente a la carpeta 'app/' de Laravel)
│ ├── app/ │ ├── app/
│ │ ├── config.py # Configuración del entorno │ │ ├── config.py # Configuración del entorno y variables del sistema
│ │ ├── database.py # Inicialización de SQLAlchemy │ │ ├── database.py # Inicialización y abstracción de SQLAlchemy
│ │ ├── models/ # Modelos del ORM (Eloquent Models) │ │ ├── models/ # Modelos del ORM (Eloquent Models)
│ │ │ ├── __init__.py # Indexador y exposición de metadatos para Alembic
│ │ │ ├── user.py # Entidades de usuarios, roles y permisos administrativos
│ │ │ └── biometria.py # Entidades forenses (Personas, Huellas, Minucias, Fichas)
│ │ ├── routes/ # Controladores y Endpoints de la API (Http/Controllers)
│ │ │ ├── __init__.py │ │ │ ├── __init__.py
│ │ │ ├── user.py │ │ │ ├── auth.py # Control de autenticación y emisión de JWT
│ │ │ ├── fingerprint.py │ │ │ ├── users.py # CRUD y gestión de investigadores
│ │ │ └── report.py │ │ │ └── roles.py # Control de privilegios transaccionales
│ │ ├── routes/ # Controladores / Rutas (Http/Controllers) │ │ └── middlewares/ # Interceptores de control (Http/Middleware)
│ │ │ ├── __init__.py │ │ └── auth_middleware.py # Validación de firmas JWT y políticas de acceso
│ │ │ ├── auth.py │ ├── migrations/ # Historial de Migraciones del ORM (Alembic)
│ │ │ ├── fingerprints.py │ ├── Dockerfile # Configuración de compilación para el entorno Python 3.11
│ │ │ └── reports.py │ ├── requirements.txt # Dependencias de paquetes del ecosistema del Backend
│ │ └── middlewares/ # Control de Roles y Permisos (Http/Middleware) │ └── run.py # Punto de entrada de la API y registro CLI (Fábrica)
│ │ └── auth_middleware.py
│ ├── migrations/ # Migraciones de Base de Datos
│ ├── Dockerfile
│ ├── requirements.txt
│ └── run.py # Extremo de entrada de la API
├── frontend/ # Frontend VueJS ├── frontend/ # Frontend SPA (VueJS 3 + Vite)
│ ├── src/ │ ├── src/
│ │ ├── components/ │ │ ├── components/ # Componentes UI reutilizables
│ │ ├── views/ │ │ ├── views/ # Vistas funcionales (Dashboard, Login, Crud, Huellas)
│ │ ├── router/ │ │ ├── router/ # Enrutador Web con Guards middleware integrados
│ │ ├── App.vue │ │ ├── App.vue # Componente raíz de renderizado
│ │ └── main.js │ │ └── main.js # Inicialización de Vue y plugins (BootstrapVue Next)
│ ├── Dockerfile │ ├── Dockerfile # Configuración de compilación para entornos Node.js
│ ├── package.json │ ├── package.json # Scripts de Node y manifiesto de dependencias npm
│ └── vite.config.js │ └── vite.config.js # Configuración del empaquetador Vite (Puerto 8080)
└── docker-compose.yml # Orquestador de Servicios ├── .env # Archivo de variables de entorno global
''' └── docker-compose.yml # Orquestador multi-contenedor (DB, API, FRONT)
🚀 Requisitos Previos
Para levantar el ecosistema completo, solo necesitás tener instalado en tu sistema local:
Docker (Versión 20.10+ recomendada)
Docker Compose V2
🛠️ Despliegue Rápido Automatizado
El proyecto incluye un script en Bash (desplegar.sh) que automatiza de forma inteligente todo el ciclo de vida inicial del entorno. Para desplegar el sistema desde cero, ejecutá en tu terminal:
# Asignar permisos de ejecución al script por única vez
chmod +x desplegar.sh
# Ejecutar el despliegue automático
./desplegar.sh
¿Qué hace este script exactamente?
Limpieza: Realiza un docker compose down eliminando contenedores huérfanos y liberando sockets bloqueados.
Orquestación: Levanta la Base de Datos (PostgreSQL), la API Flask y el Frontend Vue 3 en segundo plano (-d).
Migraciones: Inicializa el repositorio de base de datos (flask db init), detecta las entidades periciales de biometria.py y aplica las tablas físicas mediante flask db upgrade.
Sembrado: Ejecuta de forma nativa el comando flask seed para inyectar de manera transaccional los roles, usuarios administradores, perfiles de personas y las coordenadas geométricas patrón de las huellas de prueba.
🔒 Variables de Entorno (.env)
El ecosistema se configura mediante el archivo .env ubicado en la raíz del proyecto. Asegúrate de que sus valores estén alineados con tu infraestructura local:
# --- ENTORNO GENERAL ---
PROJECT_NAME=huellas_investigacion
FLASK_ENV=development
# --- BASE DE DATOS (POSTGRESQL) ---
POSTGRES_USER=admin
POSTGRES_PASSWORD=secretpassword_2026_x8
POSTGRES_DB=huellas_investigacion
POSTGRES_PORT=5432
POSTGRES_HOST=db
# --- BACKEND (API FLASK) ---
FLASK_PORT=5000
JWT_SECRET_KEY=laravel_style_jwt_secret_token_scientific_2026
# --- FRONTEND (VUE 3 + VITE) ---
VITE_PORT=8080
VITE_API_BASE_URL=http://localhost:5000/api
🖥️ Acceso al Sistema y Credenciales de Prueba
Una vez finalizado el script, podés ingresar a las distintas plataformas del ecosistema:
Frontend Web: http://localhost:8080 (Pantalla de login con marca de agua biométrica integrada)
Backend API REST: http://localhost:5000/api
🔑 Credenciales del Investigador Raíz (Creadas por el Seeder)
Identificador de Usuario: admin_root
Contraseña de Acceso: admin1234
🧪 Comandos Útiles de Mantenimiento
Si necesitás ejecutar tareas manuales de mantenimiento dentro del contenedor de la API, utilizá las siguientes instrucciones:
# Reiniciar exclusivamente el servicio de la API (por cambios en Python)
docker compose restart api
# Generar una nueva migración manual si modificás los modelos
docker exec -it -e FLASK_APP=run.py huellas_api flask db migrate -m "descripcion_del_cambio"
# Impactar la migración generada en PostgreSQL
docker exec -it -e FLASK_APP=run.py huellas_api flask db upgrade
# Forzar una nueva siembra de base de datos
docker exec -it -e FLASK_APP=run.py huellas_api flask seed
# Ver registros de auditoría y logs de errores de Python en tiempo real
docker logs huellas_api --tail 50 -f
# Reiniciar exclusivamente el servicio de la API (por cambios en Python)
docker compose restart api
# Generar una nueva migración manual si modificás los modelos
docker exec -it -e FLASK_APP=run.py huellas_api flask db migrate -m "descripcion_del_cambio"
# Impactar la migración generada en PostgreSQL
docker exec -it -e FLASK_APP=run.py huellas_api flask db upgrade
# Forzar una nueva siembra de base de datos
docker exec -it -e FLASK_APP=run.py huellas_api flask seed
# Ver registros de auditoría y logs de errores de Python en tiempo real
docker logs huellas_api --tail 50 -f