Shiftly is a web-based transport system designed to facilitate seamless transportation of goods across India. Whether it's shifting household items during relocation or transporting industrial materials for businesses, Shiftly ensures a hassle-free experience by connecting customers with suitable vehicles and reliable drivers. The platform is built to simplify the process, ensure affordability, and maintain reliability for both customers and drivers.
The platform provides role-based dashboards for customers and drivers, supports real-time communication via WebSocket, and integrates with APIs like Google Maps, OpenRouteService, Twilio, and Clodinary. With Shiftly, both individual users and transport professionals can manage their shipments efficiently, affordably, and with full visibility.
- User Registration and Login: Secure account creation with multiple authentication options (email, phone number, social logins).
- Goods and Address Input: Customers can enter pick-up and destination addresses, specify goods details, and use an AI estimation tool for unknown weights and sizes.
- Vehicle Selection: Displays a list of vehicles suitable for the goods based on size and weight.
- Driver Bidding System: Customers can compare bids from drivers based on distance, size, and type of goods.
- Dynamic Pricing Model: Pricing is calculated based on distance, weight, volume, vehicle type, and time of day.
- Booking and Scheduling: Customers can book vehicles for immediate or future transport with a flexible calendar interface.
- Live Tracking: Real-time tracking of goods through a GPS-enabled interface.
- Public Tracking Link: Customers can generate a public tracking link and share it with others. This link allows recipients to view real-time delivery progress without logging into the system.
- Customer Feedback System: Customers can rate drivers and provide feedback to maintain platform quality.
-
Driver Registration and Login: Secure account creation and login for drivers with OTP verification in both email and mobile number.
-
View Available Bookings : See nearby jobs in real time and filter based on vehicle compatibility.
-
Bidding System : Submit price quotes for active bookings and include ETA or notes.
-
Delivery Status & Tracking : Update delivery status and send live location updates via Socket.io.
-
Earnings Dashboard: Track income, completed jobs, and customer ratings.
Once a customer enters their transport details, Shiftly generates a price range. Drivers in the area can bid an amount within this range, and the customer selects the driver based on price, rating, and availability. The drivers can also update their bids anytime giving them the flexibility to be competitive with other drivers.
- React.js – Frontend UI framework for SPA architecture
- Tailwind CSS – For modern, responsive styling
- Framer Motion – Animations and transitions
- React Router – Page routing for customer/driver views
- Socket.io-client – For real-time updates
- Node.js + Express.js – Server-side logic and RESTful APIs
- Socket.io – Real-time communication (bidding, tracking)
- JWT – Authentication and role-based access
- Bcrypt – Password hashing for secure storage
- Multer – File uploads
- dotenv – Environment configuration
- MongoDB (Atlas) – NoSQL cloud database for scalable data handling
- Google Maps API – Address autocomplete and map rendering
- OpenRouteService API – Distance calculations
- Twilio – SMS OTP verification and notifications
- Nodemailer – Email-based OTP and alerts
- Cloudinary – Cloud storage for images and documents
- Node.js (v18 or higher)
- MongoDB
- npm or yarn
- Google Maps API key
- OpenRouteService Account
- Twilio Account
- Cloudinary Account
backend
, frontend
, Driver
) in separate terminals to start the full system correctly.
-
Clone the Repository
git clone https://github.com/Shaw145/Shiftly.git cd Shiftly
-
Backend Setup
cd backend npm install
Create a
.env
file in thebackend
directory:PORT=5000 BACKEND_URL=http://localhost:5000 FRONTEND_URL=http://localhost:5173 FRONTEND_URL_DRIVER=http://localhost:5174 MONGO_URI=your_mongodb_uri JWT_SECRET=your_jwt_secret CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name CLOUDINARY_API_KEY=your_cloudinary_api_key CLOUDINARY_API_SECRET=your_cloudinary_api_secret TWILIO_ACCOUNT_SID=your_twilio_account_sid TWILIO_AUTH_TOKEN=your_twilio_auth_token TWILIO_PHONE_NUMBER=your_twilio_phone_number EMAIL_USER=your_email_for_sending_emails EMAIL_PASSWORD=your_email_password
-
Frontend/Customer Setup
cd frontend npm install
Create a
.env
file in thefrontend
directory:VITE_BACKEND_URL=http://localhost:5000 VITE_FRONTEND_DRIVER_URL="http://localhost:5174/signup" V 8000 ITE_GOOGLE_MAPS_API_KEY=your_google_maps_api_key VITE_OPENROUTE_API=your_openrouteservice_api_key
-
Driver Setup
cd Driver npm install
Create a
.env
file in theDriver
directory:VITE_BACKEND_URL=http://localhost:5000 VITE_WS_URL=ws://localhost:5000/ws VITE_API_URL=http://localhost:5000 VITE_GOOGLE_MAPS_API_KEY=your_google_maps_api_key
use
VITE_WS_URL=wss://[Backend_URL]/ws
for real deployment -
Start the Application
# Start backend (from backend directory) npm start # Start frontend (from frontend directory) npm run dev # Start Driver (from Driver directory) npm run dev
Before using Twilio for SMS notifications:
- Sign up for a Twilio account (Free trial available)
- Verify your phone number in Twilio console
- For free trial accounts:
- You must verify each phone number that will receive SMS
- Go to Twilio Console → Phone Numbers → Verified Caller IDs
- Add and verify the phone numbers
- Only verified numbers can receive SMS in trial accounts
- For production:
- Upgrade to a paid account
- No need to verify numbers
- Higher SMS limits
- Additional features available
Once the app is running, visit:
http://localhost:5173
→ Customer frontendhttp://localhost:5174
→ Driver frontendhttp://localhost:5000
→ Backend API
- Register/Login
- Sign up with email, verify the email and complete profile
- Create a Booking
- Enter pickup/drop addresses, goods details, and schedule
- Select a Bid
- Compare live bids and choose the preferred driver
- Live Tracking
- Track the vehicle on Google Maps and receive status updates
- Rate Driver
- Submit feedback once delivery is completed
- Register/Login
- Sign up with email and mobile number, Submit profile info, vehicle docs, and availability
- View Bookings & Bid
- Check available bookings and submit competitive bids
- Manage Deliveries
- Accept bookings, update delivery status, and share live location
- Track Earnings
- View completed jobs and total income
- Integration of the OCSE AI Model for image-based shipment classification, weight prediction, vehicle recomendation and price estimation.
- Mobile app development for Android and iOS
- Multilingual support for wider accessibility
- Admin dashboard for managing users, drivers, and complaints
- End-to-end transport service with Shiftly-owned fleet (long-term)
- Suman Shaw - Lead Full Stack Developer - GitHub | Linkedin
- Sudipto Das - Backend Developer - GitHub | Linkedin
- Swarnali Das - UI/UX Designer - GitHub | Linkedin
- Sujash Das - Frontend Developer - GitHub | Linkedin
- Subhadeep Dutta - Frontend Developer - GitHub | Linkedin
This project represents our first big full-stack development effort, built with passion, learning, and collaboration. While we’ve worked hard to implement key features and design a scalable system, we acknowledge that the codebase may not be fully optimized or free of bugs.
Some features are still haven't developed yet or pending refinement. We appreciate your understanding and welcome constructive feedback to help us improve. Thank you for checking out Shiftly.
Shiftly aims to revolutionize goods transport in India by providing a digital solution that bridges the gap between customers and transport service providers. The platform focuses on affordability, efficiency, and customer satisfaction, making it a win-win for all stakeholders involved.