Files
backend/backend
2026-06-26 12:28:49 -05:00
..
2026-06-26 12:28:49 -05:00
2026-06-26 12:28:49 -05:00
2026-06-26 12:28:49 -05:00
2026-06-26 12:28:49 -05:00
2026-06-26 12:28:49 -05:00
2026-06-26 12:28:49 -05:00
2026-06-26 12:28:49 -05:00

Backend — Dashboard API (FastAPI)

API REST que reutiliza toda la lógica de negocio del dashboard original. El frontend (React) consume estos endpoints.

Requisitos

  • Python 3.10+
  • Driver ODBC para SQL Server (ODBC Driver 17 o 18)

Instalación

cd backend
pip install -r requirements.txt

En Windows, si falta el driver ODBC de SQL Server, descárgalo de: https://learn.microsoft.com/sql/connect/odbc/download-odbc-driver-for-sql-server

Configuración

El archivo .env ya contiene las credenciales (copiado del proyecto original). Si necesitas cambiarlas, edita .env (usa .env.example como referencia).

Ejecutar

python main.py

El servidor arranca en: http://localhost:8000

Cómo funciona el rendimiento

  1. Al arrancar → precarga todos los módulos (datos en memoria)
  2. Refresco en segundo plano → cada 4 min recarga el caché silenciosamente
  3. Respuestas → instantáneas porque vienen de memoria
  4. El frontend solo pide datos (JSON), nunca recarga toda la página

Endpoints principales

Método Ruta Descripción
GET /api/periodo-actual Año y mes actuales
GET /api/ocupabilidad?ano=&mes=&sede=&programa= Datos ocupabilidad
GET /api/ventas?ano=&mes= Datos ventas
GET /api/ventas/detalle?vendedor=&ano=&mes=&tipo= Detalle vendedor
GET /api/cobranza?ano=&mes=&sectorista=&agrupacion= Datos cobranza
GET /api/cobranza/detalle?grupo=&ano=&mes=&sectorista=&agrupacion= Estado de cuenta
GET /api/rentabilidad?ano=&mes=&sede=&programa= Datos rentabilidad
GET /api/rentabilidad/detalle?programa=&ano=&mes= Detalle programa
GET /api/rentabilidad/costos?programa=&ano=&mes= Costos programa
GET /api/saldo-pendiente?tipo_cuota= Saldos pendientes
GET /api/asesores Lista de asesores (Chatwoot)
POST /api/asesores/estado?agent_id=&online= Cambiar estado asesor
POST /api/cache/refresh Forzar refresco de caché

Estructura

backend/
├── main.py            # FastAPI + endpoints
├── services.py        # Capa que envuelve la lógica con caché
├── cache_manager.py   # Caché en memoria + refresco background
├── requirements.txt
├── .env               # Credenciales (no subir a git)
├── core/              # DataManager (reutilizado del original)
├── modules/           # Lógica de negocio (reutilizada del original)
└── SQL_QUERY_2/       # Queries SQL optimizadas