CASO DE ESTUDIO · RELEASE 0.1.0

RutaCuadrilla: asignar recorridos y seguir cada visita.

Una aplicación con dos interfaces: Administración asigna y supervisa las rutas; Campo registra las visitas desde el móvil. Construí la API, las reglas de negocio y ambas interfaces. La demo utiliza únicamente personas, direcciones y geometrías ficticias.

EL PRODUCTO EN TRES PASOS

De la asignación al avance visible.

Un recorrido visual sin instalar el proyecto. Son capturas reales de la demo local sintética, no una aplicación interactiva en esta página. Puedes abrir cada imagen para verla a tamaño completo.

  1. 01 · ADMINISTRACIÓN

    Asignar una ruta

    Administración vincula un recorrido a un integrante del equipo. El servidor comprueba que el usuario tenga una sola asignación activa y que no se compartan puntos entre asignaciones incompatibles.

    Administración muestra la asignación activa de Ruta Demo Horizonte a Miembro Demo
    Asignación activa de una ruta de 72 puntos ficticios.
  2. 02 · CAMPO

    Registrar una visita

    El operador abre un punto de su ruta y registra el resultado de la visita. La API valida su permiso y la versión del registro para detectar cambios simultáneos.

    Interfaz móvil de Campo con las opciones para registrar el resultado de una visita sintética
    Opciones de registro en Campo. No contiene datos del piloto privado.
  3. 03 · SEGUIMIENTO

    Consultar el avance

    Administración consulta cuántos puntos se visitaron y sus resultados. La prueba de extremo a extremo comprueba que registrar una visita cambia el contador de 0/72 a 1/72.

    Administración muestra una visita registrada de 72 puntos sintéticos
    Captura de la prueba publicada: 1 punto visitado de 72.
72puntos ficticios
12segmentos sintéticos
2interfaces adaptadas por rol
1 → 2 vistasuna visita actualiza Campo y Administración

01 · RETO

Más que un CRUD con un mapa.

Un recorrido no puede asignarse como una colección de filas aisladas. El sistema debe impedir solapamientos, mantener una sola asignación activa por usuario y aceptar reintentos sin duplicar efectos.

Campo y Administración observan el mismo estado desde perspectivas distintas. Las reglas sensibles viven en servidor y base de datos: la interfaz no decide por sí sola a qué ruta pertenece un operador ni cuál versión de una visita es válida.

02 · FLUJO

Una operación completa y reproducible.

El comando de demo comprueba el entorno, levanta API y ambas interfaces, espera readiness y carga una ruta determinista. Repetirlo no mezcla datos ni sobrescribe una configuración local diferente.

  1. 01

    Generar

    Semilla fija produce puntos, segmentos, predios, huellas y manifiesto SHA-256.

  2. 02

    Publicar

    La importación CSV y la publicación de la ruta son idempotentes.

  3. 03

    Asignar

    Exclusividad y pertenencia se validan de forma transaccional.

  4. 04

    Visitar

    Campo registra uno de seis resultados operacionales permitidos.

  5. 05

    Resolver

    Versiones optimistas convierten una edición obsoleta en conflicto explícito.

  6. 06

    Observar

    Administración recibe el avance agregado del mismo estado canónico.

PRUEBA E2E

Registrar una visita en Campo cambió el contador de Administración de 0/72 a 1/72. La ejecución utilizó únicamente la ruta sintética incluida en la release pública.

03 · INGENIERÍA

Las reglas del dominio no dependen del navegador.

CONCURRENCIA

Actualización optimista

Cada cambio presenta su versión esperada; un estado obsoleto genera una respuesta de conflicto.

IDEMPOTENCIA

Reintentos sin duplicados

Importación, publicación y comandos críticos mantienen una identidad estable ante repeticiones.

AISLAMIENTO

Permisos en servidor

Sesiones revocables, pertenencia de ruta y rate limiting protegen los flujos expuestos.

TRAZABILIDAD

Migraciones y auditoría

La persistencia PostgreSQL registra cambios y acompaña backups con restauración verificada.

INTERFAZ

Dos superficies por rol

Administración prioriza asignación y seguimiento; Campo prioriza avance móvil, mapa y lista.

CALIDAD

Contrato verify

Formato, lint, tipos, secretos, datos privados, pruebas y cuatro builds se verifican en CI.

04 · LÍMITES

Lo que la edición pública no promete.

SEPARACIÓN

Portfolio y piloto no comparten datos

La release es una copia preparada para demostración; el sistema personal desplegado no fue modificado.

SIGUIENTE NIVEL

Validación antes que nuevas funciones

Una operación sensible necesitaría roles PostgreSQL separados, observabilidad y pruebas independientes.

EVIDENCIA PÚBLICA

Ejecutar el flujo con datos sintéticos.

El repositorio incluye el generador determinista, las dos interfaces, la API, las migraciones, documentación de seguridad y el comando que levanta la demo local completa.