29ee49984eaa9589b71c6a0b53f9ad026e3f2ed9
Diagnóstico (reproducido contra el servidor de pruebas con curl): - POST /livewire/update (_startUpload) genera la URL firmada correcta: https://avantee.duckdns.org/livewire/upload-file?expires=...&signature=... - POST inmediato a esa misma URL → 401. La firma se valida contra la URL que Laravel RECONSTRUYE de la petición entrante; en esa ruta el proxy no le hace llegar X-Forwarded-Proto, Laravel percibe http:// y la firma no cuadra. - Livewire muestra entonces el genérico "The uploadFile failed to upload". Fix: middleware ForceHttpsScheme (prepend, antes de TrustProxies): si APP_URL empieza por https://, fija X-Forwarded-Proto=https y X-Forwarded-Port=443 en todas las peticiones. Con trustProxies('*') ya activo, generación y validación de firmas usan siempre el mismo scheme. En local/tests (APP_URL http) no hace nada. Nota servidor: git pull && php artisan config:clear && php artisan config:cache. Sigue siendo recomendable client_max_body_size 60m en OpenResty para KML grandes. Suite 94 passing. Co-Authored-By: Claude Fable 5 <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
Languages
PHP
53.7%
Blade
45.8%
JavaScript
0.5%