# marcuslimadev/socimob architecture

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

- Interactive diagram: https://gitdiagram.com/marcuslimadev/socimob
- Repository: https://github.com/marcuslimadev/socimob

## Overview

This repository appears to implement a multi-tenant real-estate operations platform: staff manage properties, leads, conversations, leases, finances and inspections, while clients and owners use portal features. The main staff workflow runs from the web client through Laravel controllers into domain services and persisted records; property publishing and inbound advertising leads are distinct integration workflows. The README is generic Laravel boilerplate, so product capabilities are inferred from the file tree and sampled excerpts; several subsystem links are therefore omitted where invocation was not shown.

Main entry points: [`routes/api.php`](https://github.com/marcuslimadev/socimob/blob/master/routes/api.php) (Laravel API), [`app/Http/Controllers/Admin/ConversasController.php`](https://github.com/marcuslimadev/socimob/blob/master/app/Http/Controllers/Admin/ConversasController.php) (Conversation management), [`app/Models/Property.php`](https://github.com/marcuslimadev/socimob/blob/master/app/Models/Property.php) (Property records), [`app/Services/Ads/AdsOrchestrationService.php`](https://github.com/marcuslimadev/socimob/blob/master/app/Services/Ads/AdsOrchestrationService.php) (Ads publishing)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workspace["Staff workspace"]
  node_webapp["Web client<br/>[App.tsx]"]
  node_api["Laravel API<br/>[api.php]"]
  node_adminui["Admin pages"]
  node_tenantadmin["Tenant administration"]
end

subgraph group_property["Property and portal"]
  node_properties["Property management"]
  node_propertydata[("Property records<br/>[Property.php]")]
  node_portal["Client and owner portal"]
  node_portalui["Portal pages<br/>[ClientPortal.tsx]"]
end

subgraph group_crm["CRM and messaging"]
  node_leads["Lead management"]
  node_conversations["Conversation management"]
  node_crmservice["Conversation services"]
  node_crmrecords[("Lead and conversation records<br/>[Lead.php]")]
end

subgraph group_operations["Contracts and operations"]
  node_contracts["Lease and sale contracts"]
  node_finance["Financial operations"]
  node_inspections["Property inspections"]
end

subgraph group_integrations["External integrations"]
  node_ads["Ads publishing"]
  node_adsjobs["Publishing jobs"]
  node_adleads["Ads lead ingestion"]
  node_adsprovider["Ads providers"]
  node_whatsapp["WhatsApp messaging"]
end

node_staff(("Staff user"))
node_meta{{"Meta WhatsApp"}}

node_staff -->|"uses"| node_webapp
node_webapp -->|"requests"| node_api
node_adminui -->|"loads records"| node_api
node_api -->|"routes requests"| node_properties
node_properties -->|"reads and writes"| node_propertydata
node_portalui -->|"requests portal data"| node_portal
node_portal -->|"queries listings"| node_propertydata
node_api -->|"routes requests"| node_leads
node_api -->|"routes requests"| node_conversations
node_conversations -->|"queries records"| node_crmrecords
node_conversations -->|"uses service"| node_crmservice
node_api -->|"routes requests"| node_contracts
node_api -->|"routes requests"| node_finance
node_api -->|"routes requests"| node_inspections
node_api -->|"routes requests"| node_tenantadmin
node_ads -->|"validates listing"| node_propertydata
node_ads -->|"dispatches"| node_adsjobs
node_adsjobs -->|"publishes through"| node_adsprovider
node_adleads -->|"creates CRM lead"| node_crmrecords
node_adleads -.->|"notifies via service"| node_api
node_whatsapp -.->|"sends messages"| node_meta

click node_webapp "https://github.com/marcuslimadev/socimob/blob/master/client/src/App.tsx"
click node_api "https://github.com/marcuslimadev/socimob/blob/master/routes/api.php"
click node_adminui "https://github.com/marcuslimadev/socimob/blob/master/client/src/pages/AdminGestaoLocacao.tsx"
click node_properties "https://github.com/marcuslimadev/socimob/blob/master/app/Http/Controllers/PropertyController.php"
click node_propertydata "https://github.com/marcuslimadev/socimob/blob/master/app/Models/Property.php"
click node_portal "https://github.com/marcuslimadev/socimob/blob/master/app/Http/Controllers/Portal/PortalController.php"
click node_portalui "https://github.com/marcuslimadev/socimob/blob/master/client/src/pages/ClientPortal.tsx"
click node_leads "https://github.com/marcuslimadev/socimob/blob/master/app/Http/Controllers/LeadsController.php"
click node_conversations "https://github.com/marcuslimadev/socimob/blob/master/app/Http/Controllers/Admin/ConversasController.php"
click node_crmservice "https://github.com/marcuslimadev/socimob/blob/master/app/Services/ConversationService.php"
click node_crmrecords "https://github.com/marcuslimadev/socimob/blob/master/app/Models/Lead.php"
click node_contracts "https://github.com/marcuslimadev/socimob/blob/master/app/Http/Controllers/Admin/ContratosLocacaoController.php"
click node_finance "https://github.com/marcuslimadev/socimob/blob/master/app/Http/Controllers/Admin/FinanceiroController.php"
click node_inspections "https://github.com/marcuslimadev/socimob/blob/master/app/Services/VistoriaService.php"
click node_tenantadmin "https://github.com/marcuslimadev/socimob/blob/master/app/Http/Controllers/SuperAdmin/TenantController.php"
click node_ads "https://github.com/marcuslimadev/socimob/blob/master/app/Services/Ads/AdsOrchestrationService.php"
click node_adsjobs "https://github.com/marcuslimadev/socimob/blob/master/app/Jobs/Ads/UpsertListingToCatalogJob.php"
click node_adleads "https://github.com/marcuslimadev/socimob/blob/master/app/Services/Ads/LeadIngestionService.php"
click node_adsprovider "https://github.com/marcuslimadev/socimob/blob/master/app/Services/Ads/Providers/ProviderAdapterFactory.php"
click node_whatsapp "https://github.com/marcuslimadev/socimob/blob/master/app/Services/WhatsApp/WhatsAppMessageService.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_webapp,node_api,node_adminui,node_tenantadmin,node_staff toneBlue
class node_properties,node_propertydata,node_portal,node_portalui toneAmber
class node_leads,node_conversations,node_crmservice,node_crmrecords toneMint
class node_contracts,node_finance,node_inspections toneRose
class node_ads,node_adsjobs,node_adleads,node_adsprovider,node_whatsapp,node_meta toneIndigo
```

## Components

### Staff workspace

- [Web client](https://github.com/marcuslimadev/socimob/blob/master/client/src/App.tsx): `client/src/App.tsx`
- [Laravel API](https://github.com/marcuslimadev/socimob/blob/master/routes/api.php): `routes/api.php`
- [Admin pages](https://github.com/marcuslimadev/socimob/blob/master/client/src/pages/AdminGestaoLocacao.tsx): `client/src/pages/AdminGestaoLocacao.tsx`
- [Tenant administration](https://github.com/marcuslimadev/socimob/blob/master/app/Http/Controllers/SuperAdmin/TenantController.php): `app/Http/Controllers/SuperAdmin/TenantController.php`

### Property and portal

- [Property management](https://github.com/marcuslimadev/socimob/blob/master/app/Http/Controllers/PropertyController.php): `app/Http/Controllers/PropertyController.php`
- [Property records](https://github.com/marcuslimadev/socimob/blob/master/app/Models/Property.php): `app/Models/Property.php`
- [Client and owner portal](https://github.com/marcuslimadev/socimob/blob/master/app/Http/Controllers/Portal/PortalController.php): `app/Http/Controllers/Portal/PortalController.php`
- [Portal pages](https://github.com/marcuslimadev/socimob/blob/master/client/src/pages/ClientPortal.tsx): `client/src/pages/ClientPortal.tsx`

### CRM and messaging

- [Lead management](https://github.com/marcuslimadev/socimob/blob/master/app/Http/Controllers/LeadsController.php): `app/Http/Controllers/LeadsController.php`
- [Conversation management](https://github.com/marcuslimadev/socimob/blob/master/app/Http/Controllers/Admin/ConversasController.php): `app/Http/Controllers/Admin/ConversasController.php`
- [Conversation services](https://github.com/marcuslimadev/socimob/blob/master/app/Services/ConversationService.php): `app/Services/ConversationService.php`
- [Lead and conversation records](https://github.com/marcuslimadev/socimob/blob/master/app/Models/Lead.php): `app/Models/Lead.php`

### Contracts and operations

- [Lease and sale contracts](https://github.com/marcuslimadev/socimob/blob/master/app/Http/Controllers/Admin/ContratosLocacaoController.php): `app/Http/Controllers/Admin/ContratosLocacaoController.php`
- [Financial operations](https://github.com/marcuslimadev/socimob/blob/master/app/Http/Controllers/Admin/FinanceiroController.php): `app/Http/Controllers/Admin/FinanceiroController.php`
- [Property inspections](https://github.com/marcuslimadev/socimob/blob/master/app/Services/VistoriaService.php): `app/Services/VistoriaService.php`

### External integrations

- [Ads publishing](https://github.com/marcuslimadev/socimob/blob/master/app/Services/Ads/AdsOrchestrationService.php): `app/Services/Ads/AdsOrchestrationService.php`
- [Publishing jobs](https://github.com/marcuslimadev/socimob/blob/master/app/Jobs/Ads/UpsertListingToCatalogJob.php): `app/Jobs/Ads/UpsertListingToCatalogJob.php`
- [Ads lead ingestion](https://github.com/marcuslimadev/socimob/blob/master/app/Services/Ads/LeadIngestionService.php): `app/Services/Ads/LeadIngestionService.php`
- [Ads providers](https://github.com/marcuslimadev/socimob/blob/master/app/Services/Ads/Providers/ProviderAdapterFactory.php): `app/Services/Ads/Providers/ProviderAdapterFactory.php`
- [WhatsApp messaging](https://github.com/marcuslimadev/socimob/blob/master/app/Services/WhatsApp/WhatsAppMessageService.php): `app/Services/WhatsApp/WhatsAppMessageService.php`

### Other components

- **Staff user**
- **Meta WhatsApp**

## Connections

- Staff user → Web client: uses
- Web client → Laravel API: requests
- Admin pages → Laravel API: loads records
- Laravel API → Property management: routes requests
- Property management → Property records: reads and writes
- Portal pages → Client and owner portal: requests portal data
- Client and owner portal → Property records: queries listings
- Laravel API → Lead management: routes requests
- Laravel API → Conversation management: routes requests
- Conversation management → Lead and conversation records: queries records
- Conversation management → Conversation services: uses service
- Laravel API → Lease and sale contracts: routes requests
- Laravel API → Financial operations: routes requests
- Laravel API → Property inspections: routes requests
- Laravel API → Tenant administration: routes requests
- Ads publishing → Property records: validates listing
- Ads publishing → Publishing jobs: dispatches
- Publishing jobs → Ads providers: publishes through
- Ads lead ingestion → Lead and conversation records: creates CRM lead
- Ads lead ingestion → Laravel API: notifies via service
- WhatsApp messaging → Meta WhatsApp: sends messages
