CRM Postventa — documentación del proyecto
Sistema de gestión postventa para una empresa de maquinaria e insumos agrícolas. Centraliza clientes, automatiza el seguimiento de incidencias, integra WhatsApp Business y mide en tiempo real los ocho indicadores que sostienen la investigación.
Por dónde empezar
| Si eres… | Empieza por |
|---|---|
| Quien va a sustentar el proyecto | El problema → Los ocho indicadores → Trazabilidad de requisitos |
| Quien va a programar en él | Vista general → Contrato GraphQL → Los tres niveles |
| Quien va a operarlo | Puesta en marcha → Despliegue → Resolución de problemas |
| Quien quiere saber qué falta | Qué está hecho → Deuda técnica |
El sistema en una imagen
┌──────────────┐ ┌──────────────┐ ┌──────────────────────┐
│ Web (React) │ │ Móvil (Expo) │ │ WhatsApp Business │
│ escritorio │ │ campo/asesor │ │ Facebook Page │
└──────┬───────┘ └──────┬───────┘ └──────────┬───────────┘
│ GraphQL + JWT │ │ webhooks firmados
└────────┬─────────┘ │
▼ ▼
┌──────────────────────────────────────────────────────┐
│ BFF GraphQL — Rust (Axum + async-graphql) │
│ auth · roles · DataLoaders · SLA · chatbot · campañas │
└───────────────────────┬──────────────────────────────┘
▼
┌──────────────────────────────────────────────────────┐
│ PostgreSQL — enums, triggers, horas hábiles, KPI │
└──────────────────────────────────────────────────────┘
Detalle en Vista general.
Contexto
- El problema — qué se intenta resolver y por qué importa
- Requisitos funcionales — los ocho RF del documento original
- Requisitos no funcionales — rendimiento, seguridad, escalabilidad
- Trazabilidad de requisitos — dónde vive cada requisito en el código
Arquitectura
Decisiones
Cada una explica el porqué, no sólo el qué. Son las que hay que poder defender si alguien pregunta.
- ADR-01 Rust a medida en lugar de SuiteCRM
- ADR-02 PostgreSQL en lugar de MySQL
- ADR-03 Un solo BFF para web y móvil
- ADR-04 Los tiempos se miden en horas hábiles
- ADR-05 Los indicadores se calculan en la base
- ADR-06 Un sistema de tokens compartido
- ADR-07 Metas absolutas y metas de incremento
- ADR-08 El sistema funciona sin credenciales de Meta
Indicadores
- Los ocho indicadores — el mapa completo con metas y estado actual
- Tiempo hábil — la decisión que sostiene la mitad de ellos
- Dimensión 1 Tiempos de atención
- Dimensión 2 Eficiencia en la resolución
- Dimensión 3 Retención y recompra
- Línea base y comparativa — cómo se demuestra la mejora
Módulos
- Clientes · Tickets · Reclamos y evidencia
- Mensajería y chatbot · Seguimiento postventa
- Garantías y repuestos · Productos y campañas
- Configuración
Sistema de diseño
Operación
Estado
El proyecto en cifras
| Backend en Rust | 55 archivos · 22 144 líneas · 166 tests |
| Aplicación web | 194 archivos · 33 291 líneas |
| Aplicación móvil | 75 archivos · 16 563 líneas |
| Base de datos | 38 tablas · 34 enums · 23 triggers · 153 índices |
| Contrato GraphQL | 133 tipos · 38 consultas · 74 mutaciones · 4 suscripciones |
| Sistema de diseño | 956 variables CSS · 244 pares de contraste verificados |