Solucionado submodulos y subiendo codigo real
This commit is contained in:
74
backend/README.md
Normal file
74
backend/README.md
Normal file
@@ -0,0 +1,74 @@
|
||||
# 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
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
```bash
|
||||
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
|
||||
|
||||
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=§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
|
||||
```
|
||||
Reference in New Issue
Block a user