A full-featured, production-ready Flutter application for browsing and booking hotels, resorts, and casinos. Built with a clean feature-first architecture, Firebase backend and Stripe payments.
| Category | Details |
|---|---|
| 🔐 Authentication | Email/Password & Google Sign-In via Firebase Auth |
| 🏨 Property Browsing | 100+ curated luxury properties (international & Indian) |
| 🔍 Advanced Filters | Search by location, price range, amenities, and ratings |
| 📅 Smart Booking | Multi-step booking wizard with calendar date picker & guest management |
| 💳 Secure Payments | Stripe Payment Sheet integration |
| 🗺️ Interactive Maps | OpenStreetMap property locations (via flutter_map) |
| ⭐ Reviews & Ratings | User-generated reviews with star ratings |
| 🎁 Special Offers | Promotional banners and time-limited discount offers |
| 📄 PDF Receipts | Generate & download booking confirmation PDFs |
| 📧 Email Confirmations | Automated booking emails via EmailJS / Gmail SMTP |
| 🔔 Push Notifications | Firebase Cloud Messaging for booking updates |
| 📊 Analytics | Firebase Analytics event tracking throughout the app |
| 👤 User Profile | Manage personal details, past bookings, and favourites |
| 🛡️ Admin Dashboard | Property, booking, and offer management panel |
Place the built APK files inside the
release/apk/folder in this repo.
| Build | Download |
|---|---|
| v1.0.0 Release | 📥 818-Hospitality-Group.apk |
Install tip: Enable Install from unknown sources in your Android settings before installing.
Screenshots from
release/screenshots/
![]() |
![]() |
![]() |
![]() |
| Splash | Home Feed | Explore | Property Detail |
![]() |
|||
| Admin Dashboard |
lib/
├── core/
│ ├── config/ # App & API key configuration (gitignored)
│ ├── constants/ # Colour palette, strings, enums
│ ├── routes/ # Named route definitions
│ ├── theme/ # App-wide Material theme
│ └── utils/ # Date helpers, validators, extensions
├── features/
│ ├── admin/ # Admin-only screens
│ ├── auth/ # Login, signup, forgot-password
│ ├── booking/ # 3-step booking wizard
│ ├── bookings/ # My bookings / history
│ ├── explore/ # Property search & grid/list view
│ ├── home/ # Home feed, featured properties, banners
│ ├── profile/ # User profile & settings
│ ├── property/ # Property detail & reviews
│ ├── splash/ # Animated splash screen
│ └── welcome/ # Onboarding screens
├── models/ # Dart data models (Property, Booking, User …)
├── providers/ # Provider state management
├── services/ # Firebase, Stripe, Email, Analytics wrappers
├── widgets/ # Shared/reusable widgets
└── main.dart
State management: Provider
Backend: Firebase (Auth · Firestore · Storage · Messaging · Analytics)
- Flutter SDK ≥ 3.10.4
- Dart ≥ 3.10.4
- A Firebase project
- A Stripe account
- (Optional) An EmailJS or Gmail SMTP account for email notifications
git clone https://github.com/Nisarg-Vekariya/818-Hospitality-Group.git
cd 818-Hospitality-Groupflutter pub get-
Create a new project at the Firebase Console.
-
Register your Android and iOS (and optionally Web/Windows) apps.
-
Download the platform config files and place them:
File Destination google-services.jsonandroid/app/google-services.jsonGoogleService-Info.plistios/Runner/GoogleService-Info.plist -
Generate
lib/firebase_options.dartusing the FlutterFire CLI:dart pub global activate flutterfire_cli flutterfire configure
-
In the Firebase Console, enable:
- Authentication → Email/Password and Google Sign-In
- Cloud Firestore (start in test mode, then apply the rules in
firestore.rules) - Firebase Storage (apply
storage.rules) - Firebase Messaging
- Firebase Analytics
Copy the config template and fill in your credentials:
cp lib/core/config/app_config.dart.template lib/core/config/app_config.dartThen open lib/core/config/app_config.dart and replace each YOUR_* placeholder:
class AppConfig {
// Stripe
static const String stripePublishableKey = 'pk_test_...';
static const String stripeSecretKey = 'sk_test_...'; // ⚠️ backend only in production
// EmailJS (optional)
static const String emailJSServiceId = '...';
static const String emailJSTemplateId = '...';
static const String emailJSPublicKey = '...';
static const String emailJSPrivateKey = '...';
// Gmail SMTP (optional, alternative to EmailJS)
static const String gmailUsername = 'you@gmail.com';
static const String gmailAppPassword = '...';
}
app_config.dartis listed in.gitignore— it will never be committed. Only the.templatefile is tracked.
# Android / iOS emulator or device
flutter run
# Web
flutter run -d chrome
# Windows desktop
flutter run -d windowsWarning
Never commit real API keys or Firebase config files to a public repository.
| File | Status | Reason |
|---|---|---|
lib/core/config/app_config.dart |
✅ gitignored | Contains Stripe & email secrets |
lib/firebase_options.dart |
✅ gitignored | Contains Firebase API keys |
android/app/google-services.json |
✅ gitignored | Contains Firebase project config |
ios/Runner/GoogleService-Info.plist |
✅ gitignored | Contains Firebase project config |
lib/core/config/app_config.dart.template |
📄 tracked | Safe placeholder template |
Production recommendations:
- Move
stripeSecretKeyto a backend server — never ship it in a mobile app. - Use Firebase App Check to prevent API abuse.
- Tighten Firestore and Storage security rules before going live.
| Package | Purpose |
|---|---|
firebase_core · firebase_auth · cloud_firestore |
Firebase backend |
firebase_messaging · firebase_analytics |
Notifications & analytics |
provider |
State management |
flutter_stripe |
Stripe payment sheet |
flutter_map · latlong2 |
OpenStreetMap integration |
cached_network_image · shimmer |
Image loading & skeletons |
table_calendar |
Date picker for bookings |
pdf · printing |
PDF receipt generation |
mailer |
Gmail SMTP email sending |
google_fonts |
Typography (inter, etc.) |
geolocator · geocoding |
Device location |
share_plus |
Native share sheet |
connectivity_plus |
Network state detection |
Full list: pubspec.yaml
# Run all tests
flutter test
# Analyze code
flutter analyze
# Generate launcher icons (after updating assets/logo_818_hg.png)
dart run flutter_launcher_icons
# Upgrade dependencies
flutter pub upgrade --major-versionsThis project is licensed under the Apache License — see the LICENSE file for details.
Developed with ❤️ by Team 818
| Contact | Link |
|---|---|
| team.818x@gmail.com | |
| 🐙 GitHub | @Nisarg-Vekariya |
| 🐙 GitHub | @Jainil |
- Flutter team for the excellent cross-platform framework
- Firebase for scalable backend services
- Stripe for seamless payment processing
- OpenStreetMap contributors for free map data
- EmailJS for client-side email delivery
Note: This project requires you to supply your own API keys and Firebase project. See the Getting Started section above.
For any queries or support, please contact: team.818x@gmail.com
If you encounter any issues:
- Check existing documentation
- Review the sample images for visual guidance
- Download and test the APK




