Helping each other on the road to ensure on-time deliveries.
Connect with nearby Walmart delivery partners for instant roadside assistance.
HelpOnRoute is a real-time roadside assistance platform designed for Walmart delivery drivers. The platform enables drivers to request help when they encounter issues on the road and allows other nearby drivers to offer assistance. Built with modern web technologies, it features real-time location tracking, instant notifications, and a reward system.
- π User Authentication - Secure signup and login for drivers
- πΊοΈ Real-time Mapping - Interactive map with Leaflet showing driver locations
- π Location Tracking - Live location updates for active drivers
- π Help Request System - Create, accept, and resolve help requests
- π¬ Real-time Communication - Instant notifications via Socket.io
- π Reward System - Earn coins for helping fellow drivers
- πΈ Image Upload - Upload vehicle issue photos (via Cloudinary)
- π Driver Profiles - View profile, vehicle details, and help history
- π Status Management - Track driver availability (Available/Busy/Helping)
- React 19 - Modern UI framework
- TypeScript - Type-safe development
- Vite - Fast build tool
- React Router - Client-side routing
- Leaflet - Interactive maps
- Tailwind CSS - Utility-first styling
- Framer Motion - Smooth animations
- Axios - HTTP client
- Socket.io-client - Real-time communication
- Node.js - Runtime environment
- Express 5 - Web framework
- TypeScript - Type-safe development
- Prisma - ORM for PostgreSQL
- PostgreSQL - Relational database
- Socket.io - Real-time bidirectional communication
- Cloudinary - Image storage
- Multer - File upload handling
- JWT - Authentication
- OpenRouteService - Route calculation API
- @turf/turf - Geospatial calculations
HelpOnRoute-main/
βββ client/                 # React frontend application
β   βββ src/
β   β   βββ Components/     # Reusable components
β   β   βββ pages/          # Page components
β   β   βββ socket/         # Socket.io client setup
β   β   βββ model/          # Modal components
β   β   βββ App.tsx         # Main app component
β   βββ package.json
β
βββ server/                 # Node.js backend application
    βββ src/
    β   βββ controllers/     # Request handlers
    β   βββ routes/         # API routes
    β   βββ socketHandler/ # Socket.io handlers
    β   βββ config/         # Configuration files
    β   βββ index.ts        # Server entry point
    βββ prisma/
    β   βββ schema.prisma   # Database schema
    βββ package.json
- Node.js (v18 or higher)
- PostgreSQL database
- npm or yarn
- 
Clone the repository git clone https://github.com/JK-77/HelpOnRoute.git cd HelpOnRoute
- 
Install server dependencies cd server npm install
- 
Install client dependencies cd ../client npm install
- 
Set up environment variables Create a .envfile in theserverdirectory:DATABASE_URL="postgresql://user:password@localhost:5432/helponroute" JWT_SECRET="your-secret-key" CLOUDINARY_CLOUD_NAME="your-cloud-name" CLOUDINARY_API_KEY="your-api-key" CLOUDINARY_API_SECRET="your-api-secret" 
- 
Set up the database cd server npx prisma migrate dev npx prisma generate
- 
Run the development servers Terminal 1 (Server): cd server npm run devServer runs on http://localhost:3000Terminal 2 (Client): cd client npm run devClient runs on http://localhost:5173
- Sign up or log in to your account
- Navigate to Dashboard
- Fill in your issue details and upload a photo (optional)
- Your location is automatically tracked
- Wait for a nearby driver to accept your request
- Accept offers from other drivers
- Mark request as resolved when help is complete
- Log in to your account
- Navigate to Help Dashboard
- View all pending help requests on the map
- Click on any request to see details
- Accept a request to start helping
- Navigate to the requester's location
- Help is marked as resolved when complete
- Earn coins for successful help!
- Personal information (name, email, phone)
- Location (latitude, longitude)
- Status (AVAILABLE, BUSY, HELPING)
- Profile data (image, vehicle number)
- Reward system (coins, help count)
- Requester and helper information
- Issue description and image
- Location coordinates
- Status (PENDING, ACCEPTED, RESOLVED)
- Timestamps
- POST /api/auth/signup- Register new driver
- POST /api/auth/signin- Login driver
- GET /api/drivers- Get all drivers
- PUT /api/driver/:id- Update driver location/status
- GET /api/driver/:id- Get driver details
- POST /api/request/create- Create help request
- GET /api/request/pending- Get all pending requests
- PUT /api/request/:id/accept- Accept help request
- PUT /api/request/:id/resolve- Resolve help request
- send-help-request- Broadcast new help request
- receive-help-request- Receive help requests
- accept-help- Accept help request
- help-accepted- Notification when help is accepted
- help-resolved- Mark help as resolved
- Drivers' locations are continuously updated and broadcasted
- Visual representation on interactive map
- Route calculation between requester and helper
- Drivers earn coins for successful help
- Track help count in profile
- Gamification encourages community support
- Upload vehicle issue photos
- Cloudinary integration for reliable storage
- Visual aid for helpers to understand the issue
- JWT-based authentication
- Password hashing
- CORS configuration
- Input validation
- Secure file uploads
- In-app messaging between drivers
- Push notifications
- Rating and review system
- Emergency contact integration
- Vehicle diagnostics integration
- Payment gateway for rewards
- Advanced analytics dashboard
- Mobile app (React Native)
This project is licensed under the MIT License.
Contributions are welcome! Please feel free to submit a Pull Request.
For questions or support, please open an issue on GitHub.
Made with β€οΈ for Walmart delivery drivers
Happy Driving! ππ¨