Passion Project | Full-Stack Development & Customizable Model
Easy Cuts: Full-Stack Barbershop Management System
A full-stack barbershop management application designed to replace manual scheduling with a smart, scalable, and user-centric digital solution. Developed as a passion project and adaptable for commercial deployment.
The Challenge: A Proactive Solution
Easy Cuts originated from a real-world problem: my local barber’s growing popularity resulted in long wait times and confusion caused by manual scheduling. To solve this, I designed, implemented, and deployed a complete digital management model. The system consists of a modern brochure website for customers and a secure, role-based management portal for barbers — eliminating chaos and bringing structure to daily operations.
Core Architecture: Spring Boot Mastery
The application is built on Spring Boot 3.5.7 with Java 17, showcasing enterprise-grade development practices. It follows a clean Controller–Service–Repository structure that enforces separation of concerns and maintainability.
- Backend Stack: Java 17, Spring Boot, Spring Security, JPA/Hibernate, MySQL
- Frontend: Thymeleaf templates enhanced with custom CSS and animation scripts (AOS)
- Build System: Maven configured with web, data, validation, and transactional email dependencies
Technical Deep Dive: Complex Scheduling Logic
- Slot Generation: The SlotService dynamically generates appointment slots (10:00–19:00 in 30-minute increments), ensuring no duplicate or overlapping bookings.
- Walk-in Queue: Implements a first-in, first-out logic that automatically assigns the next available slot, locking it and logging timestamps for fairness.
- Transactional Email: Integrates JavaMail to send HTML-formatted confirmation messages upon booking, offering real-time feedback.
- Security & Validation: Configured with BCrypt encryption and DTO validation, securing all admin routes and enforcing data correctness before persistence.
Application Flow & Domain Model
The domain model manages all core entities essential to a barbershop operation:
- Appointments: Links customers, slots, and services while tracking status changes such as Completed or No-Show.
- Customers: Stores validated details with unique phone numbers, enabling reuse for recurring visits or walk-ins.
- Controllers: The PublicController manages customer-facing logic, while AdminController governs secure dashboard functions like status updates and slot cancellations.
Future Expansion
Future plans include extending Easy Cuts into a complete SaaS model with built-in online payments, advanced analytics (revenue, frequency, service trends), and a white-label customization option for barbershops purchasing the solution.
Impact: Real-World Problem Solving Through Code
Easy Cuts demonstrates my ability to translate real-world operational challenges into robust, maintainable software systems. It represents a strong example of my full-stack capability, combining data integrity, security, and intuitive design in a solution ready for commercial scaling.