← All work02 / 11

2026 · Real-estate development platform · amlaak-dev.arkedia.dev

Amlaak

Off-plan property sales, from the public catalogue to the Odoo CRM.

  • 90CQRS handlers · 57 commands · 33 queries
  • 55permissions · 14 groups · 7 roles
  • 1,401automated tests · 1,066 backend · 254 Angular · 81 e2e
  • 13admin modules
Amlaak project catalogue with filters and grid view
Project catalogue with filters, sorting and grid view.

The problem

A developer selling off-plan towers across Khobar, Dammam and Dhahran was running sales on brochures and WhatsApp. Buyers could not see which units were left or what an instalment would cost, so every question became a phone call. Leads arrived with no owner and no stage and were re-typed into Odoo by hand. Availability lived in an Excel sheet that went stale the moment a unit was reserved.

What we built

A modular monolith on ASP.NET Core 10 and Angular 22, bilingual and server-side rendered. Buyers filter the catalogue by city, status, type, bedrooms and price, open a project page with specifications, a landmarks map and a live unit table, then run the financing calculator and register interest in a specific unit type.

Behind it, 13 admin modules. The one that mattered most is the leads inbox: every enquiry and supplier registration goes to a transactional outbox and Hangfire delivers it to Odoo with retries, so nothing is re-typed by hand again.

Inside the system

  • TOTP MFA is mandatory for any role that touches users, integrations or personal-data exports.
  • Unit inventory with Excel import and export and a publish workflow, shown live on the public site.
  • Full-text search in Arabic and English; slug redirects keep old project URLs alive.
  • ClamAV scans every upload into the MinIO media library.
  • 1,066 backend tests, 254 Angular specs, 81 Playwright runs, plus k6 load profiles.

Screens