🏗️ ConstruGest Pro
Sistema integral para digitalizar la administración de empresas constructoras multiservicios.
📋 Contexto
Las empresas constructoras pequeñas y medianas gestionan cotizaciones, órdenes de servicio, materiales y personal de forma dispersa, usando Excel, WhatsApp y papel. Esto genera pérdida de información, retrabajo y dificultad para tomar decisiones basadas en datos.
🎯 Objetivo
Centralizar la operación de constructoras mediante un sistema web que permita gestionar clientes, cotizaciones, órdenes de servicio, inventario, proveedores y personal, facilitando la toma de decisiones con métricas en tiempo real.
📦 Alcance
Incluye:
- Gestión de clientes y catálogo de servicios
- Cotizaciones y órdenes de servicio
- Control de materiales y proveedores
- Registro de pagos e ingresos
- Asignación y seguimiento de personal
- Dashboard con métricas clave
Excluye (futuras versiones):
- Facturación electrónica (SAT)
- App móvil nativa
- Marketplace de proveedores
- Integración con WhatsApp
🏛️ Arquitectura
Stack Tecnológico
| Componente | Tecnología | Justificación |
|---|---|---|
| Backend | Django | Robustez para modelos relacionales complejos |
| Frontend | HTMX + Tailwind CSS | Interactividad ligera, mobile-first |
| Base de datos | PostgreSQL | Ideal para relaciones y consultas complejas |
| Infraestructura | Docker + Render/Railway | Portabilidad y despliegue rápido |
| Autenticación | Django Allauth/JWT | Seguridad probada |
Modelos Principales
┌──────────┐ ┌──────────────┐ ┌──────────┐
│ CLIENTE │────<│ORDEN_SERVICIO│>────│ SERVICIO │
└──────────┘ └──────────────┘ └──────────┘
│
┌───────────────┼───────────────┐
▼ ▼ ▼
┌─────────┐ ┌──────────┐ ┌──────────┐
│ MATERIAL│ │ PERSONAL │ │ PAGO │
└─────────┘ └──────────┘ └──────────┘
│
▼
┌──────────┐
│PROVEEDOR │
└──────────┘
| Entidad | Propósito | Campos Clave |
|---|---|---|
| Cliente | Registro de clientes | nombre, teléfono, email, dirección |
| Servicio | Catálogo de servicios | nombre, descripción, precio_base |
| Orden | Cotizaciones y órdenes | cliente, estado, totales, notas |
| Material | Inventario de materiales | nombre, stock, precio, proveedor |
| Proveedor | Registro de proveedores | nombre, contacto, tipo |
| Personal | Trabajadores | nombre, puesto, costo_hora |
| Pago | Ingresos y egresos | tipo, monto, método, fecha |
🔌 API Endpoints
Core
| Método | Endpoint | Descripción |
|---|---|---|
GET/POST | /api/clientes/ | CRUD clientes |
GET/POST | /api/ordenes/ | CRUD órdenes de servicio |
GET/POST | /api/materiales/ | CRUD materiales |
GET/POST | /api/personal/ | CRUD personal |
POST | /api/ordenes/{id}/calcular/ | Recalcular totales |
GET | /api/ordenes/{id}/pdf/ | Exportar PDF |
GET | /api/dashboard/ | Métricas generales |
Estructura de Respuesta (Orden)
{
"id": 1,
"cliente": { "id": 5, "nombre": "Juan Pérez" },
"estado": "En Progreso",
"servicios": [{ "nombre": "Plomería", "subtotal": 2500 }],
"materiales": [{ "nombre": "Tubería PVC", "subtotal": 360 }],
"personal": [{ "nombre": "Carlos López", "costo": 480 }],
"totales": { "precio_venta": 1050, "costo_total": 840 },
"saldo_pendiente": 550
}
🎨 UX/UI
Paleta de Colores
| Color | Hex | Uso |
|---|---|---|
| Azul profundo | #1A365D | Encabezados, botones principales |
| Verde lima | #6EE7B7 | Acentos, éxito |
| Gris claro | #F7FAFC | Fondos, tarjetas |
| Verde oscuro | #059669 | Confirmaciones |
| Rojo suave | #F87171 | Errores, alertas |
Flujo Principal (Cotización)
- Nueva Cotización → Seleccionar/crear cliente
- Agregar Servicios → Elegir del catálogo
- Materiales → Autocompletado por servicio
- Personal → Asignar trabajadores
- Revisar → Ajustar margen y totales
- Acción → Guardar, enviar PDF o activar orden
⚙️ Validaciones Clave
- ❌ No cerrar orden sin personal asignado
- ❌ No asignar materiales sin stock suficiente
- ❌ No registrar pagos mayores al total
- ❌ No eliminar cliente con órdenes activas
🚀 Priorización MVP
| Prioridad | Módulo | Justificación |
|---|---|---|
| 1 | Catálogos base | Prerrequisito para operar |
| 2 | Motor de cotizaciones | Core del negocio |
| 3 | Gestión de pagos | Control financiero |
| 4 | Control de personal | Productividad |
| 5 | Dashboard | Visibilidad del negocio |
💰 Monetización
- Suscripción mensual por usuario/empresa
- Módulos premium: Reportes avanzados, exportación
- Integraciones: Facturación electrónica
✅ Historias de Usuario (Críticas)
- Como dueño, quiero crear cotizaciones seleccionando cliente, servicios y materiales para enviar presupuestos profesionales.
- Como administrativo, quiero registrar pagos de clientes y ver saldos pendientes para controlar el flujo de caja.
- Como dueño, quiero ver ingresos, egresos y utilidades en un dashboard para tomar decisiones.
📊 Métricas de Éxito
- Crear cotización en < 3 minutos
- Tiempo de respuesta < 2s
- 100% de órdenes con seguimiento de pagos
- 90% de precisión en cálculos de utilidad