# campodidier07-collab/sigvos_laravel architecture

> Architecture diagram of the GitHub repository campodidier07-collab/sigvos_laravel, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/campodidier07-collab/sigvos_laravel
- Repository: https://github.com/campodidier07-collab/sigvos_laravel

## Overview

SIGVOS is a Laravel crop-management platform for agricultural teams. Its central workflow is managing lots and crop cycles, recording and assigning field activities, tracking harvest outcomes, and using dashboards and reports to monitor production. The README also identifies RBAC, input and cost traceability, and responsive web access; the tree shows related API, calendar, search, notification, photo, and assignment modules. Connections below use the README and shown source references; uninspected routes and controllers limit claims about their runtime dispatch.

Main entry points: [`app/Http/Controllers`](https://github.com/campodidier07-collab/sigvos_laravel/tree/main/app/Http/Controllers) (Web workflows), [`app/Http/Controllers/Api/ActividadController.php`](https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Controllers/Api/ActividadController.php) (Activity API), [`app/Services/RecordatorioService.php`](https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Services/RecordatorioService.php) (Alerts & reminders), [`app/Http/Controllers/ReporteController.php`](https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Controllers/ReporteController.php) (Production reports)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_field["Field Operations"]
  node_web["Web workflows"]
  node_activity["Activity tracking"]
  node_assignments["Lot assignments"]
  node_calendar["Crop calendar"]
  node_harvest["Harvest records"]
  node_photos["Crop photos"]
  node_reminders["Alerts &amp; reminders"]
end

subgraph group_insights["Monitoring &amp; Reports"]
  node_dashboard["Dashboards"]
  node_reports["Production reports"]
  node_search["Farm search"]
end

subgraph group_access["Access &amp; API"]
  node_api["REST API<br/>[api.php]"]
  node_auth["Authentication<br/>[AuthController.php]"]
  node_rbac["Role checks<br/>[CheckRole.php]"]
  node_crop_api["Crop API"]
  node_activity_api["Activity API"]
  node_activity_resource["Activity resource"]
  node_crop_resource["Crop resource"]
end

subgraph group_domain["Domain Data"]
  node_crop_model["Crop records<br/>[Cultivo.php]"]
  node_lot_model["Lot records<br/>[Lote.php]"]
  node_activity_model["Activity records<br/>[Actividad.php]"]
  node_notification_model["Notifications<br/>[Notificacion.php]"]
  node_user_model["User accounts<br/>[Usuario.php]"]
  node_lookup_models["Crop catalogs"]
end

node_user(("Field users"))
node_db[("MySQL database")]

node_user -.->|"uses"| node_web
node_user -.->|"uses"| node_api
node_api -.->|"routes"| node_activity_api
node_activity_api -->|"reads and writes"| node_activity_model
node_activity_api -->|"queries"| node_crop_model
node_activity_api -->|"creates"| node_notification_model
node_activity_api -->|"queries"| node_user_model
node_activity_api -->|"serializes"| node_activity_resource
node_crop_api -->|"queries"| node_crop_model
node_crop_api -->|"queries"| node_lot_model
node_crop_api -->|"queries"| node_lookup_models
node_crop_api -->|"serializes"| node_crop_resource
node_reminders -->|"checks"| node_activity_model
node_reminders -->|"checks"| node_crop_model
node_reminders -->|"creates"| node_notification_model
node_reminders -->|"queries"| node_user_model
node_reminders -->|"checks"| node_lookup_models
node_reports -->|"queries"| node_activity_model
node_reports -->|"queries"| node_crop_model
node_reports -->|"queries"| node_lot_model
node_reports -->|"queries"| node_lookup_models
node_db -.->|"stores"| node_crop_model
node_db -.->|"stores"| node_lot_model
node_db -.->|"stores"| node_activity_model
node_web -.->|"offers"| node_activity
node_web -.->|"offers"| node_assignments
node_web -.->|"offers"| node_calendar
node_web -.->|"offers"| node_harvest
node_web -.->|"offers"| node_photos
node_web -.->|"offers"| node_dashboard
node_web -.->|"offers"| node_reports
node_web -.->|"offers"| node_search
node_web -.->|"checks roles"| node_rbac

click node_web "https://github.com/campodidier07-collab/sigvos_laravel/tree/main/app/Http/Controllers"
click node_activity "https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Controllers/ActividadController.php"
click node_assignments "https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Controllers/AsignacionController.php"
click node_calendar "https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Controllers/CalendarioController.php"
click node_harvest "https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Controllers/CosechaController.php"
click node_photos "https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Controllers/FotoCultivoController.php"
click node_reminders "https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Services/RecordatorioService.php"
click node_dashboard "https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Controllers/DashboardController.php"
click node_reports "https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Controllers/ReporteController.php"
click node_search "https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Controllers/BusquedaController.php"
click node_api "https://github.com/campodidier07-collab/sigvos_laravel/blob/main/routes/api.php"
click node_auth "https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Controllers/Api/AuthController.php"
click node_rbac "https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Middleware/CheckRole.php"
click node_crop_api "https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Controllers/Api/CultivoController.php"
click node_activity_api "https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Controllers/Api/ActividadController.php"
click node_activity_resource "https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Resources/ActividadResource.php"
click node_crop_resource "https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Resources/CultivoResource.php"
click node_crop_model "https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Models/Cultivo.php"
click node_lot_model "https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Models/Lote.php"
click node_activity_model "https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Models/Actividad.php"
click node_notification_model "https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Models/Notificacion.php"
click node_user_model "https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Models/Usuario.php"
click node_lookup_models "https://github.com/campodidier07-collab/sigvos_laravel/tree/main/app/Models"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_web,node_activity,node_assignments,node_calendar,node_harvest,node_photos,node_reminders,node_user toneBlue
class node_dashboard,node_reports,node_search,node_db toneAmber
class node_api,node_auth,node_rbac,node_crop_api,node_activity_api,node_activity_resource,node_crop_resource toneMint
class node_crop_model,node_lot_model,node_activity_model,node_notification_model,node_user_model,node_lookup_models toneRose
```

## Components

### Field Operations

- [Web workflows](https://github.com/campodidier07-collab/sigvos_laravel/tree/main/app/Http/Controllers): `app/Http/Controllers`
- [Activity tracking](https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Controllers/ActividadController.php): `app/Http/Controllers/ActividadController.php`
- [Lot assignments](https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Controllers/AsignacionController.php): `app/Http/Controllers/AsignacionController.php`
- [Crop calendar](https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Controllers/CalendarioController.php): `app/Http/Controllers/CalendarioController.php`
- [Harvest records](https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Controllers/CosechaController.php): `app/Http/Controllers/CosechaController.php`
- [Crop photos](https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Controllers/FotoCultivoController.php): `app/Http/Controllers/FotoCultivoController.php`
- [Alerts & reminders](https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Services/RecordatorioService.php): `app/Services/RecordatorioService.php`

### Monitoring & Reports

- [Dashboards](https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Controllers/DashboardController.php): `app/Http/Controllers/DashboardController.php`
- [Production reports](https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Controllers/ReporteController.php): `app/Http/Controllers/ReporteController.php`
- [Farm search](https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Controllers/BusquedaController.php): `app/Http/Controllers/BusquedaController.php`

### Access & API

- [REST API](https://github.com/campodidier07-collab/sigvos_laravel/blob/main/routes/api.php): `routes/api.php`
- [Authentication](https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Controllers/Api/AuthController.php): `app/Http/Controllers/Api/AuthController.php`
- [Role checks](https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Middleware/CheckRole.php): `app/Http/Middleware/CheckRole.php`
- [Crop API](https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Controllers/Api/CultivoController.php): `app/Http/Controllers/Api/CultivoController.php`
- [Activity API](https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Controllers/Api/ActividadController.php): `app/Http/Controllers/Api/ActividadController.php`
- [Activity resource](https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Resources/ActividadResource.php): `app/Http/Resources/ActividadResource.php`
- [Crop resource](https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Http/Resources/CultivoResource.php): `app/Http/Resources/CultivoResource.php`

### Domain Data

- [Crop records](https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Models/Cultivo.php): `app/Models/Cultivo.php`
- [Lot records](https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Models/Lote.php): `app/Models/Lote.php`
- [Activity records](https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Models/Actividad.php): `app/Models/Actividad.php`
- [Notifications](https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Models/Notificacion.php): `app/Models/Notificacion.php`
- [User accounts](https://github.com/campodidier07-collab/sigvos_laravel/blob/main/app/Models/Usuario.php): `app/Models/Usuario.php`
- [Crop catalogs](https://github.com/campodidier07-collab/sigvos_laravel/tree/main/app/Models): `app/Models`

### Other components

- **Field users**
- **MySQL database**

## Connections

- Field users → Web workflows: uses (evidence: `README.md`)
- Field users → REST API: uses (evidence: `README.md`)
- REST API → Activity API: routes
- Activity API → Activity records: reads and writes (evidence: `app/Http/Controllers/Api/ActividadController.php`)
- Activity API → Crop records: queries (evidence: `app/Http/Controllers/Api/ActividadController.php`)
- Activity API → Notifications: creates (evidence: `app/Http/Controllers/Api/ActividadController.php`)
- Activity API → User accounts: queries (evidence: `app/Http/Controllers/Api/ActividadController.php`)
- Activity API → Activity resource: serializes (evidence: `app/Http/Controllers/Api/ActividadController.php`)
- Crop API → Crop records: queries (evidence: `app/Http/Controllers/Api/CultivoController.php`)
- Crop API → Lot records: queries (evidence: `app/Http/Controllers/Api/CultivoController.php`)
- Crop API → Crop catalogs: queries (evidence: `app/Http/Controllers/Api/CultivoController.php`)
- Crop API → Crop resource: serializes (evidence: `app/Http/Controllers/Api/CultivoController.php`)
- Alerts & reminders → Activity records: checks (evidence: `app/Services/RecordatorioService.php`)
- Alerts & reminders → Crop records: checks (evidence: `app/Services/RecordatorioService.php`)
- Alerts & reminders → Notifications: creates (evidence: `app/Services/RecordatorioService.php`)
- Alerts & reminders → User accounts: queries (evidence: `app/Services/RecordatorioService.php`)
- Alerts & reminders → Crop catalogs: checks (evidence: `app/Services/RecordatorioService.php`)
- Production reports → Activity records: queries (evidence: `app/Http/Controllers/ReporteController.php`)
- Production reports → Crop records: queries (evidence: `app/Http/Controllers/ReporteController.php`)
- Production reports → Lot records: queries (evidence: `app/Http/Controllers/ReporteController.php`)
- Production reports → Crop catalogs: queries (evidence: `app/Http/Controllers/ReporteController.php`)
- MySQL database → Crop records: stores (evidence: `README.md`)
- MySQL database → Lot records: stores (evidence: `README.md`)
- MySQL database → Activity records: stores (evidence: `README.md`)
- Web workflows → Activity tracking: offers (evidence: `README.md`)
- Web workflows → Lot assignments: offers (evidence: `README.md`)
- Web workflows → Crop calendar: offers (evidence: `README.md`)
- Web workflows → Harvest records: offers (evidence: `README.md`)
- Web workflows → Crop photos: offers (evidence: `README.md`)
- Web workflows → Dashboards: offers (evidence: `README.md`)
- Web workflows → Production reports: offers (evidence: `README.md`)
- Web workflows → Farm search: offers (evidence: `README.md`)
- Web workflows → Role checks: checks roles (evidence: `README.md`)
