Skip to content

Martyrsuper/BarbersBuddies_Onlineshop_maker

 
 

Repository files navigation

✂️ BarbersBuddies

The Complete Open-Source Booking Platform for Barbershops

Launch your own professional barbershop booking system in minutes. Free, open-source, and packed with features.

Version React Firebase Stripe License

Live Demo · Report Bug · Request Feature


📸 Screenshots

Shop Owner Dashboard

Analytics Dashboard

Real-time analytics with revenue tracking, booking stats, and performance metrics

Booking Management

Bookings Table
Bookings Table
Booking Cards
Booking Cards View

Calendar & Scheduling

Calendar Month View
Month View
Calendar Week Dark
Week View (Dark)
Day View

Detailed day view with appointment breakdown

Messaging & Communication

Barber Chat
Customer Messaging
Notifications
Notifications Panel

Shop Management

Shop Management

Manage services, employees, hours, and shop settings

Dark Mode

Dark Mode

Full dark mode support across the entire platform


⚡ Features

Feature Description
🗓️ Smart Booking Real-time availability, service selection, employee assignment
📊 Analytics Dashboard Track revenue, bookings, and customer trends
💳 Stripe Payments Secure payment processing built-in
🌍 Multi-language English, German, Turkish, Arabic
🎨 Themes Light, dark, and luxury themes
📱 Mobile-first Fully responsive design
🔔 Notifications Email confirmations + in-app alerts
👥 Employee Management Staff schedules, assignments, permissions
Ratings & Reviews Customer feedback system
💬 Messaging Shop-to-customer communication
📅 Calendar Views Hours, days, weeks, months view
🔐 Demo Mode Built-in demo accounts for testing

🏗️ Architecture

┌─────────────────────────────────────────────────────────────────┐
│                         Client (React)                          │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────────┐   │
│  │ Booking  │ │Dashboard │ │  Shop    │ │   Auth & User    │   │
│  │   Flow   │ │ Analytics│ │ Landing  │ │   Management     │   │
│  └────┬─────┘ └────┬─────┘ └────┬─────┘ └────────┬─────────┘   │
└───────┼────────────┼────────────┼────────────────┼─────────────┘
        │            │            │                │
        ▼            ▼            ▼                ▼
┌─────────────────────────────────────────────────────────────────┐
│                      Firebase Services                          │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────────┐   │
│  │Firestore │ │   Auth   │ │ Storage  │ │    Functions     │   │
│  │    DB    │ │          │ │ (Images) │ │  (Email/Stripe)  │   │
│  └──────────┘ └──────────┘ └──────────┘ └──────────────────┘   │
└─────────────────────────────────────────────────────────────────┘
        │                                          │
        ▼                                          ▼
   ┌─────────┐                              ┌─────────────┐
   │ Stripe  │                              │   Mailgun   │
   │Payments │                              │   (Email)   │
   └─────────┘                              └─────────────┘

🚀 Quick Start

Prerequisites

  • Node.js 18+
  • Firebase project
  • Stripe account (for payments)
  • Mailgun account (for emails)

1. Clone & Install

git clone https://github.com/Khanto87/BarbersBuddies.git
cd BarbersBuddies
npm install
cd functions && npm install && cd ..

2. Environment Setup

cp .env.example .env

Fill in your .env:

REACT_APP_FIREBASE_API_KEY=your_key
REACT_APP_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
REACT_APP_FIREBASE_PROJECT_ID=your_project
REACT_APP_FIREBASE_STORAGE_BUCKET=your_project.appspot.com
REACT_APP_FIREBASE_MESSAGING_SENDER_ID=123456789
REACT_APP_FIREBASE_APP_ID=your_app_id
REACT_APP_STRIPE_PUBLISHABLE_KEY=pk_test_xxx
REACT_APP_GOOGLE_MAPS_API_KEY=your_maps_key

3. Firebase Functions Config

firebase functions:config:set mailgun.key="your_key" mailgun.domain="your_domain"

4. Run

npm start

Open http://localhost:3000 🎉


🧪 Demo Mode

BarbersBuddies includes a complete demo data system for testing and screenshots.

Seed Demo Data

# Download serviceAccountKey.json from Firebase Console first
npm run seed        # Populate with demo data
npm run seed:clean  # Remove demo data

Demo Accounts

Role Email Password
Shop Owner demo-owner@barbersbuddies.com DemoOwner2026!
Customer demo-customer@barbersbuddies.com DemoCustomer2026!

The demo includes: 12 barbershops, 200+ bookings, 100+ ratings, message threads, and notifications.


🛠️ Tech Stack

Layer Technology
Frontend React 18, TailwindCSS, DaisyUI, Framer Motion
Backend Firebase Functions (Node.js)
Database Firestore
Auth Firebase Authentication
Payments Stripe
Email Mailgun
Storage Firebase Storage
Maps Google Maps API
State Zustand
Charts Recharts, Tremor

📁 Project Structure

BarbersBuddies/
├── src/
│   ├── components/     # React components
│   ├── Services/       # API services (Stripe, etc.)
│   ├── utils/          # Helpers (sanitize, logger)
│   ├── hooks/          # Custom React hooks
│   └── store.js        # Zustand state management
├── functions/          # Firebase Cloud Functions
├── scripts/
│   └── seed/           # Demo data seeding system
├── public/             # Static assets
└── docs/
    └── screenshots/    # App screenshots

🤝 Contributing

Contributions are welcome!

  1. Fork the repo
  2. Create your branch (git checkout -b feature/awesome-feature)
  3. Commit changes (git commit -m 'Add awesome feature')
  4. Push (git push origin feature/awesome-feature)
  5. Open a Pull Request

📄 License

MIT License - see LICENSE for details.


Built with ❤️ for the barbershop community

⬆ Back to top

About

✂️ The complete open-source booking platform for barbershops. React + Firebase + Stripe. Multi-language, dark mode, analytics, messaging & more.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 99.4%
  • Other 0.6%