About this software
About Handigo
Handigo is a multi-country home-services marketplace in the style of Urban Company. It consists of an ASP.NET Core REST API on SQL Server, a Razor-based web admin panel with 40 views, a static landing page, and two Flutter apps (customer and provider). Customers sign in by phone OTP, email/password or social login, book services, and pay through Stripe. Providers get dispatched jobs, live location and payouts. Operators manage catalog, pricing, VAT, finance, support and settings from the admin panel. The code ships with 60 xUnit tests, EF Core migrations, SQL scripts and setup documentation. Please note that the digest shows .NET 10 targets in the project guide, while the builder's description says .NET 8.
Why Handigo
What makes it better
than the alternatives
- 01
Two native-style apps included
Separate Flutter Customer and Provider apps (33 and 28 Dart files) with Riverpod, go_router, Google Maps and SignalR.
- 02
Multi-country money logic
Per-country prices, currencies, time zones and VAT/tax rules, with a PricingService and commission rules by country, category or service.
- 03
Tested access control
Tests walk every controller action to enforce role policies, anonymous allow-lists, and 404 on cross-user access.
- 04
Finance with safeguards
Refunds (Stripe or wallet), provider payout cycles, wallet adjustments, row locks, concurrency tokens, and audit logging.
- 05
Runtime-configurable admin
Branding, SMTP, Stripe keys, integrations, backups, cleanup and email logs are editable in the panel, with secrets encrypted.
Authentication & Accounts
- Phone OTP
- email/password
- and Google/Apple social sign-in endpoints
- JWT access tokens with refresh tokens and logout
- Password
forgot/reset/change - password policy
- rate-limited auth endpoints
- Account blocking and customer data erasure
- Forced password change for the first super admin
Customer App
- Booking creation and lifecycle with Stripe payment intents
- Saved addresses
- recurring bookings and membership endpoints
- Support tickets and catalog browsing
- Referral code at registration
- FCM push token registration
Provider App
- Provider onboarding with Stripe return/refresh endpoints
- Job handling
- profile and account endpoints
- Real-time location updates via SignalR hub (Provider policy)
- Earnings and onboarding screens in the app
- Skills and categories selection
Booking & Dispatch
- Booking state machine and dispatch to providers
- Admin search
- manual assign
- re-dispatch
- cancel (reason required) and reschedule
- Nearest-first candidate ranking for assignment
- Hangfire background jobs
Finance & Payouts
- Stripe card payments with test/live webhook secrets
- Refunds to card or wallet
- Payout cycles with optional Stripe transfer
- plus manual mark-paid
- Customer wallet credit/debit with a zero floor
- Commission rules and coupons
Catalog & Locations
- Categories
- services
- add-ons
- checklists and images
- Per-country service prices
- Countries
- cities
- service radius
- and tax rules
- Banners and coupon management
Admin Panel
- Dashboard
- reports
- customers
- providers
- bookings
- finance and support views
- Staff roles: SuperAdmin
- Admin
- Finance
- Operations
- Support
- Content
- Audit log
- backups
- data cleanup and email logs
- Branding
- SMTP
- Stripe
- integrations and security settings pages
- Hangfire dashboard for SuperAdmin
Delivery & Docs
- Static marketing landing page
- schema.sql
- seed.sql
- upgrade script and Docker init
- Dockerfile
- setup guide
- API/SignalR reference and ERD
- Seed service with optional demo data
| Language | Version | Framework | Used for | Share of code |
|---|---|---|---|---|
| C# | — | — | Web, API, admin | 66.5% |
| CSS | — | — | Styling | 12.5% |
| Dart | — | — | Mobile app | 10.7% |
| SQL | — | — | Database | 5.7% |
| C# (Razor) | — | — | Web pages | 2.8% |
| JavaScript | — | — | Front-end | 1.3% |
| HTML | — | — | Front-end | 0.2% |
| Swift | — | — | Mobile app | 0.1% |
| Shell | — | — | Scripts | 0% |
| Kotlin | — | — | Mobile app | 0% |
- Primary language
- C# on .NET 10 LTS (API) + Dart / Flutter 3.19+
- Framework
- ASP.NET Core 10, EF Core 10, SignalR, Hangfire 1.8, Flutter 3.19+
- Database
- Microsoft SQL Server (version not pinned in the digest; Docker init script provided)
- Authentication
- JWT bearer access and refresh tokens; phone/email OTP; email and password; Google/Apple social sign-in; cookie sign-in for the admin panel
- Licence
- Single-site
- Screens
- 35
- Database tables
- 61
- Supported languages
- Per-user preferredLanguage and per-country DefaultLanguage fields; translated UI strings not evidenced in the digest. No RTL layout shown
- Browser support
- Current evergreen desktop and mobile browsers for the admin panel (Razor MVC, plain CSS/JS); landing page is static HTML
| Minimum | Recommended | |
|---|---|---|
| CPU | 2 vCPU | 4 vCPU |
| RAM | 4 GB | 8 GB |
| OS | Linux or Windows host; .NET 10 runtime (Docker dotnet/aspnet:10.0.14); SQL Server; Android and iOS for the Flutter apps | Linux or Windows host; .NET 10 runtime (Docker dotnet/aspnet:10.0.14); SQL Server; Android and iOS for the Flutter apps |
| Est. monthly hosting | $30 | $30 |
Requires Docker and the environment variables SA_PASSWORD, APP_DB_PASSWORD, JWT_KEY, ADMIN_EMAIL and ADMIN_PASSWORD. ```bash cd Handigo export SA_PASSWORD='<strong-sa-password>' APP_DB_PASSWORD='<app-db-password>' JWT_KEY='<min-32-char-random-key>' ADMIN_EMAIL='[email protected]' ADMIN_PASSWORD='<initial-admin-password>' docker compose up -d --build ``` Sign in at /account/login and change the initial password at first sign-in. Full steps are in HowToSetup.md.
Requires the .NET 10 SDK, a SQL Server instance, and a reverse proxy in front of Kestrel. ```bash cp "NET API/appsettings.example.json" "NET API/src/Handigo.Api/appsettings.Production.json" # edit appsettings.Production.json: connection string, Jwt:Key, Seed:* values cd "NET API" dotnet restore --locked-mode dotnet test --solution Handigo.sln -c Release dotnet publish src/Handigo.Api -c Release -o ../publish cd ../publish && ASPNETCORE_ENVIRONMENT=Production dotnet Handigo.Api.dll ```
Quality report
Manually reviewedHow to read the quality report
What this is. Every project on Vibe96 goes through an automated audit of its source code before a reviewer in Dubai checks it by hand. The score is out of 100; 75 is the minimum to be listed, and any single failing check blocks a listing regardless of the score.
- Security
- No real credentials in the code, every data-changing route protected, admin areas role-gated, no SQL built from user input.
- Code structure
- A developer can navigate and extend it: clear module boundaries, no giant files, little copy-paste.
- Docs & completeness
- The setup guide, example config, schema and required files the builder committed to are actually in the archive.
- Dependency health
- Packages pinned, no known critical vulnerabilities, no abandoned libraries in production paths.
- Build & deploy
- A clean machine can restore, build and start it by following the shipped instructions.
Warnings are problems that didn't block the listing; they stay visible here until a later version clears them. The audit reads the code — it does not run it — so always try the live demo before you buy. Lines of code are counted from the same audited archive.
85/ 100
Automated audit score
✓ Approved by our review teamReviewer notes (3 minor)
No real credentials found; weak default admin password and otp bypass ship to buyers; lockfiles present, but contents were not visible so no vulnerabilities could be verified; build looks reproducible, but key files were not visible and a few setup gaps remain; ef core linq is parameterised, but plaintext sensitive columns and unverified schema coverage limit the score; authz only partly verifiable; default credentials, dev otp bypass and unverified google login weaken access control. None of these stop the software from working; the developer has been told and improvements come in a future update.
Versions & updates
No updates yet. New versions appear here with a changelog.
Buyers receive updates free for 1 year.
What you get
- </>Full source codeThe complete audited source, delivered as a download from your account. No obfuscation.
- ▤DocumentationSetup guide, architecture notes, CLAUDE.md and AGENTS.md.
- ↻One year of updatesEvery new version the builder publishes, free for 12 months.
- ♧30 days of supportInstallation and defect support through Vibe96 tickets.