Saltar al contenido principal

🏗️ 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​

ComponenteTecnologíaJustificación
BackendDjangoRobustez para modelos relacionales complejos
FrontendHTMX + Tailwind CSSInteractividad ligera, mobile-first
Base de datosPostgreSQLIdeal para relaciones y consultas complejas
InfraestructuraDocker + Render/RailwayPortabilidad y despliegue rápido
AutenticaciónDjango Allauth/JWTSeguridad probada

Modelos Principales​

┌──────────┐ ┌──────────────┐ ┌──────────┐
│ CLIENTE │────<│ORDEN_SERVICIO│>────│ SERVICIO │
└──────────┘ └──────────────┘ └──────────┘
│
┌───────────────┼───────────────┐
▼ ▼ ▼
┌─────────┐ ┌──────────┐ ┌──────────┐
│ MATERIAL│ │ PERSONAL │ │ PAGO │
└─────────┘ └──────────┘ └──────────┘
│
▼
┌──────────┐
│PROVEEDOR │
└──────────┘
EntidadPropósitoCampos Clave
ClienteRegistro de clientesnombre, teléfono, email, dirección
ServicioCatálogo de serviciosnombre, descripción, precio_base
OrdenCotizaciones y órdenescliente, estado, totales, notas
MaterialInventario de materialesnombre, stock, precio, proveedor
ProveedorRegistro de proveedoresnombre, contacto, tipo
PersonalTrabajadoresnombre, puesto, costo_hora
PagoIngresos y egresostipo, monto, método, fecha

🔌 API Endpoints​

Core​

MétodoEndpointDescripció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​

ColorHexUso
Azul profundo#1A365DEncabezados, botones principales
Verde lima#6EE7B7Acentos, éxito
Gris claro#F7FAFCFondos, tarjetas
Verde oscuro#059669Confirmaciones
Rojo suave#F87171Errores, alertas

Flujo Principal (Cotización)​

  1. Nueva Cotización → Seleccionar/crear cliente
  2. Agregar Servicios → Elegir del catálogo
  3. Materiales → Autocompletado por servicio
  4. Personal → Asignar trabajadores
  5. Revisar → Ajustar margen y totales
  6. 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​

PrioridadMóduloJustificación
1Catálogos basePrerrequisito para operar
2Motor de cotizacionesCore del negocio
3Gestión de pagosControl financiero
4Control de personalProductividad
5DashboardVisibilidad 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

📚 Referencias​