Skip to content

A full-stack real-time fuel delivery and roadside assistance system using Node.js, Express, MongoDB, and Socket.io with geolocation tracking and PDF generation.

License

Notifications You must be signed in to change notification settings

Nikki-ta/fuel_aid

Repository files navigation

FuelAid 🚗⛽

Delivering Fuel & Roadside Aid Anytime, Anywhere!

Node.js MongoDB Socket.io License

FuelAid is a real-time full-stack web application built using Node.js, Express, MongoDB, and Socket.io, designed to assist users with emergency roadside services and fuel delivery. The platform supports live geolocation tracking, role-based dashboards, and automated receipt generation — ensuring seamless coordination between customers, mechanics, fuel delivery agents, and admins.

🎥 Preview

👉 Watch Demo on Loom

🚀 Novelty

FuelAid stands out from traditional service platforms due to its real-time geolocation, live tracking, and tailored role-based workflows. Key innovations include:

  • 🚗 Role-Specific Interfaces: Custom dashboards and features for customers, mechanics, fuel delivery personnel, and admins.
  • 📍 Live Location Tracking: Mechanics’ current locations are fetched on login to match service requests within a 100 km radius.
  • 🧾 Automated PDF Report Generation: PDFKit is used to create service reports and receipts, which are auto-emailed post-service.
  • 🔗 Socket.io Real-Time Updates: Enables live status updates and location changes without refreshing the page.
  • 🛡️ Verified Service Providers: Mechanics and fuel boys go through a detailed verification process for enhanced user trust and safety.

Table of Contents

Installation and Setup

  1. Clone the repository
    git clone https://github.com/your-username/fuel_aid.git
    cd fuel-aid
    
  2. Install all the dependencies
    npm install
  3. Create a file named ".env" and enter the following credentials:
    MONGO_URI = yourmongouri;
    OPENCAGE_API_KEY = your_apikey;
  4. Run the web application
    npm start
  5. Open http://localhost:5000 in your browser.

Features

👥 User Types

  • Customer: Requests fuel or roadside assistance through an intuitive service request form. Customers can track service status in real-time, view receipts, and submit feedback.

  • Mechanic: Receives and accepts nearby service requests (within 100 km). Mechanics can update service status, track customers, and view their service history.

  • Fuel Delivery Boy: Assigned by the admin to deliver petrol or diesel to customers. They can view customer location, confirm delivery, and mark requests as completed.

  • Admin: Oversees the platform, verifies new users, manages service requests, assigns fuel delivery personnel or mechanics, and ensures smooth operational flow.

🚗Customer Features

  • Signup/login with driving license verification.
  • Request services: Roadside, Maintenance, or Fuel.
  • View status & track mechanic/fuel delivery in real-time.
  • Receive service receipts.
  • Submit feedback & rate services.

🧰 Mechanic Features

  • Login with location tracking.
  • View and accept nearby service requests (within 100 km).
  • Dashboard auto-refresh every 20 minutes.
  • Real-time customer tracking & service update.
  • Submit post-service notes and view service history.

⛽ Fuel Delivery Boy Features

  • Submit hiring form (includes experience & background).
  • Assigned deliveries based on proximity.
  • Track customer, provide fuel, mark completion.
  • Follow receipt and feedback cycle.

🛠️ Admin Features

  • Manage customer & fuel delivery boy onboarding.
  • Assign services manually based on proximity.
  • Monitor all service request statuses (pending/ongoing/completed).
  • View feedback, ratings, and notes.
  • Full platform moderation and quality assurance.

Technologies used

  • HTML
  • CSS
  • Bootstrap
  • Javascript
  • Node.js
  • Express.js
  • Mongodb
  • ejs

npm packages used

  • express
  • ejs
  • express-ejs-layouts
  • mongoose
  • express-session
  • bcryptjs
  • passport
  • passport-local
  • connect-flash
  • method-override
  • dotenv
  • geolib
  • pdfkit
  • socket.io

APIs and Libraries

  • OpenCage Geocoding API: Converts textual addresses to lat/long and vice versa.
  • Leaflet.js: Displays live map view for customer-mechanic tracking.
  • Haversine-distance: Calculates shortest distance between two coordinates for ETA accuracy.
  • Geolib: Filters and ranks nearest service providers based on real-time geolocation.

Prerequisites

For running the application:

  • Node.js must be installed on the system.
  • You should have a MongoDB database.
  • You should have a code editor (preferred: VS Code)

Useful Links

Contact

📧 For queries or contributions: nikitabansal006@gmail.com
🔗 GitHub Repo: https://github.com/Nikki-ta/fuel_aid

📝 License

This project is licensed under the MIT License - see the LICENSE.MD file for details.

About

A full-stack real-time fuel delivery and roadside assistance system using Node.js, Express, MongoDB, and Socket.io with geolocation tracking and PDF generation.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published