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.
App Showcase
Click any screenshot to zoom in full resolution · navigate via arrows or thumbnails
← swipe on mobile · click on any phone to zoom
Feature & Business Overview
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
Dedicated tabs for Apartments (Buy/Rent), Buildings, and Commercial Shops with area ($m^2$), rooms, price, and PageView photo slider.
Auto-locate via device GPS or manual map marker drag-and-drop to pinpoint exact property coordinates.
Monetized listing packages with Paymob Unified Checkout and automatic credit quota enforcement.
Automated screening via Sightengine Vision API blocks inappropriate or unsafe images before upload.
Direct link sharing via AppLinks with a custom splash navigation buffer to route directly to listings.
Blocks compromised/rooted environments and encrypts sensitive sessions with Flutter Secure Storage.
Software Architecture
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.
Flutter UI widgets, responsive scaling via zap_sizer, and pure state-driven UI with BLoC/Cubit.
Pure Dart UseCases and Repository interfaces adhering to Single Responsibility and Dependency Inversion principles.
Remote REST data sources with Dio, JSON serialization, and local encrypted cache management.
Dynamic Bearer token injection, automatic silent token refresh on 401 Unauthorized, and auto-logout on invalidation.
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
Seamless background token refresh via Dio interceptor when 401 is received, replay pending requests without user disruption.
In-app resizing (max 1080px) and 75% JPEG compression reducing upload payload by >70% with zero native plugin overhead.
Caches incoming propertyId in AppCubit during splash animation and navigates directly upon animation complete.
AdCreditsCubit registered as GetIt Singleton to guarantee live balance synchronization across all app screens.
Engineered With
Architecture & Portfolio
Explore other featured mobile architectures and case studies built with Clean Architecture, offline-first sync, and bank-grade security.
Back to All Projects