Live Demo: Barbershop App
Disclaimer: This is a real-world project developed for a customer.
The Barbershop Management Application is a comprehensive fullstack solution designed to streamline the operations of a modern barbershop. This project showcases the integration of frontend and backend technologies within a monorepo setup, ensuring a seamless development and deployment process.
The goal of this project is to create a robust application that allows barbershop owners to manage their team, schedule appointments, and handle customer bookings efficiently. By leveraging a monorepo structure, we maintain cohesive and scalable codebases for both the frontend and backend, facilitating easier maintenance and feature expansions.
- Employee Management: Add, edit, and delete barbers with detailed profiles.
- Scheduling: View and manage weekly schedules, including available time slots.
- Appointment Booking: Customers can book appointments online with real-time availability.
- Real-Time Updates: Utilize React Query for efficient data fetching and caching.
- Responsive Design: Ensure a seamless experience across all devices.
- Notifications: Automated confirmations and reminders for appointments.
- React.js: For building a dynamic and responsive user interface.
- Next.js 15: Modern framework for server-side rendering and routing.
- Tanstack Query: For efficient data fetching, caching, and state management.
- Drizzle ORM: Type-safe ORM for database interactions.
- Zod: Schema validation for robust data handling.
- Date-FNS: Utility library for date manipulation.
- Lucide-React: Icon library for enhancing UI elements.
- Sonner: Notification library for user feedback.
One of the significant challenges was implementing a dynamic employee management system. Ensuring that adding, editing, and deleting employees would reflect seamlessly across the application required meticulous state management and API design. Utilizing Drizzle ORM and React Query facilitated a type-safe and efficient approach to handle these operations.
Creating a flexible scheduling system that accommodates multiple employees and their available time slots was complex. Implementing CRUD operations for time slots and ensuring real-time availability required careful planning and robust backend logic.
- Clone the Repository:
git clone https://github.com/facuperezm/barbershop.git
- Navigate to the Project Directory:
cd barbershop-app
- Install Dependencies:
pnpm i
- Set Up Environment Variables:
Create a
.env
file in the root directory and add necessary environment variables as per the.env.example
file. - Run the Development Server:
pnpm dev