An app for barber shops to build customer loyalty and streamline operations.
JavaScript CSS HTML
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


A React App that allows customers at a barber shop to search for the perfect style, and then book and pay for an appointment. Increases customer loyalty and streamlines basic operations for a barbershop.

User Stories

Customers can…

… perform an image search using a taxonomy of styles and hair types to filter images
… save images they like to their favorites (if registered and logged in)
… book an appointment with a barber
… share saved images with the barber so the barber knows what the customer wants
… pay for appointment, add tip
… view their history of appointments

features coming soon, customers can:
… upload images of their own haircuts they have had and liked in the past
… view availability of barbers on a calendar
… view portfolios for barbers at the shop
... add their appointments to their google calendar, ical etc.
… leave a review for their barber
... cancel or edit an appointment online

Barbers can…

features coming soon, barbers can:
… set their availability in a shared calendar
… view upcoming appointments and the images the customer chose
… upload pictures of their work to their portfolio page
… view reviews left for them

Barber Shop Admins can…

features coming soon, admins can:
… manage shop calendar
… view payments and tips
… manage reviews
… add new barber users
… communicate with customers


  • React: Manage views
  • Mongoose: Store customer and barber data
  • Passport: Manage logins for customers, barbers, and admins
  • Bootstrap: Front-end layout
  • JWT: Session management
  • Stripe API: Process payments & tips from clients to barbershop/barber
  • Google CSE and google-images node module: help customers choose a hairstyle


  • User

    • Role: [user, barber, admin]
    • Name
    • Email address
    • Password
    • pastStyles [a list of styles that are uploaded selfies of the user's past haircuts]
    • likedStyles [a list of images that user saved as favorites]
    • Appointments [list of appointments that are this client]
    • Profile pic (future)
  • Appointment

    • Time and date
    • Client
    • Barber
    • Desired style [style chosen by client]
    • review left - # of stars (future)
    • review left - text of review (future)
  • Style

    • Image that represents this style
    • Name of style
    • Note