finds.dev← search

// the find

game-ale/hotel-booking-pro

★ 2 · Dart · updated Jan 2026

Android hotel booking app built with Flutter, BLoC, and Clean Architecture, powered by Firebase, payments, maps, and admin dashboard.

A Flutter hotel booking app targeting Android, implementing Clean Architecture with BLoC state management, Firebase backend, and a simulated wallet payment system. It covers three user roles (traveler, hotel owner, admin) and is clearly a portfolio/learning project rather than a production deployment. Good reference for developers learning how to structure a multi-role Flutter app.

- Clean Architecture is actually followed through: domain/data/presentation layers exist per feature, repository interfaces are in domain, and implementations live in data — not just claimed in the README but visible in the file tree.

- fpdart's Either<Failure, Success> pattern for error handling is a solid choice that avoids exception-driven control flow across layers.

- Cloud Functions for atomic wallet deductions (booking + balance decrement) shows the author understands why client-side Firestore transactions aren't enough for financial operations.

- Feature-first modularization with consistent structure (bloc/pages/widgets per feature) makes it easy to find things and would scale to a team without constant merge conflicts.

- Testing is essentially absent: the README mentions 'Unit Tests: Core business logic is tested' but there's no test directory visible in the tree, and integration tests are 'planned for next sprint' — which typically means never.

- google-services.json is committed to the repo (android/app/google-services.json visible in the tree), which is a security problem even if the file is for a dev project; Firebase API keys and project config should not be in version control.

- Two duplicate MainActivity.kt files exist (com/example/hotel_booking and com/hotelbooking/hotel_booking), suggesting a botched package rename that was never cleaned up — this will cause build confusion.

- The payment system is fully simulated with no real gateway, and the README's claim of 'production-ready' is hard to accept with a wallet-only flow, no iOS support, no dark mode, and no localization — this is an MVP at best.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →