Skip to content

ISoledadSS/sis-rev-ops

Repository files navigation

Sistema de Revisión de Operaciones (SRO)

Sistema web interno para la gestión del ciclo completo de revisión de operaciones de compra/venta de valores bursátiles. Desarrollado con Streamlit + PostgreSQL.

Funcionalidades

  • Carga de operaciones: Parseo automático de archivos CPASVTAS (Excel) con clasificación MXN/USD por casa de bolsa
  • Bandeja de revisión: Revisión por contrato con locking multiusuario, auto-cierre al completar
  • Captura de precios: Integración con Yahoo Finance y archivos Vector analítico
  • Asignaciones masivas: Gestión de compras con porcentajes de participación y validaciones de riesgo
  • Métricas y dashboard: Gráficas Plotly interactivas, exportación PDF y reportes por email (.eml)
  • Panel de administración: Backup de BD, búsqueda de operaciones, gestión de aliases, logs de auditoría

Stack

Componente Tecnología
Frontend Streamlit
Base de Datos PostgreSQL 15+
Visualización Plotly Express
PDF ReportLab
Excel openpyxl
Precios yahooquery

Estructura

├── app.py              # Entry point: login, tabs, routing
├── config.py           # Constantes, credenciales (env vars), mapeos
├── db.py               # Pool de conexiones, migraciones, logging BD
├── helpers.py          # Utilidades: conversión, aliases, usuarios RJ
├── precios.py          # Vector analítico, Yahoo Finance, captura manual
├── carga.py            # Parseo y carga de archivos CPASVTAS
├── bandeja.py          # Bandeja de revisión, callbacks, auto-cierre
├── reportes.py         # Reportes por contrato, exportación Excel
├── metricas.py         # Dashboard, gráficas Plotly, PDF, email
├── admin.py            # Backup, búsqueda, aliases, logs
├── asignaciones.py     # Asignaciones masivas, validaciones, Excel
├── .env.example        # Template de variables de entorno
└── .gitignore

Instalación

Requisitos previos

  • Python 3.10+
  • PostgreSQL 15+
  • pg_dump en PATH (incluido con PostgreSQL)

Configuración

  1. Clonar el repositorio:
git clone https://github.com/tu-usuario/sis-rev-ops.git
cd sis-rev-ops
  1. Instalar dependencias:
pip install streamlit pandas psycopg2-binary openpyxl plotly reportlab yahooquery
  1. Configurar variables de entorno. Copiar el template y editar:
cp .env.example .env

Editar .env con las credenciales reales:

SRO_DB_PASSWORD=tu_password
SRO_USUARIOS=Usuario1:1234,Usuario2:5678
SRO_ADMIN_USERS=Usuario1
SRO_MAIL_DESTINATARIOS=correo1@dominio.com,correo2@dominio.com
  1. Cargar variables de entorno antes de ejecutar:

Windows (PowerShell):

Get-Content .env | ForEach-Object {
    if ($_ -match '^\s*([^#][^=]+)=(.*)$') {
        [System.Environment]::SetEnvironmentVariable($Matches[1].Trim(), $Matches[2].Trim(), 'Process')
    }
}

Linux/Mac:

export $(grep -v '^#' .env | xargs)
  1. (Opcional) Colocar archivos de datos:
    • usuarios_rj.csv — Mapeo contrato → usuario RJ (columnas: Contrato, Usuario)
    • vector/ — Directorio con archivos Vector analítico para precios de deuda

Ejecución

streamlit run app.py --server.port 8502

Esquema de Base de Datos

El sistema crea automáticamente 12 tablas al iniciar:

Tabla Descripción
contratos Contratos con estado, lock, metadatos del cliente
operaciones Operaciones individuales (30+ columnas del sistema bursátil)
titulos_actuales Posiciones de títulos por contrato/emisora
importes_actuales Posiciones de importes por contrato/emisora
cargas Registro de archivos cargados
emisora_aliases Mapeo emisora → ticker Yahoo Finance
audit_log Log de auditoría (login, cambios, backups)
operacion_historial Historial campo-por-campo de cambios
asignaciones Asignaciones masivas
asignacion_operaciones Operaciones por asignación
asignacion_cargas Cargas por asignación
asignacion_config Configuración global de porcentajes

Seguridad

  • Las credenciales se leen de variables de entorno, nunca del código fuente
  • El archivo .env está excluido del repositorio via .gitignore
  • Los PINs se almacenan en texto plano (migración a bcrypt pendiente)
  • Se recomienda usar HTTPS via reverse proxy (nginx) en producción

Licencia

Uso interno — NSC Asesores S.C.

About

"Internal operations review system for securities buy/sell compliance. Streamlit + PostgreSQL. 4,500+ lines, 54 functions, 12 tables."

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages