14758136b6ca1bc7c5a9563a2622127a11e60f34
Milestone 5 (media): - POST /api/v1/media — multipart upload, attaches to feature/issue/project/ phase/layer, idempotent by uuid, authz member + 'upload media'. Added uuid+client_updated_at to media. - Bundle now includes a 'media' array (URLs) for the project's project/feature/ issue attachments (delta-aware). Milestone 6 (hardening + docs): - sync_logs table/model: every applied op is logged; /sync short-circuits on a repeated op uuid -> 'duplicate' (true idempotency for updates too, not just creates). - Rate limiting on login (10/min), sync (60/min), media (120/min). - docs/openapi.yaml: OpenAPI 3 contract for the mobile team. Tests: 18 passing (added media upload idempotency + sync_logs idempotency). The mobile API (Milestones 1-6) is now feature-complete on the webapp side. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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
Description
Languages
Blade
51.1%
PHP
47.6%
JavaScript
1.3%