BeautyHub Appointment Manager
Smart scheduling platform for beauty salons with staff and customer management
Planned Beauty Services
Problem Solved
Beauty salon owners manage appointments via phone calls and spreadsheets. This leads to double bookings, no-shows, and poor customer experience. BeautyHub centralizes bookings, staff schedules, and service history.
Core Features
- ✓Service catalog (manicure, pedicure, esthetics, etc.) with pricing
- ✓Real-time appointment availability based on staff schedules
- ✓Customer booking portal with calendar view
- ✓Staff shift management and availability tracking
- ✓Customer history with service notes and preferences
- ✓SMS/Email reminders 24h before appointments
- ✓Admin dashboard for revenue tracking and staff performance
- ✓Customer rating and review system
Technical Architecture
┌────────────────────────────────────┐
│ Angular Frontend (SPA + PWA) │
│ - Customer Booking Portal │
│ - Staff Mobile App │
│ - Admin Dashboard │
└──────────────┬─────────────────────┘
│
┌────────┴────────┐
│ │
┌─────▼──────────────────▼──────┐
│ Spring Boot REST API │
│ - Auth Service │
│ - Appointment Service │
│ - Staff Service │
│ - Notification Engine │
└──────────────┬─────────────────┘
┌────────┴─────────┬──────────┐
│ │ │
┌─────▼─────┐ ┌────────▼──┐ ┌──▼────┐
│PostgreSQL │ │ MongoDB │ │Twilio │
│(Schedule) │ │(Notes & │ │(SMS/ │
│ │ │ Prefs) │ │Email) │
└───────────┘ └───────────┘ └───────┘
Tech Stack
Frontend
- • Angular 21
- • TypeScript
- • RxJS
- • TailwindCSS
- • Service Worker (PWA)
Backend
- • Java 17
- • Spring Boot 3
- • Spring Data JPA
- • Twilio SDK
Data & DevOps
- • PostgreSQL
- • MongoDB
- • Docker
- • AWS RDS + DocDB
Technical Challenges
Optimistic Locking for Overbooking Prevention
Implemented optimistic concurrency control with version numbers. When two staff members try to book the same slot simultaneously, the database rejects the second write and forces a refresh.
Scheduling Conflicts & Time Zone Handling
Used database constraints and application-level validation with Java LocalDateTime to prevent overlapping appointments. Stored all times in UTC and converted to user timezone on frontend.
Future Improvements
- →Integration with Google Calendar and Outlook
- →AI-powered appointment reminders to reduce no-shows
- →Automated pricing suggestions based on demand
- →Package deals and gift certificate management
- →Multi-location support for salon chains