A full-stack Next.js application for managing appointments at a barber shop. This system allows customers to book appointments online and provides an admin interface for staff to manage bookings and barber schedules.
- Browse available services with pricing
- Select preferred barber and date
- View available time slots based on barber availability
- Book appointments without requiring registration
- Receive confirmation with a reference number
- Secure admin login portal
- Dashboard to view all appointments
- Calendar view for daily scheduling
- Ability to block out time slots (vacations, training, etc.)
- Manage barbers, services, and business settings
- Frontend: Next.js 14 with App Router, React 19, TypeScript
- UI Components: shadcn/ui, Tailwind CSS, Lucide React icons
- Backend: Next.js API Routes
- Database: PostgreSQL with Prisma ORM
- Authentication: Custom auth implementation with secure cookies
- Form Handling: React Hook Form with Zod validation
- Node.js 18.17.0 or later
- PostgreSQL database
- npm or yarn
git clone https://github.com/kabiruH/barber-shop-appointment.git
cd barber-shop-appointmentnpm install # or yarn installCreate a .env file in the root directory and add the following:
DATABASE_URL=your_postgresql_connection_string
NEXTAUTH_SECRET=your_secret_keynpx prisma migrate dev --name initnpm run dev # or yarn devThe application should now be running at http://localhost:3000.
- Customers: Visit the website, select a service, choose a barber and time, and confirm the appointment.
- Admins: Log in to manage appointments, barbers, and business settings.
This project is open-source and available under the MIT License.
Feel free to reach out at huriakelvin@gmail.com and remember to leave a star! 🚀