Skip to content

Nisarg-Vekariya/818-Hospitality-Group

Repository files navigation

818 Hospitality Group Logo

818 Hospitality Group

Luxury Hotel & Resort Booking — Flutter App

Flutter Dart Firebase License: Apache 2.0 Download APK

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.


✨ Features

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

📲 Download APK

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

Screenshots from release/screenshots/

Splash Home Explore Property
Splash Home Feed Explore Property Detail
Admin
Admin Dashboard

🏗️ Architecture

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)


🚀 Getting Started

Prerequisites


1 · Clone the repository

git clone https://github.com/Nisarg-Vekariya/818-Hospitality-Group.git
cd 818-Hospitality-Group

2 · Install Flutter dependencies

flutter pub get

3 · Set up Firebase

  1. Create a new project at the Firebase Console.

  2. Register your Android and iOS (and optionally Web/Windows) apps.

  3. Download the platform config files and place them:

    File Destination
    google-services.json android/app/google-services.json
    GoogleService-Info.plist ios/Runner/GoogleService-Info.plist
  4. Generate lib/firebase_options.dart using the FlutterFire CLI:

    dart pub global activate flutterfire_cli
    flutterfire configure
  5. 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

4 · Configure API keys

Copy the config template and fill in your credentials:

cp lib/core/config/app_config.dart.template lib/core/config/app_config.dart

Then 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.dart is listed in .gitignore — it will never be committed. Only the .template file is tracked.


5 · Run the app

# Android / iOS emulator or device
flutter run

# Web
flutter run -d chrome

# Windows desktop
flutter run -d windows

🔐 Security Notes

Warning

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 stripeSecretKey to 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.

📦 Key Dependencies

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


🛠️ Development Scripts

# 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-versions

📄 License

This project is licensed under the Apache License — see the LICENSE file for details.


👨‍💻 Team 818

Developed with ❤️ by Team 818

Contact Link
✉️ Email team.818x@gmail.com
🐙 GitHub @Nisarg-Vekariya
🐙 GitHub @Jainil

🙏 Acknowledgments

  • 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.


📞 Support

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

About

A high-end Flutter mobile application that allows users to discover, explore, and book luxury hotels, resorts, and casinos worldwide. The platform delivers a premium experience with seamless booking, secure payments, and real-time availability—backed by a powerful admin dashboard.

Topics

Resources

License

Stars

Watchers

Forks

Contributors