diff --git a/docs/MANUAL.en.md b/docs/MANUAL.en.md new file mode 100644 index 0000000..42993da --- /dev/null +++ b/docs/MANUAL.en.md @@ -0,0 +1,547 @@ + + +
+ +# ConstruProgress + +## Application Manual + +**Construction site tracking system** + +MAI Group · RTE International + +📷 *Screenshot: cover / application logo (`public/images/logo-rte.png`).* + +| | | +|---|---| +| Document version | 1.0 | +| Date | June 2026 | +| Scope | Web application + mobile app API | +| Language | English (Spanish version: `MANUAL.md`) | + +
+ +
+ +--- + +## Table of contents + +1. [Introduction and concepts](#1-introduction-and-concepts) +2. [System requirements](#2-system-requirements) +3. [Installation and deployment](#3-installation-and-deployment) +4. [Access and getting started](#4-access-and-getting-started) +5. [Roles and permissions](#5-roles-and-permissions) +6. [Section-by-section user guide](#6-section-by-section-user-guide) +7. [Typical workflows](#7-typical-workflows) +8. [API (mobile app)](#8-api-mobile-app) +9. [Maintenance, backups and updates](#9-maintenance-backups-and-updates) +10. [Troubleshooting (FAQ)](#10-troubleshooting-faq) +11. [Appendices](#11-appendices) + +
+ +--- + +# 1. Introduction and concepts + +## 1.1 What is ConstruProgress? + +ConstruProgress is a web application for **construction site tracking and control**. +It organizes each project into phases, maps its elements on an interactive map, records +inspections via templates, manages issues (with tasks, comments and photos) and produces +reports. It also powers a **mobile app that works offline** in the field and syncs once +back online. + +📷 *Screenshot: main dashboard with the overview.* + +## 1.2 Key concepts (glossary) + +| Term | Meaning | +|---|---| +| **Project** | Main unit of work (a construction site). Contains phases, layers, elements, inspections and issues. | +| **Phase** | A project stage (e.g. Foundations, Structure). Has order, color, progress and planned/actual dates. | +| **Layer** | A grouping of elements on the map within a phase. | +| **Element (feature)** | A geographic object (point/line/polygon) on the map, with status and % progress. | +| **Inspection** | A control record on an element, usually via a **template**. | +| **Inspection template** | A reusable form with configurable fields (text, number, %, boolean, select…). | +| **Issue** | A detected problem or defect: has priority, status, type, tasks, comments and photos. | +| **Issue checklist** | A task list to resolve an issue; can be generated from a **checklist template**. | +| **Role** | A user's set of permissions in the system (Admin, Supervisor…). | +| **Project role** | A user/company's role within a specific project (supervisor, client, constructor…). | + +## 1.3 Architecture (technical summary) + +- **Backend:** Laravel 12 (PHP 8.2+), Livewire 3 (Volt). +- **UI:** TailwindCSS + DaisyUI, Rappasoft tables, Leaflet maps, Heroicons. +- **DB:** MySQL/MariaDB. +- **Permissions:** spatie/laravel-permission. +- **Mobile API:** Laravel Sanctum (tokens), offline-first sync. + +
+ +--- + +# 2. System requirements + +**Server** +- PHP **8.3** recommended (minimum 8.2). Extensions: `mbstring, pdo_mysql, openssl, tokenizer, xml, ctype, json, bcmath, fileinfo, curl, gd, zip`. +- MySQL/MariaDB. +- Composer. (Node only to build the assets, preferably locally.) +- HTTPS (SSL). + +> **Version note:** a dependency (`zipstream-php`) requires PHP 8.3. With PHP 8.2, +> `composer install` needs `--ignore-platform-reqs`. Recommended: use PHP 8.3. + +**Client (browser)** +- A modern browser (Chrome, Edge, Firefox, Safari) with JavaScript enabled. + +
+ +--- + +# 3. Installation and deployment + +Guide for a web server such as OVH (VPS recommended; also valid on shared hosting with +the noted caveats). + +## 3.1 Database +Create a MySQL database and a user with privileges. Note the **host, name, user and +password**. + +## 3.2 Build the assets (on your PC) +The host usually has no Node. Build locally and upload the result: +```bash +npm install +npm run build # generates public/build +``` + +## 3.3 Upload the code +Upload the whole project **except** `node_modules/`, `.git/` and `.env`. You can install +`vendor/` on the server (if you have SSH) or upload it. +```bash +composer install --no-dev --optimize-autoloader +``` + +## 3.4 Document root → `public/` folder +The domain must point to `…/construprogress/public` (never the root). +- **VPS (nginx/apache):** virtualhost `root` → `/path/construprogress/public`. +- **OVH shared:** in *Multisite*, set the domain root folder → `construprogress/public`. + +## 3.5 Configure `.env` +Copy `.env.example` to `.env` and adjust: +```ini +APP_NAME=ConstruProgress +APP_ENV=production +APP_DEBUG=false +APP_URL=https://yourdomain.com +APP_LOCALE=es + +DB_CONNECTION=mysql +DB_HOST=... +DB_DATABASE=... +DB_USERNAME=... +DB_PASSWORD=... + +FILESYSTEM_DISK=public # photos/files use the public disk +SESSION_DRIVER=database +``` + +## 3.6 Prepare the application +```bash +php artisan key:generate +php artisan migrate --force +php artisan db:seed --force # roles, permissions (PermissionCatalogSeeder…) +php artisan storage:link # public/storage → storage/app/public +php artisan config:cache +php artisan route:cache +php artisan view:cache +``` + +## 3.7 Write permissions +```bash +chmod -R ug+rwX storage bootstrap/cache +``` + +## 3.8 Scheduler cron (overdue task alerts) +Add a cron **every minute**: +```cron +* * * * * cd /path/construprogress && php artisan schedule:run >> /dev/null 2>&1 +``` +This runs `issues:notify-overdue` daily. No queue worker is needed (notifications are +synchronous). + +## 3.9 HTTPS +Enable OVH's free SSL (Let's Encrypt) and force HTTPS. + +## 3.10 Post-deploy checks +- The home redirects to **login** (correct). +- The **logo** (`/images/logo-rte.png`) and **flags** (`/images/flags/*.svg`) display. +- Uploading a **photo** in an issue works (validates `storage:link` + `FILESYSTEM_DISK=public`). +- The **API** responds: `GET https://yourdomain.com/api/v1/...` with a token. + +## 3.11 Deploying later changes +```bash +git pull +composer install --no-dev --optimize-autoloader +# (on your PC) npm run build and upload public/build +php artisan migrate --force +php artisan config:cache && php artisan route:cache && php artisan view:cache +``` + +
+ +--- + +# 4. Access and getting started + +📷 *Screenshot: login screen with the language switcher.* + +## 4.1 Sign in +Go to `https://yourdomain.com/login` with your email and password. After installation, +the seeder creates an initial administrator (**admin@email.com**) — **change its +password** as soon as you log in. + +## 4.2 Password recovery +From the login, “Forgot your password?” sends a reset email (requires outgoing mail +configured in `.env`). + +## 4.3 Profile +In the user menu → **Profile** you can update your details, change your password and +(optionally) delete your account. + +## 4.4 Language +The application is available in **Spanish** and **English**. Switch the language with the +flag toggle (🇪🇸/🇬🇧) in the header. Each user also has a **default language** configurable +when creating/editing the user. + +
+ +--- + +# 5. Roles and permissions + +## 5.1 System roles (baseline) + +| Role | Baseline permissions (editable) | +|---|---| +| **Admin** | Full access (`manage all`). | +| **Supervisor** | View projects, upload layers, update progress. | +| **Consultant (Consultor)** | View projects, view reports. | +| **Client (Cliente)** | View projects. | + +> Each role's permissions are **fully configurable** from *Administration → Roles* +> (permission matrix). The table above is the seeder's initial setup. For a non-Admin +> role to use newer modules (phases, issues, assignments…), grant the matching +> permissions. + +📷 *Screenshot: permission matrix when editing a role.* + +## 5.2 Permission catalogue (by section) + +- **Projects:** view, create, edit, delete, export. +- **Phases & progress:** view phases, manage phases, update progress. +- **Layers & elements:** view, upload/import, edit, delete. +- **Inspections:** view, record, delete, manage templates. +- **Issues:** view, create, edit (resolve/close), delete. +- **Companies:** view, create, edit, delete, **assign to projects**. +- **Users:** view, create, edit, delete, **assign users/roles to projects**. +- **Roles:** manage roles and permissions. +- **Reports:** view panel, export. +- **Files:** view, upload, delete. +- **General:** `manage all` (super-administrator). + +## 5.3 Project role (different from the system role) +When assigning **users** to a project you pick their role: *Supervisor, Consultant, +Client, Viewer*. For **companies**: *Owner, Constructor, Subcontractor, Consultant, +Supplier, Other*. + +
+ +--- + +# 6. Section-by-section user guide + +## 6.1 Main dashboard +Home view with the overview: accessible projects, progress, open/critical issues and +recent issues. Includes shortcuts to the sections. + +📷 *Screenshot: main dashboard.* + +## 6.2 Projects + +### Listing +*Projects* shows a table (with search and sorting) of the projects you can access, with +reference, name, address, status, progress and dates. Row actions: **Dashboard**, **Map** +and **Edit**. + +📷 *Screenshot: project listing.* + +### Create / Edit +The project editor is organized into **tabs**: +1. **Data**: reference, name, address, location (lat/lng on a map), dates and status. +2. **Phases** (see 6.3). +3. **Users** (see 6.11): assign users to the project with their role. +4. **Companies**: assign companies to the project with their role. + +📷 *Screenshot: project editor (Data tab).* + +## 6.3 Phases +Inside the project editor, the **Phases** tab lists phases in a table (order, name, +progress, dates, color) and lets you: +- **Add phase**: opens a **modal form** with all parameters (name, description, order, + color, % progress, planned and actual dates). +- **Edit**: same modal with the data loaded. +- **Update progress**: a dedicated screen to record progress. +- **Delete**. +(Requires the *manage phases* permission.) + +📷 *Screenshot: Phases tab with the table and the create/edit modal.* + +## 6.4 Project map +*Projects → Map* opens the interactive map (Leaflet) with side tabs/panel: +- **Layers & elements**: visualization by layers; selecting an element shows its panel + with responsible, progress, files and inspections. +- **Inspection**: from an element, pick a template and record the inspection. +- **Files**: the element's file manager. +- **Issues**: tab with the project's issues; from an element you can click **“Issue”** to + report a new one already linked to that element. + +📷 *Screenshot: project map with a selected element panel.* + +## 6.5 Layers and elements +Manage layers per phase (import/upload, edit, delete) and the elements they contain, +with their geometry, status and progress. + +## 6.6 Inspections and templates +- **Templates** (*Projects → Templates*): configurable forms (text, number, percentage, + boolean, select, textarea fields…). Each template is versioned for mobile sync. +- **Record inspection**: from the map, on an element, by selecting the template and + filling its fields (status, result, notes). + +📷 *Screenshot: inspection form from the map.* + +## 6.7 Issues +Accessible from *Projects → Issues* or the Issues tab on the map. + +### Listing +A table (Rappasoft) with **filters by status, priority and type**, search, a task +progress bar, comment/photo counters and an **overdue** tasks badge. The header has +**New issue** and **Templates** (checklist) buttons. + +📷 *Screenshot: issue listing with filters.* + +### Create / Edit +Dedicated pages (not a modal). Fields: title, description, **priority** (low/medium/ +high/critical), **status** (open/in review/resolved/closed), **type** (defect/safety/ +quality/documentation/other), assignee and resolution notes. Saving opens the **detail**. + +### Issue detail +- **Tasks (checklist)**: add/check/delete tasks with assignee and due date; a % progress + bar; **apply a checklist template** for bulk creation. +- **Follow-up & comments**: comment thread, each with an optional photo. +- **Issue photos**: a gallery with upload/delete. +- **Verification / workflow**: send to review (when tasks are complete), **validate and + resolve**, close, reopen; with resolution notes. + +📷 *Screenshot: issue detail (checklist + comments + photos).* + +### Checklist templates +*Issues → Templates*: create reusable task lists (for recurring defects) to later apply +to any issue. + +### Notifications +A bell notification is sent when an issue/task is assigned, when someone comments and on +status changes. The scheduled command alerts about **overdue tasks**. + +## 6.8 Gantt chart +*Projects → Gantt*: a timeline view of the project's phases. + +📷 *Screenshot: Gantt chart.* + +## 6.9 Reports and exports +*Reports* shows a metrics panel and lets you **export to Excel**: projects, phases and +inspections. (Requires *view/export reports* permissions.) + +📷 *Screenshot: reports panel.* + +## 6.10 Companies +*Companies*: a table (Rappasoft) with search and filters (type, status). Lets you create, +view and edit companies (logo, tax ID, contact, address…). Companies are assigned to +projects with a role from the project's Companies tab. + +📷 *Screenshot: company listing.* + +## 6.11 Users +*Administration → Users*: a table (Rappasoft) of users. Creating/editing a user includes +personal data, company, status and validity, **system role**, **default language** (with +flags) and notes. Project assignment (with a role) is done from the project's Users tab. + +📷 *Screenshot: create/edit user form (with the language selector).* + +## 6.12 Roles and permissions (administration) +*Administration → Roles*: a roles table; creating/editing a role assigns permissions via +a **matrix** grouped by section. *Administration → Permissions* shows the full catalogue. + +## 6.13 Client portal +Client-role users get a **simplified panel** (`/client`) focused on checking the progress +of their projects. + +## 6.14 Files / gallery +Each project and element has a file manager (images and documents) with upload, viewer +and delete, according to *Files* permissions. + +
+ +--- + +# 7. Typical workflows + +## 7.1 Set up a project (Admin/Supervisor) +1. **Projects → New**: fill in data and location. +2. **Phases** tab: create phases with dates and colors. +3. **Users/Companies** tabs: assign the team and companies with their role. +4. **Map**: create layers and import/draw the elements. +5. **Templates**: define the inspection templates you need. + +## 7.2 Field/office tracking +1. On the **Map**, select an element and **record an inspection**. +2. If you spot a problem, click **“Issue”** to create it linked to the element. +3. In the **issue detail**, add the **checklist** (or apply a template), assign owners + and dates, upload **photos** and comment on progress. +4. When all tasks are done, **send to review** and then **validate and resolve**. + +## 7.3 Reporting and closing +1. Update the **progress** of phases/elements. +2. Check the **Gantt** and the project **Dashboard**. +3. In **Reports**, export projects/phases/inspections to Excel for delivery. + +
+ +--- + +# 8. API (mobile app) + +The application exposes a REST API (prefix `/api/v1`) designed for an **offline-first** +mobile app. The full contract lives in: +- `docs/openapi.yaml` — OpenAPI 3 specification. +- `docs/MOBILE_SYNC_PROTOCOL.md` — sync protocol. +- `docs/MOBILE_APP_BRIEF.md` — handoff guide with examples and the data model. + +## 8.1 Authentication +Per-device **Sanctum** tokens (ability `mobile-sync`). `POST /login` returns the token; +all other calls use `Authorization: Bearer `. + +## 8.2 Endpoints +| Method | Route | Use | +|---|---|---| +| POST | `/api/v1/login` | Device token | +| GET | `/api/v1/me` | User + permissions | +| POST | `/api/v1/logout` | Revoke token | +| GET | `/api/v1/projects` | Accessible projects | +| GET | `/api/v1/projects/{id}/bundle?since=` | Download (snapshot or delta + deletions) | +| GET | `/api/v1/templates?since=` | Templates (version/hash) | +| POST | `/api/v1/sync` | Push changes (idempotent by `uuid`) | +| POST | `/api/v1/media` | Upload files (multipart) | + +## 8.3 Sync model (summary) +- **PULL**: full `bundle` the first time; then `?since=` returns only what changed + plus the **deleted ids** (tombstones). The `since` parameter must be **URL-encoded**. +- **PUSH** `/sync`: a batch of operations, each with `uuid` (idempotency) and + `client_updated_at`. Per-operation response: `applied | duplicate | conflict | error` + (conflicts via *last-write-wins*). +- **Media**: multipart, idempotent by `uuid`, attached to the parent entity. +- **Security**: the server sets `user_id`/`project_id` and validates permissions per op. + +> Operation, payload and field detail: see `docs/MOBILE_APP_BRIEF.md`. + +
+ +--- + +# 9. Maintenance, backups and updates + +## 9.1 Backups +- **Database**: daily backup (`mysqldump`) — contains all data. +- **Uploaded files**: back up `storage/app/public` (photos, logos, documents). +- Also keep a copy of `.env` (contains keys and credentials) in a safe place. + +## 9.2 Version updates +Follow 3.11: `git pull`, `composer install --no-dev`, rebuild assets, `migrate --force` +and regenerate caches. Back up **before** migrating. + +## 9.3 Scheduled tasks +The scheduler cron (3.8) must be active for overdue task alerts. + +## 9.4 Best practices +- `APP_DEBUG=false` in production. +- Force HTTPS. +- Change default credentials and review role permissions. + +
+ +--- + +# 10. Troubleshooting (FAQ) + +**No styles / the page looks “broken”.** +Compiled assets were not uploaded. Run `npm run build` and upload `public/build`; check +`APP_URL` is correct and regenerate caches. + +**Images/photos don't show (broken icon).** +Missing storage link: `php artisan storage:link` and `FILESYSTEM_DISK=public`. + +**500 error after deploying.** +Check `.env` (DB, `APP_KEY` via `key:generate`), permissions on `storage/` and +`bootstrap/cache`, and `php artisan config:clear`. + +**Flags show as “ES/GB” instead of the flag.** +That's some systems' emoji behavior; the app uses local SVG flags (`/images/flags`). +Verify that folder was uploaded. + +**A user can't see a module / can't create.** +It's a permissions matter: grant them to their role in *Administration → Roles*. + +**`composer install` fails due to PHP version.** +Use PHP 8.3, or `composer install --no-dev --ignore-platform-reqs`. + +**Overdue alerts don't arrive.** +The scheduler cron (3.8) is missing, or mail/notifications aren't configured. + +
+ +--- + +# 11. Appendices + +## 11.1 Main route map +| Section | Route | +|---|---| +| Login | `/login` | +| Dashboard | `/dashboard` | +| Projects | `/projects` | +| Edit project | `/projects/{id}/edit` | +| Map | `/projects/{id}/map` | +| Gantt | `/projects/{id}/gantt` | +| Project report | `/projects/{id}/report` | +| Issues | `/projects/{id}/issues` | +| Checklist templates | `/projects/{id}/issues/checklists` | +| Inspection templates | `/projects/{id}/templates` | +| Companies | `/companies` | +| Users | `/admin/users` | +| Roles | `/admin/roles` | +| Permissions | `/admin/permissions` | +| Reports | `/reports/dashboard` | +| Client portal | `/client` | + +## 11.2 Related documents +- `docs/openapi.yaml`, `docs/MOBILE_SYNC_PROTOCOL.md`, `docs/MOBILE_APP_BRIEF.md`. + +## 11.3 Screenshot index +> List of the “📷 Screenshot:” placeholders throughout the manual, to insert when +> converting the document to Word. diff --git a/docs/MANUAL.md b/docs/MANUAL.md index 036d141..77db72d 100644 --- a/docs/MANUAL.md +++ b/docs/MANUAL.md @@ -1,31 +1,50 @@ -# Manual de ConstruProgress + -**Aplicación de seguimiento de obra — MAI Group / RTE International** +
+ +# ConstruProgress + +## Manual de la aplicación + +**Sistema de seguimiento de obra** + +MAI Group · RTE International + +📷 *Captura: portada / logotipo de la aplicación (`public/images/logo-rte.png`).* | | | |---|---| | Versión del documento | 1.0 | | Fecha | Junio 2026 | | Ámbito | Aplicación web + API para la app móvil | +| Idioma | Español (versión en inglés: `MANUAL.en.md`) | -> Documento de origen en Markdown (`docs/MANUAL.md`). Para obtener el Word: -> `pandoc docs/MANUAL.md -o docs/Manual.docx`, o copiar/pegar en `Manual.docx`. +
+ +
--- ## Índice -1. Introducción y conceptos -2. Requisitos del sistema -3. Instalación y despliegue -4. Acceso y primeros pasos -5. Roles y permisos -6. Manual de uso por secciones -7. Flujos de trabajo típicos -8. API (app móvil) -9. Mantenimiento, copias de seguridad y actualización -10. Resolución de problemas (FAQ) -11. Anexos +1. [Introducción y conceptos](#1-introducción-y-conceptos) +2. [Requisitos del sistema](#2-requisitos-del-sistema) +3. [Instalación y despliegue](#3-instalación-y-despliegue) +4. [Acceso y primeros pasos](#4-acceso-y-primeros-pasos) +5. [Roles y permisos](#5-roles-y-permisos) +6. [Manual de uso por secciones](#6-manual-de-uso-por-secciones) +7. [Flujos de trabajo típicos](#7-flujos-de-trabajo-típicos) +8. [API (app móvil)](#8-api-app-móvil) +9. [Mantenimiento, copias de seguridad y actualización](#9-mantenimiento-copias-de-seguridad-y-actualización) +10. [Resolución de problemas (FAQ)](#10-resolución-de-problemas-faq) +11. [Anexos](#11-anexos) + +
--- @@ -39,6 +58,8 @@ registrar inspecciones con plantillas, gestionar incidencias (con tareas, coment y fotos) y generar informes. Está preparada además para alimentar una **app móvil que trabaja sin conexión** en campo y sincroniza al recuperar red. +📷 *Captura: panel principal (dashboard) con el resumen general.* + ## 1.2 Conceptos clave (glosario) | Término | Significado | @@ -62,6 +83,8 @@ trabaja sin conexión** en campo y sincroniza al recuperar red. - **Permisos:** spatie/laravel-permission. - **API móvil:** Laravel Sanctum (tokens), sincronización offline-first. +
+ --- # 2. Requisitos del sistema @@ -78,6 +101,8 @@ trabaja sin conexión** en campo y sincroniza al recuperar red. **Cliente (navegador)** - Navegador moderno (Chrome, Edge, Firefox, Safari) con JavaScript activado. +
+ --- # 3. Instalación y despliegue @@ -169,10 +194,14 @@ php artisan migrate --force php artisan config:cache && php artisan route:cache && php artisan view:cache ``` +
+ --- # 4. Acceso y primeros pasos +📷 *Captura: pantalla de inicio de sesión (login) con el conmutador de idioma.* + ## 4.1 Inicio de sesión Accede a `https://tudominio.com/login` con tu email y contraseña. Tras la instalación, el seeder crea un administrador inicial (**admin@email.com**) — **cambia su contraseña** @@ -191,6 +220,8 @@ La aplicación está disponible en **Español** e **Inglés**. Cambia el idioma conmutador de banderas (🇪🇸/🇬🇧) de la cabecera. Cada usuario tiene además un **idioma por defecto** configurable al crear/editar el usuario. +
+ --- # 5. Roles y permisos @@ -209,6 +240,8 @@ defecto** configurable al crear/editar el usuario. > Para que un rol no-Admin use módulos nuevos (fases, incidencias, asignaciones…), > asígnale los permisos correspondientes. +📷 *Captura: matriz de permisos en la edición de un rol.* + ## 5.2 Catálogo de permisos (por sección) - **Proyectos:** ver, crear, editar, eliminar, exportar. @@ -228,6 +261,8 @@ Al asignar **usuarios** a un proyecto se elige su papel: *Supervisor, Consultor, Cliente, Observador*. Al asignar **empresas**: *Promotor, Constructor, Subcontratista, Consultor, Proveedor, Otro*. +
+ --- # 6. Manual de uso por secciones @@ -236,6 +271,8 @@ Consultor, Proveedor, Otro*. Vista de inicio con el resumen: proyectos accesibles, progreso, incidencias abiertas/ críticas e incidencias recientes. Incluye accesos directos a las secciones. +📷 *Captura: dashboard principal.* + ## 6.2 Proyectos ### Listado @@ -243,6 +280,8 @@ críticas e incidencias recientes. Incluye accesos directos a las secciones. acceso, con referencia, nombre, dirección, estado, progreso y fechas. Acciones por fila: **Dashboard**, **Mapa** y **Editar**. +📷 *Captura: listado de proyectos.* + ### Crear / Editar El editor de proyecto está organizado en **pestañas**: 1. **Datos**: referencia, nombre, dirección, ubicación (lat/lng en mapa), fechas y estado. @@ -250,6 +289,8 @@ El editor de proyecto está organizado en **pestañas**: 3. **Usuarios** (ver 6.11): asignar usuarios al proyecto con su rol. 4. **Empresas**: asignar empresas al proyecto con su rol. +📷 *Captura: editor de proyecto (pestaña Datos).* + ## 6.3 Fases Dentro del editor de proyecto, la pestaña **Fases** lista las fases en una tabla (orden, nombre, progreso, fechas, color) y permite: @@ -260,6 +301,8 @@ Dentro del editor de proyecto, la pestaña **Fases** lista las fases en una tabl - **Eliminar**. (Requiere el permiso *gestionar fases*.) +📷 *Captura: pestaña Fases con la tabla y el modal de crear/editar fase.* + ## 6.4 Mapa del proyecto *Proyectos → Mapa* abre el mapa interactivo (Leaflet) con pestañas/panel lateral: - **Capas y elementos**: visualización por capas; selección de un elemento muestra su @@ -269,6 +312,8 @@ Dentro del editor de proyecto, la pestaña **Fases** lista las fases en una tabl - **Incidencias**: pestaña con las incidencias del proyecto; desde un elemento puedes pulsar **“Incidencia”** para reportar una nueva ya vinculada a ese elemento. +📷 *Captura: mapa del proyecto con el panel de un elemento seleccionado.* + ## 6.5 Capas y elementos Gestión de capas por fase (importar/subir, editar, eliminar) y de los elementos que contienen, con su geometría, estado y progreso. @@ -280,6 +325,8 @@ contienen, con su geometría, estado y progreso. - **Registrar inspección**: desde el mapa, sobre un elemento, seleccionando la plantilla y rellenando sus campos (estado, resultado, notas). +📷 *Captura: formulario de inspección desde el mapa.* + ## 6.7 Incidencias Acceso desde *Proyectos → Incidencias* o la pestaña Incidencias del mapa. @@ -288,6 +335,8 @@ Tabla (Rappasoft) con **filtros por estado, prioridad y tipo**, búsqueda, barra progreso de tareas, contadores de comentarios/fotos y badge de tareas **vencidas**. Cabecera con botones **Nueva incidencia** y **Plantillas** (de checklist). +📷 *Captura: listado de incidencias con filtros.* + ### Crear / Editar Páginas propias (no modal). Campos: título, descripción, **prioridad** (baja/media/ alta/crítica), **estado** (abierto/en revisión/resuelto/cerrado), **tipo** (defecto/ @@ -302,6 +351,8 @@ abre el **detalle**. - **Verificación / workflow**: enviar a revisión (cuando las tareas están completas), **validar y resolver**, cerrar, reabrir; con notas de resolución. +📷 *Captura: detalle de incidencia (checklist + comentarios + fotos).* + ### Plantillas de checklist *Incidencias → Plantillas*: crea listas de tareas reutilizables (para defectos recurrentes) que luego se aplican a cualquier incidencia. @@ -313,21 +364,29 @@ estado. El comando programado avisa de **tareas vencidas**. ## 6.8 Cronograma (Gantt) *Proyectos → Gantt*: vista de planificación temporal de las fases del proyecto. +📷 *Captura: cronograma Gantt.* + ## 6.9 Informes y exportaciones *Informes* muestra un panel con métricas y permite **exportar a Excel**: proyectos, fases e inspecciones. (Requiere permisos *ver/exportar informes*.) +📷 *Captura: panel de informes.* + ## 6.10 Empresas *Empresas*: tabla (Rappasoft) con búsqueda y filtros (tipo, estado). Permite crear, ver y editar empresas (logo, NIF, contacto, dirección…). Las empresas se asignan a proyectos con un rol desde la pestaña Empresas del proyecto. +📷 *Captura: listado de empresas.* + ## 6.11 Usuarios *Administración → Usuarios*: tabla (Rappasoft) de usuarios. Crear/editar usuario incluye datos personales, empresa, estado y validez, **rol del sistema**, **idioma por defecto** (con banderas) y notas. La asignación a proyectos (con rol) se hace desde la pestaña Usuarios del proyecto. +📷 *Captura: formulario de crear/editar usuario (con el selector de idioma).* + ## 6.12 Roles y permisos (administración) *Administración → Roles*: tabla de roles; al crear/editar un rol se asignan permisos mediante una **matriz** agrupada por sección. *Administración → Permisos* muestra el @@ -341,6 +400,8 @@ centrado en consultar el avance de sus proyectos. Cada proyecto y elemento dispone de un gestor de archivos (imágenes y documentos) con subida, visor y eliminación, según permisos de *Archivos*. +
+ --- # 7. Flujos de trabajo típicos @@ -365,6 +426,8 @@ subida, visor y eliminación, según permisos de *Archivos*. 2. Consulta el **Gantt** y el **Dashboard** del proyecto. 3. En **Informes**, exporta a Excel proyectos/fases/inspecciones para la entrega. +
+ --- # 8. API (app móvil) @@ -403,6 +466,8 @@ token; el resto de llamadas usan `Authorization: Bearer `. > Detalle de operaciones, payloads y campos: ver `docs/MOBILE_APP_BRIEF.md`. +
+ --- # 9. Mantenimiento, copias de seguridad y actualización @@ -424,6 +489,8 @@ El cron del planificador (3.8) debe estar activo para los avisos de tareas venci - HTTPS forzado. - Cambiar credenciales por defecto y revisar permisos de roles. +
+ --- # 10. Resolución de problemas (FAQ) @@ -452,6 +519,8 @@ Usa PHP 8.3, o `composer install --no-dev --ignore-platform-reqs`. **Los avisos de vencimiento no llegan.** Falta el cron del planificador (3.8) o el correo/notificaciones no están configurados. +
+ --- # 11. Anexos @@ -479,5 +548,6 @@ Falta el cron del planificador (3.8) o el correo/notificaciones no están config ## 11.2 Documentos relacionados - `docs/openapi.yaml`, `docs/MOBILE_SYNC_PROTOCOL.md`, `docs/MOBILE_APP_BRIEF.md`. -## 11.3 Capturas de pantalla -> *(Reservado: insertar capturas de cada sección al pasar el manual a Word.)* +## 11.3 Índice de capturas +> Lista de huecos de captura marcados con “📷 Captura:” a lo largo del manual, para +> insertarlos al pasar el documento a Word.