# wrocoder/real_estate_intelligance architecture

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

- Interactive diagram: https://gitdiagram.com/wrocoder/real_estate_intelligance
- Repository: https://github.com/wrocoder/real_estate_intelligance

## Overview

WartoMetr is a Polish property-purchase decision product: buyers and realtors search, compare, or privately submit a listing, then receive market, price, risk, and decision evidence. The documented product also covers reports and paid orders, account-scoped tools, agency workflows, market intelligence, and ingestion administration. The graph connects the sampled app, comparison, and ingestion paths; broader feature branches are included where the README documents them, but their internal call wiring was not sampled. Storage and deployment variants are represented at a high level.

Main entry points: [`domarion/api/routes.py`](https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/api/routes.py) (API routes), [`domarion/repositories`](https://github.com/wrocoder/real_estate_intelligance/tree/main/domarion/repositories) (Real-estate repository), [`domarion/api/compare_routes.py`](https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/api/compare_routes.py) (Comparison routes), [`domarion/main.py`](https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/main.py) (FastAPI application)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["User experience"]
  node_web["Web application"]
  node_api_client["API client<br/>[apiClient.ts]"]
end

subgraph group_api["API and identity"]
  node_backend["FastAPI application<br/>[main.py]"]
  node_routes["API routes<br/>[routes.py]"]
  node_auth_routes["Authentication routes<br/>[auth_routes.py]"]
  node_auth_sessions["Session handling<br/>[auth_sessions.py]"]
  node_compare_routes["Comparison routes<br/>[compare_routes.py]"]
end

subgraph group_decision["Property intelligence"]
  node_search["Search and maps<br/>[search.py]"]
  node_listing_analysis["Listing analysis<br/>[scoring.py]"]
  node_submitted_analysis["Private listing checks"]
  node_scoring_service["Scoring API<br/>[scoring_service.py]"]
  node_comparison["Listing comparison"]
  node_reports["Reports and delivery"]
  node_market["Market intelligence"]
  node_account_tools["Account and agency tools"]
  node_payment_services["Payment adapters<br/>[payments.py]"]
end

subgraph group_operations["Data operations"]
  node_ingestion["Authorized feed ingestion<br/>[authorized_feed.py]"]
  node_admin_ingestion["Ingestion administration"]
end

subgraph group_state["State and artifacts"]
  node_repository["Real-estate repository"]
  node_relational_store[("PostgreSQL stores")]
  node_report_artifacts[("Report artifacts")]
end

node_buyer(("Buyer or realtor"))
node_payment_provider["Stripe or PayU"]

node_buyer -->|"uses"| node_web
node_web -->|"requests"| node_api_client
node_api_client -->|"HTTP calls"| node_backend
node_backend -->|"mounts"| node_routes
node_backend -->|"mounts"| node_auth_routes
node_routes -->|"searches"| node_search
node_routes -->|"analyzes checks"| node_submitted_analysis
node_routes -->|"generates reports"| node_reports
node_routes -->|"serves market data"| node_market
node_routes -->|"serves tools"| node_account_tools
node_routes -->|"reads listings"| node_repository
node_compare_routes -->|"loads listings"| node_repository
node_compare_routes -->|"builds analyses"| node_listing_analysis
node_compare_routes -->|"builds comparison"| node_comparison
node_listing_analysis -->|"reads evidence"| node_repository
node_scoring_service -->|"analyzes input"| node_submitted_analysis
node_auth_routes -->|"creates sessions"| node_auth_sessions
node_auth_routes -->|"stores identities"| node_relational_store
node_repository -->|"persists data"| node_relational_store
node_reports -->|"stores artifacts"| node_report_artifacts
node_ingestion -->|"imports listings"| node_relational_store
node_ingestion -->|"records job data"| node_admin_ingestion
node_payment_services -.->|"checkout and webhooks"| node_payment_provider

click node_web "https://github.com/wrocoder/real_estate_intelligance/tree/main/frontend/app"
click node_api_client "https://github.com/wrocoder/real_estate_intelligance/blob/main/frontend/lib/apiClient.ts"
click node_backend "https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/main.py"
click node_routes "https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/api/routes.py"
click node_auth_routes "https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/api/auth_routes.py"
click node_auth_sessions "https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/services/auth_sessions.py"
click node_compare_routes "https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/api/compare_routes.py"
click node_search "https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/services/search.py"
click node_listing_analysis "https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/services/scoring.py"
click node_submitted_analysis "https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/services/user_submitted_listings.py"
click node_scoring_service "https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/services/scoring_service.py"
click node_comparison "https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/services/listing_comparison.py"
click node_reports "https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/services/report_generation.py"
click node_market "https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/services/market_intelligence.py"
click node_account_tools "https://github.com/wrocoder/real_estate_intelligance/tree/main/domarion/services"
click node_ingestion "https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/ingestion/authorized_feed.py"
click node_admin_ingestion "https://github.com/wrocoder/real_estate_intelligance/tree/main/domarion/ingestion_admin_store"
click node_repository "https://github.com/wrocoder/real_estate_intelligance/tree/main/domarion/repositories"
click node_relational_store "https://github.com/wrocoder/real_estate_intelligance/tree/main/domarion/db"
click node_report_artifacts "https://github.com/wrocoder/real_estate_intelligance/tree/main/domarion/report_artifacts"
click node_payment_services "https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/services/payments.py"

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_api_client toneBlue
class node_backend,node_routes,node_auth_routes,node_auth_sessions,node_compare_routes toneAmber
class node_search,node_listing_analysis,node_submitted_analysis,node_scoring_service,node_comparison,node_reports,node_market,node_account_tools,node_payment_services toneMint
class node_ingestion,node_admin_ingestion toneRose
class node_repository,node_relational_store,node_report_artifacts,node_buyer,node_payment_provider toneIndigo
```

## Components

### User experience

- [Web application](https://github.com/wrocoder/real_estate_intelligance/tree/main/frontend/app): `frontend/app`
- [API client](https://github.com/wrocoder/real_estate_intelligance/blob/main/frontend/lib/apiClient.ts): `frontend/lib/apiClient.ts`

### API and identity

- [FastAPI application](https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/main.py): `domarion/main.py`
- [API routes](https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/api/routes.py): `domarion/api/routes.py`
- [Authentication routes](https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/api/auth_routes.py): `domarion/api/auth_routes.py`
- [Session handling](https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/services/auth_sessions.py): `domarion/services/auth_sessions.py`
- [Comparison routes](https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/api/compare_routes.py): `domarion/api/compare_routes.py`

### Property intelligence

- [Search and maps](https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/services/search.py): `domarion/services/search.py`
- [Listing analysis](https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/services/scoring.py): `domarion/services/scoring.py`
- [Private listing checks](https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/services/user_submitted_listings.py): `domarion/services/user_submitted_listings.py`
- [Scoring API](https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/services/scoring_service.py): `domarion/services/scoring_service.py`
- [Listing comparison](https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/services/listing_comparison.py): `domarion/services/listing_comparison.py`
- [Reports and delivery](https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/services/report_generation.py): `domarion/services/report_generation.py`
- [Market intelligence](https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/services/market_intelligence.py): `domarion/services/market_intelligence.py`
- [Account and agency tools](https://github.com/wrocoder/real_estate_intelligance/tree/main/domarion/services): `domarion/services`
- [Payment adapters](https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/services/payments.py): `domarion/services/payments.py`

### Data operations

- [Authorized feed ingestion](https://github.com/wrocoder/real_estate_intelligance/blob/main/domarion/ingestion/authorized_feed.py): `domarion/ingestion/authorized_feed.py`
- [Ingestion administration](https://github.com/wrocoder/real_estate_intelligance/tree/main/domarion/ingestion_admin_store): `domarion/ingestion_admin_store`

### State and artifacts

- [Real-estate repository](https://github.com/wrocoder/real_estate_intelligance/tree/main/domarion/repositories): `domarion/repositories`
- [PostgreSQL stores](https://github.com/wrocoder/real_estate_intelligance/tree/main/domarion/db): `domarion/db`
- [Report artifacts](https://github.com/wrocoder/real_estate_intelligance/tree/main/domarion/report_artifacts): `domarion/report_artifacts`

### Other components

- **Buyer or realtor**
- **Stripe or PayU**

## Connections

- Buyer or realtor → Web application: uses
- Web application → API client: requests
- API client → FastAPI application: HTTP calls
- FastAPI application → API routes: mounts
- FastAPI application → Authentication routes: mounts
- API routes → Search and maps: searches
- API routes → Private listing checks: analyzes checks
- API routes → Reports and delivery: generates reports
- API routes → Market intelligence: serves market data
- API routes → Account and agency tools: serves tools
- API routes → Real-estate repository: reads listings
- Comparison routes → Real-estate repository: loads listings
- Comparison routes → Listing analysis: builds analyses
- Comparison routes → Listing comparison: builds comparison
- Listing analysis → Real-estate repository: reads evidence
- Scoring API → Private listing checks: analyzes input
- Authentication routes → Session handling: creates sessions
- Authentication routes → PostgreSQL stores: stores identities
- Real-estate repository → PostgreSQL stores: persists data
- Reports and delivery → Report artifacts: stores artifacts
- Authorized feed ingestion → PostgreSQL stores: imports listings
- Authorized feed ingestion → Ingestion administration: records job data
- Payment adapters → Stripe or PayU: checkout and webhooks
