Architecture Overview
RentifyNow combines an Angular web app with service-owned backend data. Landlords and tenants work with related property, rental, document, and payment records through the app; a service owns each domain rather than every feature sharing unrestricted database access.
This overview describes the current source architecture. It does not establish that every optional resource or integration is enabled in the hosted environment.
Application and authentication
The web interface uses Angular, PrimeNG, TypeScript, RxJS, and NgRx. Mobile and desktop projects are Tauri shells around the web interface. Their presence in the repository does not establish public store availability; check the download page.
Authentication is a TypeScript service built with Hono, Better Auth, and Drizzle. Browser sessions use HTTP-only cookies. Protected features check authentication, roles, and ownership; public documentation does not grant access to another user's records.
Domain services
The .NET services cover Rentals, Payments, Documents, Search, AI, and Notifications. Rentals manages property and rental work; Payments manages financial records and invoicing; Documents manages files and access. Search, AI, and Notifications support their respective application workflows.
Services own their domain state. Internal HTTP calls and RabbitMQ messaging connect workflows across service boundaries. The outbox and idempotent handling support durable event processing; one service should not query another service's database directly.
Data and supporting infrastructure
- PostgreSQL: service-owned relational databases.
- RabbitMQ: asynchronous messages between services.
- Valkey: caching and supporting runtime state.
- Garage/S3: object storage for uploaded files, with application authorization and short-lived file access.
- Vault: secret management.
- Unleash: feature flags, so implementation and availability are separate facts.
- OpenTelemetry: application telemetry and diagnostics.
Aspire's AppHost composes local resources and services. Configuration controls which optional resources and migrations start. Production hosting uses the project's Dokploy/DeployifyNow deployment path; GitHub Actions provides CI and verification.
What this means for integrations
These infrastructure components describe how RentifyNow runs; they are not a catalogue of customer integrations. The Payments service name does not establish automatic bank reconciliation or support for an arbitrary payment provider. Confirm the specific workflow, account requirements, and enabled integration before depending on it.
For everyday use, start with the Quick Start. For the property and rental workflow, see Properties Management and Rentals System.