https://github.com/facuperezm/barberia
💈 Real world barbershop reservation app
https://github.com/facuperezm/barberia
clerk-auth datefns drizzleorm neondb nextjs15 react19 shadcn-ui tailwindcss tanstack-react-query zod
Last synced: 2 months ago
JSON representation
💈 Real world barbershop reservation app
- Host: GitHub
- URL: https://github.com/facuperezm/barberia
- Owner: facuperezm
- Created: 2024-10-15T22:31:12.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-01-12T22:50:40.000Z (5 months ago)
- Last Synced: 2025-01-26T11:13:49.964Z (4 months ago)
- Topics: clerk-auth, datefns, drizzleorm, neondb, nextjs15, react19, shadcn-ui, tailwindcss, tanstack-react-query, zod
- Language: TypeScript
- Homepage: https://barbershop.facupm.dev
- Size: 2.93 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Barbershop Management Application

**Live Demo:** [Barbershop App](https://barbershop.facupm.dev/)
> _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.
## Project Description
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.
## Features
- **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.## Tools Used
- **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.## Technical Hurdles
### Dynamic Employee Management
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.
### Scheduling with Time Slot Management
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.
## Installation
1. **Clone the Repository:**
```bash
git clone https://github.com/facuperezm/barbershop.git
```
2. **Navigate to the Project Directory:**
```bash
cd barbershop-app
```
3. **Install Dependencies:**
```bash
pnpm i
```
4. **Set Up Environment Variables:**
Create a `.env` file in the root directory and add necessary environment variables as per the `.env.example` file.
5. **Run the Development Server:**
```bash
pnpm dev
```## Contact
- **Facundo Perez Montalvo**
- [Portfolio](https://facuperezm.com)
- [LinkedIn](https://www.linkedin.com/in/facuperezm/)
- [GitHub](https://github.com/facuperezm)[](https://facuperezm.com)
[](https://www.linkedin.com/in/facuperezm/)
[](https://github.com/facuperezm)