2.6 KiB
2.6 KiB
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
- Documentación interactiva: http://localhost:8000/docs
- Health check: http://localhost:8000/api/health
Cómo funciona el rendimiento
- Al arrancar → precarga todos los módulos (datos en memoria)
- Refresco en segundo plano → cada 4 min recarga el caché silenciosamente
- Respuestas → instantáneas porque vienen de memoria
- 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=§orista=&agrupacion= |
Datos cobranza |
| GET | /api/cobranza/detalle?grupo=&ano=&mes=§orista=&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