Flutter · Clean Architecture · Real Estate & Marketplace

HouseMart

Comprehensive real estate marketplace for buying, selling, and renting apartments, buildings, and commercial shops. Integrated with Paymob e-payment, Sightengine AI content moderation, interactive Google Maps GPS, and bank-grade anti-tampering security.

Google Play Store Explore Screenshots Technical Architecture
HouseMart Dashboard
Live on Play Store · 4 Screens Below ↓
Paymob
Payment Gateway
Unified In-App Checkout
AI Safety
Content Moderation
Sightengine Vision API
Maps & GPS
Geolocation
Google Maps SDK & Geolocator
70% Less
Image Bandwidth
Pure-Dart 75% Compression

Feature & Business Overview

A Modern Marketplace for Real Estate

HouseMart is an end-to-end real estate and property marketplace built with Flutter. It bridges property owners, brokers, and buyers into a seamless, high-performance ecosystem designed for high conversion and effortless property exploration.

Users can browse apartments for sale or rent, standalone commercial shops, and full residential buildings. The app incorporates a full Pay-to-Publish monetization model integrated with Paymob, allowing users to buy ad credit bundles and manage their listings in real time.

To preserve platform trust and prevent inappropriate listings, HouseMart embeds an automated AI Computer Vision moderation pipeline that analyzes uploaded images before they are published, preventing inappropriate media with zero manual review lag.

Key Platform Features

  • Multi-Category Marketplace

    Dedicated tabs for Apartments (Buy/Rent), Buildings, and Commercial Shops with area ($m^2$), rooms, price, and PageView photo slider.

  • Interactive Map Pinning & GPS

    Auto-locate via device GPS or manual map marker drag-and-drop to pinpoint exact property coordinates.

  • Paymob E-Payment & Ad Credits

    Monetized listing packages with Paymob Unified Checkout and automatic credit quota enforcement.

  • AI Image Content Moderation

    Automated screening via Sightengine Vision API blocks inappropriate or unsafe images before upload.

  • Deep Linking & Instant Navigation

    Direct link sharing via AppLinks with a custom splash navigation buffer to route directly to listings.

  • Root & Anti-Tampering Protection

    Blocks compromised/rooted environments and encrypts sensitive sessions with Flutter Secure Storage.

Software Architecture

Clean Architecture & Enterprise Patterns

Engineered with strict separation of concerns, testability, and decoupled layers. Features an advanced network engine with silent token refresh, pure-Dart image compression, and centralized dependency injection.

Presentation Layer

Flutter UI widgets, responsive scaling via zap_sizer, and pure state-driven UI with BLoC/Cubit.

Domain Layer

Pure Dart UseCases and Repository interfaces adhering to Single Responsibility and Dependency Inversion principles.

Data Layer

Remote REST data sources with Dio, JSON serialization, and local encrypted cache management.

Network & Interceptor Engine

Dynamic Bearer token injection, automatic silent token refresh on 401 Unauthorized, and auto-logout on invalidation.

Modular Feature Organization
features/
├── properties/
│   ├── data/         ← Models, RemoteSources, RepoImpl
│   ├── domain/       ← UseCases, PropertyEntity
│   └── presentation/ ← Cubits, Pages, MapPicker
├── packages_payment/ ← Paymob Checkout, AdCreditsCubit
├── moderation/       ← NSFWService (Sightengine Vision)
├── auth/             ← Token, StorageService, Interceptors
└── profile/          ← MyProperties, Localization
core/
├── di/               ← locator.dart (GetIt)
├── network/          ← DioHelper, SilentRefresh, ErrorHandler
├── security/         ← root_checker_plus, secure_storage
└── utils/            ← Pure-Dart Image Compressor
Silent Token Refresh

Seamless background token refresh via Dio interceptor when 401 is received, replay pending requests without user disruption.

Pure-Dart Compression

In-app resizing (max 1080px) and 75% JPEG compression reducing upload payload by >70% with zero native plugin overhead.

Deep Link Buffer

Caches incoming propertyId in AppCubit during splash animation and navigates directly upon animation complete.

Ad Credits Singleton

AdCreditsCubit registered as GetIt Singleton to guarantee live balance synchronization across all app screens.

Engineered With

Full Technology Stack

🐦
Flutter
Cross-Platform UI
🎯
Dart
Core Language
🧱
BLoC / Cubit
State Management
💉
GetIt
Dependency Injection
🌐
Dio
HTTP & Interceptors
💳
Paymob
Unified Payment Gateway
👁️
Sightengine AI
Computer Vision Moderation
🗺️
Google Maps SDK
Geolocator & Pins
🔗
AppLinks
Deep Linking Engine
🔒
RootCheckerPlus
Anti-Tampering Security
🔑
Secure Storage
Encrypted Keyring Sessions
📐
zap_sizer
Responsive Sizing (.w, .h)

Architecture & Portfolio

Interested in enterprise Flutter engineering?

Explore other featured mobile architectures and case studies built with Clean Architecture, offline-first sync, and bank-grade security.

Back to All Projects