HomePro
HomePro SG
A multi-role home-services platform.
Release candidate on sandbox (documented).
Homeowners find, request and book local home-service pros; pros get a workspace for leads, jobs and schedules; platform staff qualify and route requests.


- 98screenscustomer 38 · provider 38 · admin 8 · platform 1 · shared 13
- 20feature modulesdata, domain and providers layers
- 18CDK domain stacks103 Lambda-resolved operations
Purpose
Homeowners find, request and book local home-service pros; pros get a workspace for leads, jobs, schedules and repeat customers; platform staff qualify and route requests.
The problem
Homeowners, service pros and platform staff each need different tools on the same requests, jobs and appointments.
What it contributes
A multi-role Flutter app that carries the full request-to-job-to-appointment journey, on a dedicated AWS CDK backend.
Principal capabilities
Mobile frontend
A Flutter app for web and mobile with four role domains (consumer, provider, admin, platform) and 98 typed routes. A token-based design system and slotted screen layouts unify 98 screens.
Data
The data layer follows clean architecture: 20 feature modules with DTO, mapper and repository seams, Riverpod providers, and a single typed error seam so no raw wire strings reach the UI.
Integrations
Authentication uses Cognito; authorisation is account-scoped through custom token claims minted by a pre-token-generation trigger. A runtime data-plane switch, fail-safe and remotely configured, moved the client from the original managed GraphQL API to the dedicated CDK-built one on the same user pool, with no re-login, keeping the original as a rollback plane.
Backend
The backend and its infrastructure have their own page: a dedicated AWS CDK GraphQL backend across 18 domain nested stacks.
AWS CDK backend
Built with
- Flutter
- Dart
- AWS CDK
- Lambda
- DynamoDB
class WarrantyRepositoryImpl implements WarrantyRepository {
final WarrantyApiDatasource _datasource;
const WarrantyRepositoryImpl(this._datasource);
@override
Future<Warranty> fetchWarranty(String warrantyId) async {
final raw = await _datasource.fetchWarranty(warrantyId);
return WarrantyMapper.fromDto(WarrantyDto.fromJson(raw));
}
}Implementation evidence
- A documented release candidate on the sandbox backend.
- Delivery ran as four contract-gated workstreams under a coordinator.
Visuals





Case studies
-
Mobile
Multi-role Flutter app
Release candidate on sandbox (documented)
HomePro SG gives homeowners one place to find, request and book local home-service pros, and gives those pros a workspace for leads, jobs, schedules and repeat customers. Platform staff qualify and route requests. The release candidate covers the full request-to-job-to-appointment journey on a cloud sandbox.
-
Cloud backend
HomeProSG — AWS CDK Backend & Infrastructure
Implemented · sandbox deploy documented
The app's backend outgrew its managed platform: at about 84 operations, deployments hit a hard cloud limit. I rebuilt it as a dedicated AWS CDK GraphQL backend that reuses the same user accounts and database, so nothing had to be migrated, then added CRM, job and scheduling workflows and proved them against sandbox data.
Capabilities
Earlier versions
HomePro: the 2024 evolution (historical)