# jmrizalon123/dormai architecture

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

- Interactive diagram: https://gitdiagram.com/jmrizalon123/dormai
- Repository: https://github.com/jmrizalon123/dormai

## Overview

DormAI is a multi-tenant property and residence management application: organizations manage properties, rooms and tenants; reservations can lead to occupancy contracts, billing and maintenance; tenants also have a self-service portal, while the public marketplace supports listings and reservation requests. The tree shows finance, utilities, reporting, platform administration and AI-assisted listing capabilities. The supplied README is Laravel boilerplate, and source excerpts are selective, so the graph includes documented model relationships and authorization registration but avoids claiming unshown controller routing or service calls.

Main entry points: [`app/Models/Reservation.php`](https://github.com/jmrizalon123/dormai/blob/main/app/Models/Reservation.php) (Reservations), [`app/Models/Tenant.php`](https://github.com/jmrizalon123/dormai/blob/main/app/Models/Tenant.php) (Tenant records), [`app/Models/Property.php`](https://github.com/jmrizalon123/dormai/blob/main/app/Models/Property.php) (Property portfolio), [`app/Providers/AuthServiceProvider.php`](https://github.com/jmrizalon123/dormai/blob/main/app/Providers/AuthServiceProvider.php) (Authorization policies)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_property_ops["Property operations"]
  node_property[("Property portfolio<br/>[Property.php]")]
  node_rooms[("Rooms and beds<br/>[Room.php]")]
end

subgraph group_resident_lifecycle["Resident lifecycle"]
  node_reservations[("Reservations<br/>[Reservation.php]")]
  node_tenants[("Tenant records<br/>[Tenant.php]")]
  node_contracts[("Contracts<br/>[Contract.php]")]
end

subgraph group_business_services["Business services"]
  node_billing[("Invoices and payments<br/>[Invoice.php]")]
  node_maintenance[("Maintenance requests")]
  node_workorders[("Work orders<br/>[WorkOrder.php]")]
  node_finance["Expenses and finance<br/>[ExpenseService.php]"]
  node_utilities["Utility billing"]
  node_reports["Reports and analytics"]
end

subgraph group_access_marketplace["Access and marketplace"]
  node_org_management["Organization management"]
  node_portal["Tenant portal"]
  node_marketplace["Public listings"]
  node_listing_ai["Listing assistant"]
  node_platform_admin["Platform administration"]
  node_authz["Authorization policies"]
end

node_operator(("Property staff"))
node_tenant_actor(("Tenant"))

node_property -->|"has rooms"| node_rooms
node_reservations -->|"references property"| node_property
node_reservations -->|"references room"| node_rooms
node_reservations -->|"references tenant"| node_tenants
node_reservations -->|"has contract"| node_contracts
node_tenants -->|"has requests"| node_maintenance
node_tenants -->|"has invoices"| node_billing
node_tenants -->|"has contracts"| node_contracts
node_contracts -->|"references tenant"| node_tenants
node_billing -->|"references contract"| node_contracts
node_maintenance -->|"has work order"| node_workorders
node_workorders -->|"references request"| node_maintenance
node_operator -.->|"manages"| node_property
node_operator -.->|"reviews"| node_reservations
node_tenant_actor -.->|"uses"| node_portal
node_marketplace -.->|"lists"| node_property
node_marketplace -.->|"accepts requests"| node_reservations
node_listing_ai -.->|"assists listings"| node_marketplace
node_org_management -.->|"supports approval"| node_platform_admin
node_authz -->|"registers policy"| node_property
node_authz -->|"registers policy"| node_reservations
node_authz -->|"registers policy"| node_tenants
node_authz -->|"registers policy"| node_billing

click node_property "https://github.com/jmrizalon123/dormai/blob/main/app/Models/Property.php"
click node_rooms "https://github.com/jmrizalon123/dormai/blob/main/app/Models/Room.php"
click node_reservations "https://github.com/jmrizalon123/dormai/blob/main/app/Models/Reservation.php"
click node_tenants "https://github.com/jmrizalon123/dormai/blob/main/app/Models/Tenant.php"
click node_contracts "https://github.com/jmrizalon123/dormai/blob/main/app/Models/Contract.php"
click node_billing "https://github.com/jmrizalon123/dormai/blob/main/app/Models/Invoice.php"
click node_maintenance "https://github.com/jmrizalon123/dormai/blob/main/app/Models/MaintenanceRequest.php"
click node_workorders "https://github.com/jmrizalon123/dormai/blob/main/app/Models/WorkOrder.php"
click node_finance "https://github.com/jmrizalon123/dormai/blob/main/app/Services/Finance/ExpenseService.php"
click node_utilities "https://github.com/jmrizalon123/dormai/blob/main/app/Services/Utilities/UtilityBillingService.php"
click node_reports "https://github.com/jmrizalon123/dormai/tree/main/app/Services/Reports"
click node_org_management "https://github.com/jmrizalon123/dormai/blob/main/app/Services/Organization/OrganizationRegistrationService.php"
click node_portal "https://github.com/jmrizalon123/dormai/tree/main/app/Http/Controllers/Portal"
click node_marketplace "https://github.com/jmrizalon123/dormai/blob/main/app/Http/Controllers/Public/PropertyListingController.php"
click node_listing_ai "https://github.com/jmrizalon123/dormai/blob/main/app/Services/Ai/ListingAssistantService.php"
click node_platform_admin "https://github.com/jmrizalon123/dormai/tree/main/app/Http/Controllers/Platform"
click node_authz "https://github.com/jmrizalon123/dormai/blob/main/app/Providers/AuthServiceProvider.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_property,node_rooms toneBlue
class node_reservations,node_tenants,node_contracts toneAmber
class node_billing,node_maintenance,node_workorders,node_finance,node_utilities,node_reports toneMint
class node_org_management,node_portal,node_marketplace,node_listing_ai,node_platform_admin,node_authz toneRose
class node_operator,node_tenant_actor toneIndigo
```

## Components

### Property operations

- [Property portfolio](https://github.com/jmrizalon123/dormai/blob/main/app/Models/Property.php): `app/Models/Property.php`
- [Rooms and beds](https://github.com/jmrizalon123/dormai/blob/main/app/Models/Room.php): `app/Models/Room.php`

### Resident lifecycle

- [Reservations](https://github.com/jmrizalon123/dormai/blob/main/app/Models/Reservation.php): `app/Models/Reservation.php`
- [Tenant records](https://github.com/jmrizalon123/dormai/blob/main/app/Models/Tenant.php): `app/Models/Tenant.php`
- [Contracts](https://github.com/jmrizalon123/dormai/blob/main/app/Models/Contract.php): `app/Models/Contract.php`

### Business services

- [Invoices and payments](https://github.com/jmrizalon123/dormai/blob/main/app/Models/Invoice.php): `app/Models/Invoice.php`
- [Maintenance requests](https://github.com/jmrizalon123/dormai/blob/main/app/Models/MaintenanceRequest.php): `app/Models/MaintenanceRequest.php`
- [Work orders](https://github.com/jmrizalon123/dormai/blob/main/app/Models/WorkOrder.php): `app/Models/WorkOrder.php`
- [Expenses and finance](https://github.com/jmrizalon123/dormai/blob/main/app/Services/Finance/ExpenseService.php): `app/Services/Finance/ExpenseService.php`
- [Utility billing](https://github.com/jmrizalon123/dormai/blob/main/app/Services/Utilities/UtilityBillingService.php): `app/Services/Utilities/UtilityBillingService.php`
- [Reports and analytics](https://github.com/jmrizalon123/dormai/tree/main/app/Services/Reports): `app/Services/Reports`

### Access and marketplace

- [Organization management](https://github.com/jmrizalon123/dormai/blob/main/app/Services/Organization/OrganizationRegistrationService.php): `app/Services/Organization/OrganizationRegistrationService.php`
- [Tenant portal](https://github.com/jmrizalon123/dormai/tree/main/app/Http/Controllers/Portal): `app/Http/Controllers/Portal`
- [Public listings](https://github.com/jmrizalon123/dormai/blob/main/app/Http/Controllers/Public/PropertyListingController.php): `app/Http/Controllers/Public/PropertyListingController.php`
- [Listing assistant](https://github.com/jmrizalon123/dormai/blob/main/app/Services/Ai/ListingAssistantService.php): `app/Services/Ai/ListingAssistantService.php`
- [Platform administration](https://github.com/jmrizalon123/dormai/tree/main/app/Http/Controllers/Platform): `app/Http/Controllers/Platform`
- [Authorization policies](https://github.com/jmrizalon123/dormai/blob/main/app/Providers/AuthServiceProvider.php): `app/Providers/AuthServiceProvider.php`

### Other components

- **Property staff**
- **Tenant**

## Connections

- Property portfolio → Rooms and beds: has rooms (evidence: `app/Models/Property.php`)
- Reservations → Property portfolio: references property (evidence: `app/Models/Reservation.php`)
- Reservations → Rooms and beds: references room (evidence: `app/Models/Reservation.php`)
- Reservations → Tenant records: references tenant (evidence: `app/Models/Reservation.php`)
- Reservations → Contracts: has contract (evidence: `app/Models/Reservation.php`)
- Tenant records → Maintenance requests: has requests (evidence: `app/Models/Tenant.php`)
- Tenant records → Invoices and payments: has invoices (evidence: `app/Models/Tenant.php`)
- Tenant records → Contracts: has contracts (evidence: `app/Models/Tenant.php`)
- Contracts → Tenant records: references tenant (evidence: `app/Models/Contract.php`)
- Invoices and payments → Contracts: references contract (evidence: `app/Models/Invoice.php`)
- Maintenance requests → Work orders: has work order (evidence: `app/Models/MaintenanceRequest.php`)
- Work orders → Maintenance requests: references request (evidence: `app/Models/WorkOrder.php`)
- Property staff → Property portfolio: manages
- Property staff → Reservations: reviews
- Tenant → Tenant portal: uses
- Public listings → Property portfolio: lists
- Public listings → Reservations: accepts requests
- Listing assistant → Public listings: assists listings
- Organization management → Platform administration: supports approval
- Authorization policies → Property portfolio: registers policy (evidence: `app/Providers/AuthServiceProvider.php`)
- Authorization policies → Reservations: registers policy (evidence: `app/Providers/AuthServiceProvider.php`)
- Authorization policies → Tenant records: registers policy (evidence: `app/Providers/AuthServiceProvider.php`)
- Authorization policies → Invoices and payments: registers policy (evidence: `app/Providers/AuthServiceProvider.php`)
