A full-stack MERN application connecting EV drivers with home charging station hosts — GPS discovery, live booking, wallet payments, and real-time price bidding.
Grid-Lock is a full-stack MERN marketplace that connects EV drivers with everyday people who host home charging stations. Drivers can locate nearby chargers on a live map, reserve time slots for cars or bikes, pay through an integrated wallet, and leave reviews — while hosts get a dashboard to list and manage their own stations. A Socket.io real-time layer powers live price bidding, so charging costs can flex dynamically instead of being fixed.
| Feature | Description |
|---|---|
| 📍 Live GPS Tracking | Find chargers near your real-time location on an interactive map |
| 🗓️ Booking System | Reserve time slots for Cars or Bikes |
| 💳 Wallet & Payments | Integrated dummy payment gateway with an in-app wallet system |
| 🏠 Host Dashboard | Users can deploy and manage their own charging stations |
| 🔄 Real-Time Updates | Socket.io-powered live price bidding on charging slots |
| ⭐ Reviews | Drivers can rate and review stations after use |
┌───────────────────────────┐
│ React Client (Vite/CRA) │
│ Leaflet Maps · Tailwind │
└──────────────┬──────────────┘
│ REST API + WebSocket
▼
┌───────────────────────────┐
│ Express.js Server │
│ (Node.js runtime) │
└──────┬─────────────┬────────┘
│ │
REST/CRUD │ │ Real-time events
▼ ▼
┌───────────────────┐ ┌───────────────────┐
│ MongoDB │ │ Socket.io │
│ (Users, Stations, │ │ (Live price bidding, │
│ Bookings, Wallet) │ │ booking updates) │
└───────────────────┘ └───────────────────┘
| Layer | Technologies |
|---|---|
| Frontend | React.js · Leaflet Maps · Tailwind CSS |
| Backend | Node.js · Express.js |
| Database | MongoDB |
| Real-Time | Socket.io |
| Deployment | Vercel |
- Node.js 18+
- npm
- A running MongoDB instance (local or Atlas)
# 1. Clone the repository
git clone https://github.com/adjienjeknwc/grid-lock-ev-platform.git
cd grid-lock-ev-platform
# 2. Install client dependencies
cd client && npm install
# 3. Install server dependencies
cd ../server && npm install# Terminal 1: Start the server
cd server && node index.js
# Terminal 2: Start the client
cd client && npm startThe client will typically run on http://localhost:3000, connecting to the Express server for REST calls and real-time Socket.io events.
Or skip local setup entirely and try the ⚡ Live App.
- Discover — the driver opens the app and sees nearby charging stations plotted live on a Leaflet map based on GPS location.
- Book — the driver selects a station, chooses a vehicle type (car or bike), and reserves an available time slot.
- Bid — Socket.io streams live price updates for slots where hosts have enabled dynamic bidding.
- Pay — payment is settled through the integrated wallet and dummy payment gateway.
- Review — after charging, the driver leaves a rating and review for the station.
- Host — station owners manage their listings, pricing, and bookings through a dedicated host dashboard.
- Real payment gateway integration (Razorpay/Stripe)
- Push notifications for booking confirmations & bidding updates
- Host payout & earnings dashboard
- Route-based charger suggestions (not just proximity)
- Mobile app (React Native)
Grid-Lock is a portfolio / demonstration project. The payment gateway is a dummy implementation for demo purposes only — no real financial transactions are processed.
Contributions, issues, and feature requests are welcome! Feel free to check the issues page.
This project is licensed under the MIT License — see the LICENSE file for details.
Built with ⚡ to keep EVs charged and drivers moving.