actualizacion de Readme
This commit is contained in:
parent
d539eff25e
commit
dfe185045d
163
README.md
163
README.md
@ -1,41 +1,140 @@
|
||||
# sip_huellas
|
||||
# S.I.P - Sistema de Identificación Papiloscópica
|
||||
|
||||
## Estructura del Proyecto (Inspirada en Laravel)
|
||||
Flask no impone una estructura, pero podemos emular el patrón de Laravel utilizando Blueprints para modularizar la aplicación.
|
||||
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).
|
||||
|
||||
'''
|
||||
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/
|
||||
├── api/ # Backend Flask (Similar a la carpeta 'app' de Laravel)
|
||||
├── api/ # Backend Flask (Equivalente a la carpeta 'app/' de Laravel)
|
||||
│ ├── app/
|
||||
│ │ ├── config.py # Configuración del entorno
|
||||
│ │ ├── database.py # Inicialización de SQLAlchemy
|
||||
│ │ ├── config.py # Configuración del entorno y variables del sistema
|
||||
│ │ ├── database.py # Inicialización y abstracción de SQLAlchemy
|
||||
│ │ ├── 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
|
||||
│ │ │ ├── user.py
|
||||
│ │ │ ├── fingerprint.py
|
||||
│ │ │ └── report.py
|
||||
│ │ ├── routes/ # Controladores / Rutas (Http/Controllers)
|
||||
│ │ │ ├── __init__.py
|
||||
│ │ │ ├── auth.py
|
||||
│ │ │ ├── fingerprints.py
|
||||
│ │ │ └── reports.py
|
||||
│ │ └── middlewares/ # Control de Roles y Permisos (Http/Middleware)
|
||||
│ │ └── auth_middleware.py
|
||||
│ ├── migrations/ # Migraciones de Base de Datos
|
||||
│ ├── Dockerfile
|
||||
│ ├── requirements.txt
|
||||
│ └── run.py # Extremo de entrada de la API
|
||||
│ │ │ ├── auth.py # Control de autenticación y emisión de JWT
|
||||
│ │ │ ├── users.py # CRUD y gestión de investigadores
|
||||
│ │ │ └── roles.py # Control de privilegios transaccionales
|
||||
│ │ └── middlewares/ # Interceptores de control (Http/Middleware)
|
||||
│ │ └── auth_middleware.py # Validación de firmas JWT y políticas de acceso
|
||||
│ ├── migrations/ # Historial de Migraciones del ORM (Alembic)
|
||||
│ ├── Dockerfile # Configuración de compilación para el entorno Python 3.11
|
||||
│ ├── requirements.txt # Dependencias de paquetes del ecosistema del Backend
|
||||
│ └── run.py # Punto de entrada de la API y registro CLI (Fábrica)
|
||||
│
|
||||
├── frontend/ # Frontend VueJS
|
||||
├── frontend/ # Frontend SPA (VueJS 3 + Vite)
|
||||
│ ├── src/
|
||||
│ │ ├── components/
|
||||
│ │ ├── views/
|
||||
│ │ ├── router/
|
||||
│ │ ├── App.vue
|
||||
│ │ └── main.js
|
||||
│ ├── Dockerfile
|
||||
│ ├── package.json
|
||||
│ └── vite.config.js
|
||||
│ │ ├── components/ # Componentes UI reutilizables
|
||||
│ │ ├── views/ # Vistas funcionales (Dashboard, Login, Crud, Huellas)
|
||||
│ │ ├── router/ # Enrutador Web con Guards middleware integrados
|
||||
│ │ ├── App.vue # Componente raíz de renderizado
|
||||
│ │ └── main.js # Inicialización de Vue y plugins (BootstrapVue Next)
|
||||
│ ├── Dockerfile # Configuración de compilación para entornos Node.js
|
||||
│ ├── package.json # Scripts de Node y manifiesto de dependencias npm
|
||||
│ └── 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
|
||||
Loading…
Reference in New Issue
Block a user