# jlcuenca00/dar-ltcms architecture

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

- Interactive diagram: https://gitdiagram.com/jlcuenca00/dar-ltcms
- Repository: https://github.com/jlcuenca00/dar-ltcms

## Overview

DAR-LTCMS is a role-based land-transfer clearance and monitoring system for the DAR Negros Oriental Provincial Office. Legal clearance staff encode applications and record office actions; landowners view linked records; geodetic personnel access authorized parcel and map functions. Its domain spans source-record and landholding records, application review and decisions, compliance and separate clearance-release tracking, plus parcel geometry and monitoring. The graph includes core record models, audit and notification services, and protected administrative files. Unsampled features are represented by their existing controller directories; edges are limited to README statements and indexed references.

Main entry points: [`app/Http/Controllers/Staff`](https://github.com/jlcuenca00/dar-ltcms/tree/main/app/Http/Controllers/Staff) (Application operations), [`app/Models/Landholding.php`](https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Models/Landholding.php) (Landholding records), [`app/Models/SourceRecordPackage.php`](https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Models/SourceRecordPackage.php) (Source record packages), [`app/Models/LandTransferApplication.php`](https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Models/LandTransferApplication.php) (Transfer application)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workflow["Clearance workflow"]
  node_application_ops["Application operations"]
  node_application["Transfer application"]
  node_clearance_ops["Clearance processing"]
  node_landowner_portal["Landowner portal"]
  node_monitoring["Monitoring reports"]
end

subgraph group_records["Land records"]
  node_source_packages["Source record packages"]
  node_legacy_records["Legacy records<br/>[LegacyRecord.php]"]
  node_landowners["Landowner records<br/>[Landowner.php]"]
  node_landholdings["Landholding records<br/>[Landholding.php]"]
end

subgraph group_maps["Parcel mapping"]
  node_geodetic_portal["Geodetic portal"]
  node_parcels["Parcel records<br/>[Parcel.php]"]
  node_parcel_geometry["Geometry editing"]
  node_map_data["Map data"]
end

subgraph group_shared["Shared services"]
  node_audit["Audit logging<br/>[AuditLogger.php]"]
  node_notifications["Notifications"]
  node_protected_files["Protected files"]
  node_postgres[("PostgreSQL")]
end

node_staff(("Clearance staff"))
node_landowner_actor(("Landowner"))
node_geodetic_actor(("Geodetic personnel"))

node_staff -->|"encodes applications"| node_application_ops
node_application_ops -->|"records actions"| node_application
node_application_ops -->|"processes clearance"| node_clearance_ops
node_landowner_actor -->|"views linked records"| node_landowner_portal
node_geodetic_actor -->|"accesses parcel maps"| node_geodetic_portal
node_application -->|"references parties"| node_landowners
node_landholdings -->|"belongs to"| node_landowners
node_landholdings -->|"belongs to"| node_parcels
node_landholdings -->|"references package"| node_source_packages
node_source_packages -->|"belongs to"| node_parcels
node_source_packages -->|"has records"| node_legacy_records
node_application_ops -.->|"manages packages"| node_source_packages
node_geodetic_portal -.->|"supports editing"| node_parcel_geometry
node_geodetic_portal -.->|"serves map data"| node_map_data
node_parcel_geometry -.->|"updates geometry"| node_parcels
node_monitoring -.->|"reports on"| node_application
node_application_ops -.->|"records audit"| node_audit
node_application_ops -.->|"notifies users"| node_notifications
node_landowner_portal -.->|"shows linked records"| node_landholdings
node_application -.->|"persists records"| node_postgres
node_protected_files -->|"checks registration"| node_source_packages
node_protected_files -->|"checks registration"| node_landholdings
node_protected_files -->|"checks registration"| node_parcels

click node_application_ops "https://github.com/jlcuenca00/dar-ltcms/tree/main/app/Http/Controllers/Staff"
click node_application "https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Models/LandTransferApplication.php"
click node_clearance_ops "https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Http/Controllers/Staff/ApplicationClearanceController.php"
click node_landowner_portal "https://github.com/jlcuenca00/dar-ltcms/tree/main/app/Http/Controllers/Landowner"
click node_geodetic_portal "https://github.com/jlcuenca00/dar-ltcms/tree/main/app/Http/Controllers/Geodetic"
click node_source_packages "https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Models/SourceRecordPackage.php"
click node_legacy_records "https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Models/LegacyRecord.php"
click node_landowners "https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Models/Landowner.php"
click node_landholdings "https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Models/Landholding.php"
click node_parcels "https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Models/Parcel.php"
click node_parcel_geometry "https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Services/ParcelGeometryService.php"
click node_map_data "https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Services/ParcelMapDataService.php"
click node_monitoring "https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Http/Controllers/Staff/MonitoringReportController.php"
click node_audit "https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Services/AuditLogger.php"
click node_notifications "https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Services/NotificationService.php"
click node_protected_files "https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Services/ProtectedAdministrativeStorage.php"

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_application_ops,node_application,node_clearance_ops,node_landowner_portal,node_monitoring toneBlue
class node_source_packages,node_legacy_records,node_landowners,node_landholdings toneAmber
class node_geodetic_portal,node_parcels,node_parcel_geometry,node_map_data toneMint
class node_audit,node_notifications,node_protected_files,node_postgres toneRose
class node_staff,node_landowner_actor,node_geodetic_actor toneIndigo
```

## Components

### Clearance workflow

- [Application operations](https://github.com/jlcuenca00/dar-ltcms/tree/main/app/Http/Controllers/Staff): `app/Http/Controllers/Staff`
- [Transfer application](https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Models/LandTransferApplication.php): `app/Models/LandTransferApplication.php`
- [Clearance processing](https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Http/Controllers/Staff/ApplicationClearanceController.php): `app/Http/Controllers/Staff/ApplicationClearanceController.php`
- [Landowner portal](https://github.com/jlcuenca00/dar-ltcms/tree/main/app/Http/Controllers/Landowner): `app/Http/Controllers/Landowner`
- [Monitoring reports](https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Http/Controllers/Staff/MonitoringReportController.php): `app/Http/Controllers/Staff/MonitoringReportController.php`

### Land records

- [Source record packages](https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Models/SourceRecordPackage.php): `app/Models/SourceRecordPackage.php`
- [Legacy records](https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Models/LegacyRecord.php): `app/Models/LegacyRecord.php`
- [Landowner records](https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Models/Landowner.php): `app/Models/Landowner.php`
- [Landholding records](https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Models/Landholding.php): `app/Models/Landholding.php`

### Parcel mapping

- [Geodetic portal](https://github.com/jlcuenca00/dar-ltcms/tree/main/app/Http/Controllers/Geodetic): `app/Http/Controllers/Geodetic`
- [Parcel records](https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Models/Parcel.php): `app/Models/Parcel.php`
- [Geometry editing](https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Services/ParcelGeometryService.php): `app/Services/ParcelGeometryService.php`
- [Map data](https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Services/ParcelMapDataService.php): `app/Services/ParcelMapDataService.php`

### Shared services

- [Audit logging](https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Services/AuditLogger.php): `app/Services/AuditLogger.php`
- [Notifications](https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Services/NotificationService.php): `app/Services/NotificationService.php`
- [Protected files](https://github.com/jlcuenca00/dar-ltcms/blob/main/app/Services/ProtectedAdministrativeStorage.php): `app/Services/ProtectedAdministrativeStorage.php`
- **PostgreSQL**

### Other components

- **Clearance staff**
- **Landowner**
- **Geodetic personnel**

## Connections

- Clearance staff → Application operations: encodes applications (evidence: `README.md`)
- Application operations → Transfer application: records actions (evidence: `README.md`)
- Application operations → Clearance processing: processes clearance (evidence: `README.md`)
- Landowner → Landowner portal: views linked records (evidence: `README.md`)
- Geodetic personnel → Geodetic portal: accesses parcel maps (evidence: `README.md`)
- Transfer application → Landowner records: references parties (evidence: `app/Models/LandTransferApplication.php`)
- Landholding records → Landowner records: belongs to (evidence: `app/Models/Landholding.php`)
- Landholding records → Parcel records: belongs to (evidence: `app/Models/Landholding.php`)
- Landholding records → Source record packages: references package (evidence: `app/Models/Landholding.php`)
- Source record packages → Parcel records: belongs to (evidence: `app/Models/SourceRecordPackage.php`)
- Source record packages → Legacy records: has records (evidence: `app/Models/SourceRecordPackage.php`)
- Application operations → Source record packages: manages packages (evidence: `app/Http/Controllers/Staff/ProtectedStorageController.php`)
- Geodetic portal → Geometry editing: supports editing (evidence: `app/Http/Controllers/Geodetic/ParcelMapController.php`)
- Geodetic portal → Map data: serves map data (evidence: `app/Http/Controllers/Geodetic/ParcelMapController.php`)
- Geometry editing → Parcel records: updates geometry
- Monitoring reports → Transfer application: reports on
- Application operations → Audit logging: records audit (evidence: `app/Http/Controllers/Staff/ParcelReviewFlagController.php`)
- Application operations → Notifications: notifies users
- Landowner portal → Landholding records: shows linked records (evidence: `app/Http/Controllers/Landowner/LandownerDashboardController.php`)
- Transfer application → PostgreSQL: persists records
- Protected files → Source record packages: checks registration (evidence: `app/Http/Controllers/Staff/ProtectedStorageController.php`)
- Protected files → Landholding records: checks registration (evidence: `app/Http/Controllers/Staff/ProtectedStorageController.php`)
- Protected files → Parcel records: checks registration (evidence: `app/Http/Controllers/Staff/ProtectedStorageController.php`)
