How prahlad-07/bookmysalon works
BookMySalon is a salon-booking monolith with a React SPA. Customers discover salons and services, authenticate, book appointments, pay, and review; salon owners manage listings and bookings, while admins access operational dashboards. Messaging and notifications support ongoing customer-owner interactions. The README documents the broader feature flow, while sampled source directly confirms review handling and recommendation, pricing, retention, OAuth-code, and JWT behavior; detailed wiring for other subsystems is not sampled, so those links are limited to documented boundaries.
Main entry points: api.js API configuration · App.jsx SPA routes · AuthController.java Auth endpoints · AnalyticsController.java Analytics APIs
Components 31
React experience
- SPA routes
frontend/src/App.jsx - Salon discovery
frontend/src/pages/SalonList.jsx - Salon details
frontend/src/pages/SalonDetail.jsx - Booking views
frontend/src/pages/MyBookings.jsx - Owner dashboard
frontend/src/pages/SalonOwnerDashboard.jsx - Admin dashboard
frontend/src/pages/AdminDashboard.jsx - Chat interface
frontend/src/pages/ChatPage.jsx - API configuration
frontend/src/config/api.js
Identity and access
- Auth endpoints
bookmysalon-app/src/main/java/com/bookmysalon/controller/AuthController.java - Auth service
bookmysalon-app/src/main/java/com/bookmysalon/service/auth/AuthServiceImpl.java - JWT security
bookmysalon-app/src/main/java/com/bookmysalon/security/JwtService.java
Salon marketplace
- Salon and service APIs
bookmysalon-app/src/main/java/com/bookmysalon/controller/SalonController.java - Booking API
bookmysalon-app/src/main/java/com/bookmysalon/controller/BookingController.java - Payment API
bookmysalon-app/src/main/java/com/bookmysalon/controller/PaymentController.java - Review API
bookmysalon-app/src/main/java/com/bookmysalon/controller/ReviewController.java - Review validation
bookmysalon-app/src/main/java/com/bookmysalon/service/impl/ReviewServiceImpl.java - Review records
bookmysalon-app/src/main/java/com/bookmysalon/repository/ReviewRepository.java
Engagement
- Chat and notifications
bookmysalon-app/src/main/java/com/bookmysalon/chat/controller/ChatRestController.java - Messaging service
bookmysalon-app/src/main/java/com/bookmysalon/chat/service/impl/MessageServiceImpl.java - STOMP messaging
bookmysalon-app/src/main/java/com/bookmysalon/config/WebSocketConfig.java
Business intelligence
- Analytics APIs
bookmysalon-app/src/main/java/com/bookmysalon/controller/analytics/AnalyticsController.java - Dynamic pricing
bookmysalon-app/src/main/java/com/bookmysalon/service/pricing/PricingService.java - Salon recommendations
bookmysalon-app/src/main/java/com/bookmysalon/service/recommendation/RecommendationService.java - Retention offers
bookmysalon-app/src/main/java/com/bookmysalon/service/retention/RetentionService.java
Other components
- Customer
- Salon owner
- Administrator
- Application database
- Mapbox
- Google OAuth
- Stripe
Connections 36
- Customer → SPA routes: uses
- Salon owner → SPA routes: uses
- Administrator → SPA routes: uses
- SPA routes → API configuration: routes requests
- SPA routes → Salon discovery: offers discovery
- Salon discovery → Salon details: opens salon
- Customer → Salon discovery: searches salons
- Customer → Booking views: manages bookings
- Salon owner → Owner dashboard: manages business
- Administrator → Admin dashboard: views operations
- Customer → Chat interface: starts conversation
- API configuration → Auth endpoints: calls
- Auth endpoints → Auth service: delegates
- Auth service → JWT security: issues tokens
- Auth endpoints → Application database: persists identity
- Auth endpoints → Google OAuth: optional handoff
- API configuration → Salon and service APIs: calls
- API configuration → Booking API: calls
- API configuration → Payment API: calls
- API configuration → Review API: calls
- Review API → Review validation: delegates
- Review validation → Review records: reads and writes
- Review API → Application database: persists reviews
- Payment API → Stripe: optional payment
- Salon details → Mapbox: optional map view
- API configuration → Chat and notifications: calls
- Chat and notifications → Messaging service: delegates
- Messaging service → STOMP messaging: dispatches messages
- Messaging service → Application database: stores messages
- API configuration → Analytics APIs: calls
- Analytics APIs → Dynamic pricing: exposes estimate
- Analytics APIs → Salon recommendations: exposes suggestions
- Analytics APIs → Retention offers: exposes retention
- Dynamic pricing → Application database: reads pricing inputs
- Salon recommendations → Application database: reads bookings and ratings
- Retention offers → Application database: reads activity; writes coupons