HandyMany is a real-time, backend-heavy service hiring platform that connects customers with nearby skilled workers (plumbers, electricians, carpenters, painters, cleaners, AC technicians, etc.) instantly.
The project is inspired by real-world systems like Uber, Ola, and Zomato, but applied to the on-demand local services domain, with a strong focus on backend architecture, real-time communication, and system design.
This project is built to demonstrate production-grade backend engineering, not just basic CRUD APIs.
Hiring local service workers today is often:
- Manual and slow
- Dependent on phone calls or middlemen
- Uncertain in terms of availability and response time
From the worker’s side:
- Job discovery is inefficient
- No real-time visibility of nearby opportunities
- Unfair competition for the same job
HandyMany solves this using a real-time, backend-driven job matching system that ensures speed, fairness, and clarity for both clients and workers.
HandyMany enables:
- Clients to request services instantly
- The backend to dynamically find suitable workers
- Workers to receive real-time job notifications
- Immediate confirmation when a worker is assigned
The system is designed around:
- Low-latency communication
- Backend-controlled state transitions
- Event-driven architecture
- Clean separation of responsibilities
- Jobs are pushed to eligible workers via WebSockets (STOMP)
- Workers can claim, reject, or wait
- First valid claim wins (race-condition safe)
- JWT-based authentication
- Role-based access (
CLIENT,WORKER) - Secured REST APIs and WebSocket connections
- Workers receive instant job alerts
- Clients receive real-time updates when:
- Worker is found
- Job is assigned
- Job state changes
- Job lifecycle fully controlled by backend:
- SEARCHING
- WORKER_FOUND
- ASSIGNED
- IN_PROGRESS
- COMPLETED
- Frontend reacts to backend state only
- Camera detection
- Device validation
- Sensor availability checks
- Inspired by real-world proctoring systems
- Clear separation of:
- Controllers
- Services
- Managers
- Real-time handlers
- Designed for future scalability
- Client Application – Requests jobs and listens for updates
- Worker Application – Receives and claims job notifications
- Backend Services – Matching logic, validation, state transitions
- WebSocket Layer – Real-time, user-specific messaging
- Database – Persistent job, user, and worker state
-
Java + Spring Boot
Core backend framework for REST APIs, dependency injection, and lifecycle management. -
Spring Security
Stateless authentication using JWT and role-based authorization. -
WebSockets (STOMP)
Enables real-time bidirectional communication without polling. -
PostgreSQL
Reliable relational database for consistent job and user state. -
JPA / Hibernate
ORM for clean entity modeling and persistence.
-
React (Vite)
Fast, component-based frontend with instant rebuilds. -
Context API
Manages authentication, job state, and WebSocket events. -
Tailwind CSS
Utility-first styling for a clean, modern UI.
- JWT
- Axios
- STOMP Client
- Event-driven architecture
- State machines
- System-level programming concepts
- Client selects a service category
- Request is sent to backend via REST API
- Workers are filtered based on:
- Availability
- Skill
- Job constraints
- Job is created only after a worker match is found
- Backend sends WebSocket notifications to eligible workers
- Workers can claim or reject
- Backend ensures only one worker is assigned
- Client receives a
JOB_ASSIGNEDevent - UI transitions automatically based on backend state
This project demonstrates:
- Real-time system design
- Backend-driven workflows
- Race-condition handling
- Secure WebSocket communication
- Clean architecture principles
- System-level checks beyond web APIs
It reflects how real production systems are designed and operated.
- Geo-based worker matching with radius expansion
- Dynamic pricing and bidding
- Job history and analytics
- Ratings and reviews
- Redis for coordination
- Kafka for event streaming
- Microservices decomposition
- Mobile app support
Sumit Kumar
Java Backend Developer | Spring Boot | Real-Time Systems
This project represents my interest in building scalable, real-world backend systems and understanding how production platforms work internally.
⭐ If you find this project interesting, feel free to star the repository or reach out!