Skip to content

dimianni/booking-software

Repository files navigation

Barbershop Booking Software

Introduction

Barbershop Booking Software is a solution designed to streamline the process of managing appointments and sales of hairstyling products for barbershops. It allows clients to book appointments, select hairstyling products, and make payments conveniently online. Barbershop administrators can easily manage opening/closing times, configure holidays, and manage their product inventory through a user-friendly interface.

Built with Next.js and a suite of modern web technologies, this application aims to deliver a seamless experience for both clients and shop administrators.

Features

For Clients

  • Appointment Booking: Select your preferred time and date for a haircut.
  • Product Selection: Choose from a range of hairstyling products to add to your booking.
  • Payment Gateway: Securely make the payment for the haircut and products online.

For Barbershop Administrators

  • Schedule Management: Set opening and closing times for each day.
  • Holiday Configuration: Easily configure days when the shop will be closed.
  • Product Management: Add, update, and manage hairstyling products offered to clients.

Barbershop Interior

Please shoot me a message on LinkedIn or an email for admin credentials.

Technologies Used

  • Frontend: Typescript, Next.js, TailwindCSS, DaisyUI, HeadlessUI
  • Backend: Prisma, AWS SDK (S3)
  • Utilities: axios, date-fns, react-calendar, nanoid, jose, cookie

Getting Started

Prerequisites

  • Node.js (v14 or later)
  • A CockroachDB database
  • AWS account for S3 (for storage)
  • Checkout.com test account

Why This Project Is Special to Me

This project is particularly important to me for its interesting mix of technologies:

  • Use of CockroachDB, a database adopted by leading companies such as Netflix.
  • Use of Prisma, which has streamlined database operations, making them more intuitive and efficient.
  • Use of JWT was implemented for authentication and route protection, providing a secure and efficient method for managing admin sessions.
  • Use of AWS S3 for image storage.
  • Use of Checkout.com Hosted Payments solution, providing secure and user-friendly payment processing capabilities.
  • This app also marks my first experience with TypeScript, enhancing the development process through improved type safety and developer experience.

Each technology was chosen not only for its direct benefits to the project but also for the opportunity it presented for professional growth and learning.