ServiceHub is a production-style full-stack service marketplace platform designed with scalable architecture principles.
It supports Customers, Service Providers, and Admins with secure JWT authentication, Razorpay payment integration, geolocation-based service discovery, and centralized platform governance.
Frontend (React)
↓
Stateless REST APIs (Spring Boot)
↓
Service Layer (Business Logic Isolation)
↓
JPA / Hibernate (ORM)
↓
PostgreSQL (Relational Persistence)
Security Layer:
- JWT-based Stateless Authentication
- Role-Based Access Control (RBAC)
- BCrypt password hashing
- Endpoint-level authorization
Governance Layer:
- SystemConfig-based dynamic configuration
- MaintenanceFilter for platform-wide request control
Payment Layer:
- Razorpay order creation
- Signature verification
- Commission calculation
- Transaction persistence
Backend: Spring Boot, Spring Security, JWT, JPA/Hibernate, PostgreSQL
Frontend: React, Axios, Context API
Payments: Razorpay (Secure Order + Signature Verification)
Maps & Geolocation: Location-based service access using map integration
Architecture: Layered, Modular, DTO-driven
- Secure authentication (JWT)
- Browse services by location
- Map-integrated service visibility
- Book services
- Razorpay-based payment
- Booking history tracking
- Manage listed services
- Accept / reject bookings
- Track service lifecycle
- View earnings from confirmed bookings
- Platform-wide analytics
- User management (suspend/delete)
- Booking monitoring
- Configure commission percentage
- Enable/disable email system
- Toggle maintenance mode (graceful service shutdown)
- Stateless JWT authentication
- Role-based endpoint protection
- CustomUserDetailsService implementation
- Secure password storage (BCrypt)
- Protected Admin APIs
- MaintenanceFilter to block restricted operations dynamically
- Backend creates Razorpay order
- Frontend completes payment securely
- Backend verifies Razorpay signature
- Booking marked as confirmed
- Platform commission calculated
- Transaction stored in PaymentTransaction entity
Commission percentage is dynamically configurable via SystemConfig, enabling platform-level monetization control.
- Geolocation-based service discovery
- Frontend map view for service visibility
- Location-aware booking flow
- Designed for scalability toward distance-based provider matching
Centralized configuration via SystemConfig:
- Commission percentage control
- Email notification toggle
- Maintenance mode toggle
Maintenance mode allows:
- Authentication access
- Blocking of booking operations
- Graceful operational shutdown
This mirrors real-world production governance systems.
- Service Selected
- Booking Created
- Booking Confirmed
- Provider Accepts
- Service Completed
- Payment Initiated
- Payment Verified
- Separation of concerns (Controller → Service → Repository)
- DTO-based request/response modeling
- Stateless security model
- Configurable platform behavior
- Extensible monetization layer
- Modular admin governance
- Designed for horizontal scaling
mvn clean install mvn spring-boot:run
npm install npm run dev
Environment Variables Required:
- Database credentials
- Google OAuth2 client id
- Razorpay key & secret
✔ Multi-role RBAC architecture
✔ Stateless authentication design
✔ Razorpay signature verification
✔ Dynamic commission configuration
✔ Maintenance-mode request interception
✔ Location-aware service discovery
✔ Production-style layered backend
- Provider wallet & settlements
- Refund handling
- WebSocket-based real-time updates
- Cloud deployment
- Containerization
- CI/CD integration
- Distance-based provider matching algorithm
Ritesh Shinde
Full Stack Developer
Spring Boot | React | PostgreSQL | Secure Distributed Systems