Skip to content

A modern Flutter app for barber shop bookings with Firebase integration. Users authenticate via Google/Email, book services (haircuts, beard trims, facials with 50% off), and schedule real-time appointments. Admins manage via dashboard. Sleek dark theme; supports Android, iOS, web.

Notifications You must be signed in to change notification settings

gopal334/CUTTER

Repository files navigation

✂️ Barber Shop Booking App App Screenshot

Let the Journey Begin - A modern Flutter barber shop booking application with Firebase integration

📱 About A comprehensive barber shop booking application built with Flutter that allows customers to book appointments for various grooming services. The app features a beautiful dark brown theme, seamless booking system, and powerful admin panel for managing appointments and services.

✨ Features 👤 User Authentication App Screenshot

Google Sign-In Integration - Quick and secure authentication

Email & Password Login - Traditional authentication method

User Profile Management - Personalized user experience

Welcome Back Experience - Smooth returning user flow

💇‍♂️ Service Booking

Multiple Services Available:

✂️ Classic Shaving

🧴 Hair Washing

👶 Kids Hair Cutting

💇‍♂️ Hair Cutting

🧔 Beard Trimming

🧖‍♂️ Facial Services

Date & Time Selection - Flexible appointment scheduling

Real-time Availability - Live booking calendar

Service Promotions - Special offers and discounts (50% OFF)

🔧 Admin Panel App Screenshot

Comprehensive Dashboard - Admin login and management

Booking Management - View and manage all appointments

Service Overview - Track booking details and customer information

User Management - Handle customer profiles and preferences

🎨 Design & Interface

Modern Dark Theme - Elegant brown and orange color scheme

Professional UI/UX - Barber shop aesthetic with scissors and styling icons

Responsive Design - Optimized for all mobile devices

Smooth Animations - Engaging user interactions

🛠️ Tech Stack Framework: Flutter (Dart)

Backend: Firebase

Authentication: Firebase Auth + Google Sign-In

Database: Firebase Firestore

Storage: Firebase Storage

State Management: Provider / Riverpod

Date/Time Picker: flutter_datetime_picker

Google Services: google_sign_in

📸 Screenshots Admin Login User Authentication Service Booking Admin Auth Booking Services Menu Booking Management User Dashboard Services Management Dashboard 🚀 Getting Started Prerequisites

bash

  • Flutter SDK (3.0.0 or higher)
  • Dart SDK (2.17.0 or higher)
  • Android Studio / VS Code with Flutter extension
  • Firebase Account
  • Google Cloud Console Account (for Google Sign-In) Installation

Clone the repository

bash git clone https://github.com/gopal334/CUTTER.git cd barber-booking-app Install Flutter dependencies

bash flutter pub get Firebase Setup

Create a new Firebase project

Enable Authentication (Email/Password and Google)

Enable Firestore Database

Download google-services.json (Android) and GoogleService-Info.plist (iOS)

Place files in respective platform folders

Google Sign-In Configuration

Enable Google Sign-In in Firebase Console

Configure OAuth consent screen in Google Cloud Console

Add SHA-1 fingerprints for Android

Run the application

bash flutter run 📦 Dependencies Core Dependencies

text dependencies: flutter: sdk: flutter

UI Components

cupertino_icons: ^1.0.2 material_color_generator: ^1.0.5

Firebase

firebase_core: ^2.4.0 firebase_auth: ^4.2.0 cloud_firestore: ^4.3.0 firebase_storage: ^11.0.10

Google Sign-In

google_sign_in: ^6.0.2

State Management

provider: ^6.0.3

Date & Time

intl: ^0.18.0 flutter_datetime_picker: ^1.5.1

UI Enhancements

cached_network_image: ^3.2.3 shimmer: ^2.0.0 lottie: ^2.2.0

Utilities

shared_preferences: ^2.0.15 image_picker: ^0.8.6 🔥 Firebase Configuration Firestore Database Structure

javascript // Users Collection users: { userId: { name: "string", email: "string", phone: "string", photoUrl: "string", createdAt: "timestamp" } }

// Bookings Collection bookings: { bookingId: { userId: "string", userName: "string", service: "string", date: "string", time: "string", status: "pending" | "confirmed" | "completed" | "cancelled", createdAt: "timestamp" } }

// Services Collection services: { serviceId: { name: "string", description: "string", price: "number", duration: "number", image: "string", isActive: "boolean" } } Authentication Setup

dart // Firebase Auth Configuration class AuthService { final FirebaseAuth _auth = FirebaseAuth.instance; final GoogleSignIn _googleSignIn = GoogleSignIn();

// Google Sign-In Method Future<UserCredential?> signInWithGoogle() async { final GoogleSignInAccount? googleUser = await _googleSignIn.signIn(); if (googleUser == null) return null;

final GoogleSignInAuthentication googleAuth = 
    await googleUser.authentication;

final credential = GoogleAuthProvider.credential(
  accessToken: googleAuth.accessToken,
  idToken: googleAuth.idToken,
);

return await _auth.signInWithCredential(credential);

} } 🏗️ Project Structure text lib/ ├── main.dart # App entry point ├── app.dart # App configuration ├── core/ # Core functionality │ ├── constants/ # App constants │ ├── themes/ # App themes │ ├── utils/ # Utility functions │ └── services/ # Firebase services ├── features/ # Feature-based modules │ ├── auth/ # Authentication │ │ ├── screens/ # Login/Register screens │ │ ├── services/ # Auth services │ │ └── widgets/ # Auth widgets │ ├── booking/ # Booking system │ │ ├── screens/ # Booking screens │ │ ├── models/ # Booking models │ │ └── services/ # Booking services │ ├── admin/ # Admin panel │ │ ├── screens/ # Admin screens │ │ └── widgets/ # Admin widgets │ └── profile/ # User profile ├── models/ # Data models ├── services/ # App services ├── widgets/ # Reusable widgets └── screens/ # App screens 📱 Platform Support ✅ Android (API 21+)

✅ iOS (iOS 11.0+)

🔄 Web (Firebase Web Support)

🔧 Configuration Files Android Configuration

xml

iOS Configuration

xml

CFBundleURLTypes CFBundleURLName REVERSED_CLIENT_ID CFBundleURLSchemes YOUR_REVERSED_CLIENT_ID

🔐 Security Rules Firestore Security Rules

javascript rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { // Users can read/write their own data match /users/{userId} { allow read, write: if request.auth != null && request.auth.uid == userId; }

// Users can create bookings, read their own
match /bookings/{bookingId} {
  allow create: if request.auth != null;
  allow read, update: if request.auth != null && 
    (resource.data.userId == request.auth.uid || 
     get(/databases/$(database)/documents/users/$(request.auth.uid)).data.role == 'admin');
}

// Services are read-only for users
match /services/{serviceId} {
  allow read: if request.auth != null;
  allow write: if request.auth != null && 
    get(/databases/$(database)/documents/users/$(request.auth.uid)).data.role == 'admin';
}

} } 🧪 Testing bash

Run unit tests

flutter test

Run widget tests

flutter test test/widget_test.dart

Run integration tests

flutter drive --target=test_driver/app.dart 🚀 Build & Release Android

bash

Generate release APK

flutter build apk --release

Generate App Bundle for Google Play

flutter build appbundle --release iOS

bash

Build for iOS

flutter build ios --release

Generate IPA

flutter build ipa --release 🤝 Contributing We welcome contributions! Please see our Contributing Guidelines for details.

Fork the repository

Create your feature branch (git checkout -b feature/AmazingFeature)

Commit your changes (git commit -m 'Add some AmazingFeature')

Push to the branch (git push origin feature/AmazingFeature)

Open a Pull Request

📄 License This project is licensed under the MIT License - see the LICENSE file for details.

🔗 Links App Store: Coming Soon

Google Play: Coming Soon

📞 Support 📧 Email: support@sengargopal310@gmail.com

🐛 Issues: GitHub Issues

💬 Discussions: GitHub Discussions

🙏 Acknowledgments Flutter team for the amazing cross-platform framework

Firebase for providing excellent backend services

Google Sign-In for seamless authentication

All contributors and beta testers

Barber shop owners who provided valuable feedback

Made with ❤️ by (GOPAL SINGH) and Flutter

⭐ Star this repository if you found it helpful! ⭐

Flutter Firebase Dart

Authors

About

A modern Flutter app for barber shop bookings with Firebase integration. Users authenticate via Google/Email, book services (haircuts, beard trims, facials with 50% off), and schedule real-time appointments. Admins manage via dashboard. Sleek dark theme; supports Android, iOS, web.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published