Skip to content

YosefHayim/get-barber

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BarberConnect - On-Demand Barber Services App

A modern React Native/Expo mobile application connecting customers with barbers for on-demand and scheduled grooming services.


Current Features

Customer Features

  • Barber Discovery - Map-based barber search with real-time availability
  • Advanced Filters - Filter by rating, price, distance, availability, newcomers
  • Barber Profiles - View portfolio, reviews, services, and pricing
  • Service Booking - Select services, date, time, and location (home or salon)
  • Real-time Chat - Negotiate prices and communicate with barbers
  • Booking Management - Track confirmed and pending bookings
  • Live Tracking - Track barber en route to your location
  • Profile Management - Edit profile, upload avatar, manage addresses

Barber Features

  • Dashboard - View earnings, ratings, and availability stats
  • Request Management - Accept/decline incoming service requests
  • Schedule View - Timeline-based booking calendar
  • Earnings Analytics - Track revenue by day/week/month
  • Portfolio Gallery - Showcase work with image uploads
  • Service Pricing - Manage services and set prices
  • Working Hours - Configure availability schedule
  • Online/Offline Toggle - Control when to receive requests

Technical Features

  • Authentication - Email/password, Google, Apple, Phone sign-in
  • Onboarding Flows - Separate flows for customers and barbers
  • Real-time Updates - Supabase Realtime subscriptions
  • Location Services - GPS location, reverse geocoding
  • Image Handling - Camera/gallery picker with cloud storage
  • Dark Theme - Full dark mode UI throughout

Tech Stack

Layer Technology
Framework React Native 0.81 + Expo 54
Navigation Expo Router 6 (file-based)
Language TypeScript 5.9
State Zustand + TanStack Query
Backend Supabase (PostgreSQL + Auth + Storage + Realtime)
UI NativeWind (Tailwind) + Gluestack UI + React Native Paper
Maps React Native Maps
Animations React Native Reanimated 4

Future Features - Backend

Payment Integration

  • Stripe/PayPal Integration - Process payments securely
  • In-app Wallet - Store credits, tips, refunds
  • Split Payments - Deposit now, pay remainder on arrival
  • Subscription Plans - Monthly unlimited haircuts for premium users
  • Barber Payouts - Automated weekly/monthly payouts to barbers

Booking & Scheduling

  • Recurring Bookings - Schedule weekly/monthly appointments
  • Waitlist System - Join waitlist when barber is fully booked
  • Dynamic Pricing - Surge pricing during peak hours
  • Multi-barber Bookings - Book multiple services from different barbers
  • Group Bookings - Book for family/friends in one session

Communication

  • Push Notifications - Booking reminders, offers, status updates
  • SMS Notifications - Fallback for critical alerts
  • Video Consultation - Pre-booking video chat for style discussions
  • Voice Messages - In-chat voice notes

Analytics & AI

  • AI Style Recommendations - Upload photo, get haircut suggestions
  • Demand Forecasting - Predict busy times for barbers
  • Fraud Detection - Identify fake reviews/accounts
  • Smart Matching - ML-based barber recommendations

Business Features

  • Multi-location Support - Barber shops with multiple locations
  • Team Management - Shop owners manage multiple barbers
  • Inventory Tracking - Track products used per service
  • Loyalty Programs - Points system, referral bonuses
  • Gift Cards - Purchase and redeem digital gift cards

Security & Compliance

  • Background Checks - Verified barber profiles
  • Insurance Integration - Service insurance for home visits
  • GDPR Compliance - Data export, deletion requests
  • Audit Logging - Track all sensitive operations

Future Features - Frontend

Maps & Location

  • Google Maps Integration - Replace basic maps with full Google Maps
  • Live Location Sharing - Real-time barber tracking on map
  • Route Optimization - Show best route for barber to customer
  • Geofencing - Auto-notify when barber is nearby
  • Heatmaps - Show popular areas for barbers to position themselves
  • 3D Building View - Help barbers find exact apartment/floor

UI/UX Enhancements

  • Skeleton Loading - Better loading states throughout
  • Pull-to-Refresh - Refresh data with gesture
  • Haptic Feedback - Vibration on important actions
  • Gesture Navigation - Swipe to accept/decline requests
  • Voice Search - "Find a barber near me"
  • AR Try-On - Preview hairstyles using AR camera
  • Dark/Light Toggle - User-controlled theme switching
  • Accessibility - VoiceOver/TalkBack support, high contrast mode

Barber Discovery

  • Video Portfolios - Short clips showcasing work
  • Before/After Gallery - Transformation photos
  • Specialization Badges - Verified skills (fades, beards, etc.)
  • Social Proof - "X people booked this week"
  • Availability Calendar - See open slots at a glance
  • Comparison View - Compare multiple barbers side-by-side

Booking Experience

  • Express Booking - One-tap re-book previous service
  • Smart Suggestions - "Based on your history, try..."
  • Service Bundles - Discounted package deals
  • Time Preferences - Learn preferred booking times
  • Buffer Time - Auto-add travel time for home visits
  • Cancellation Flow - Easy reschedule, not just cancel

Social Features

  • Reviews with Photos - Attach result photos to reviews
  • Barber Stories - Instagram-style temporary posts
  • Follow Barbers - Get notified of new availability
  • Share Profiles - Deep links to barber profiles
  • Community Feed - Local barber/style discussions
  • Referral System - Share & earn credits

Communication

  • Quick Replies - Pre-set responses in chat
  • Translation - Auto-translate chat messages
  • Read Receipts - Know when messages are seen
  • Typing Indicators - Real-time typing status
  • Media Sharing - Send reference photos in chat
  • Voice/Video Calls - In-app calling

Offline & Performance

  • Offline Mode - Browse cached barbers without internet
  • Image Caching - Faster load times for portfolios
  • Lazy Loading - Load images as they scroll into view
  • Optimistic Updates - Instant UI feedback

UI/UX Improvement Ideas

Onboarding

  • Progress Persistence - Resume incomplete onboarding
  • Skip Option - Complete profile later
  • Animated Tutorials - Explain key features
  • Permission Explanations - Why we need location/notifications

Navigation

  • Bottom Sheet Improvements - Smoother snap points
  • Tab Bar Badges - Unread messages count
  • Floating Action Button - Quick book from anywhere
  • Breadcrumbs - Show navigation path in modals

Visual Design

  • Micro-animations - Button press, card flip, etc.
  • Gradient Accents - More visual depth
  • Custom Icons - Branded icon set
  • Empty States - Illustrated empty states with actions
  • Error States - Friendly error illustrations

Feedback & Trust

  • In-app Ratings - Rate after each booking
  • NPS Surveys - Periodic satisfaction surveys
  • Help Center - Searchable FAQ
  • Live Chat Support - In-app customer service

Third-Party Integrations to Consider

Service Purpose
Google Maps Platform Maps, Places API, Directions
Stripe Payments, Connect for barber payouts
Twilio SMS notifications, voice calls
SendGrid Email notifications
OneSignal/Firebase Push notifications
Sentry Error tracking
Mixpanel/Amplitude Analytics
Intercom Customer support chat
Cloudinary Advanced image processing
Stream Scalable chat infrastructure
Agora Video/voice calling
Veriff/Onfido Identity verification

Getting Started

# Install dependencies
npm install

# Start development server
npm start

# Run on iOS
npm run ios

# Run on Android
npm run android

# Run on Web
npm run web

# Type check
npx tsc --noEmit

# Lint
npm run lint

Environment Variables

EXPO_PUBLIC_SUPABASE_URL=your_supabase_url
EXPO_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
GOOGLE_MAPS_API_KEY=your_google_maps_key
STRIPE_PUBLISHABLE_KEY=your_stripe_key

Project Structure

get-barber/
├── app/                    # Expo Router screens
│   ├── (auth)/            # Authentication screens
│   ├── (tabs)/            # Customer tab screens
│   ├── (barber-tabs)/     # Barber tab screens
│   ├── (modals)/          # Modal screens
│   └── (onboarding)/      # Onboarding flows
├── src/
│   ├── components/        # Reusable components
│   ├── features/          # Feature modules
│   ├── stores/            # Zustand stores
│   ├── services/          # API services
│   ├── hooks/             # Custom hooks
│   ├── constants/         # Theme, mock data
│   ├── types/             # TypeScript types
│   └── utils/             # Utility functions
└── supabase/
    └── migrations/        # Database migrations

Contributing

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

License

MIT License - see LICENSE file for details.

About

Get Barber - Booking Platform

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published