javier 9d2b63c8f4 feat(api): mobile API Milestone 4 — full PUSH (inspections/issues/features + conflicts)
SyncController now handles the full mutation vocabulary:
- inspection.create (idempotent by uuid; project/layer derived from feature;
  authz member + 'create inspections'; status defaults to completed).
- issue.create (idempotent; authz member + 'create issues').
- issue.update (by server id; authz member + 'edit issues'; sets resolved_at
  when resolved/closed; last-write-wins conflict).
- feature.update (by server id; authz member + 'update progress'; recomputes
  phase progress; last-write-wins conflict).
- Conflict detection: client_updated_at vs server updated_at → returns
  'conflict' with the current server value.
Added uuid + client_updated_at to features/inspections/issues (guarded migration)
and their fillables. Tests: 16 passing (added inspection/issue/feature + conflict).

Note: 2 PRE-EXISTING test failures remain (not from this work, sqlite-only):
ExampleTest expects '/'=200 (app redirects), and the dashboard route uses MySQL
FIELD() which sqlite lacks.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 10:09:34 +02:00
2026-05-07 23:31:33 +02:00

Avante

Sistema de gestión de proyectos de construcción con mapas interactivos, control de progreso, inspecciones y soporte offline.

Características

  • Mapas interactivos — Visualización de proyectos sobre mapa con capas (GeoJSON/KML) y elementos editables
  • Gestión de fases — Proyectos organizados en fases con progreso porcentual y seguimiento histórico
  • Capas y elementos — Subida de archivos GeoJSON/KML, capas vacías editables con color personalizado
  • Inspecciones — Plantillas de inspección por proyecto, asignables a elementos del mapa
  • Progreso — Seguimiento visual del progreso por fase y global del proyecto
  • Sincronización offline — Endpoints para trabajadores en campo, sincronización diferida
  • Permisos — Roles y permisos granulares (Spatie Permission)
  • Dashboard — Estadísticas globales, proyectos recientes, inspecciones

Requisitos

  • PHP 8.2+
  • MySQL/MariaDB
  • Composer
  • Node.js + NPM

Instalación

git clone <repo-url> construprogress
cd construprogress
composer install
npm install && npm run build
cp .env.example .env
# Editar .env con credenciales de base de datos
php artisan key:generate
php artisan migrate
php artisan db:seed --class=RolePermissionSeeder  # si existe
php artisan serve

Stack técnico

  • Framework: Laravel 11
  • Frontend: Tailwind CSS + DaisyUI + Leaflet.js
  • Mapas: Leaflet + Leaflet Draw (editor gráfico)
  • Componentes: Livewire 3
  • Base de datos: MySQL/MariaDB
  • Autenticación: Laravel Breeze
S
Description
App Laravel para el seguimiento y revisión de obra
Readme 1.6 MiB
Languages
PHP 51.9%
Blade 47%
JavaScript 1.1%