Skip to content
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚡ EV Charging Scheduler

A predictive web application with 3D visualization that helps EV users find nearest charging stations, predicts their vehicle's range, and optimizes charging schedules based on grid load and energy prices.

Project Status Python Node License


🎯 Project Objectives

  1. Design and implement a smart charging scheduler for EVs using AI
  2. Optimize EV charging based on real-time data such as energy prices and grid load
  3. Reduce congestion and enhance user experience through demand prediction
  4. Promote sustainable energy utilization and efficient mobility solutions
  5. Integrate modern computational technologies (AI, Cloud, 3D Visualization)

✨ Features

🗺️ 3D Interactive Map

  • Real-time charging station visualization on 3D terrain
  • Animated EV models moving through the environment
  • Interactive camera controls (pan, zoom, rotate)
  • Station information on hover/click

🔋 Range Predictor

  • AI-powered range prediction using ML models
  • Support for multiple vehicle models
  • Driving condition adjustments (normal/highway/city)
  • Real-time efficiency calculations

📊 Grid Dashboard

  • Current grid load monitoring
  • 6-hour load forecast with interactive charts
  • Price multiplier and renewable energy tracking
  • Smart charging recommendations

⏰ Smart Scheduling

  • Optimal charging time slot recommendations
  • Cost savings estimation
  • Grid load-based suggestions
  • 24-hour forecast view

🎯 Station Finder

  • Location-based search with radius selection
  • Distance calculation using Haversine formula
  • Real-time availability status
  • Amenities and pricing information

🛠️ Tech Stack

Layer Technology
Frontend React 19, Three.js, React Three Fiber, Bootstrap 5, Chart.js
Backend Python 3.9+, FastAPI, Uvicorn
ML/AI Scikit-learn, Pandas, NumPy, Joblib
Database SQLite (for demo data)
Deployment Vercel (frontend), Render (backend)

🚀 Quick Start

Prerequisites

  • Python 3.9+
  • Node.js 18+
  • Git

1. Clone/Navigate to Project

cd "C:\Users\patil\OneDrive\Desktop\Projects\Minor Project\ev-charging-scheduler"

2. Setup Backend

cd backend

# Create virtual environment
python -m venv venv

# Activate (Windows)
venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Generate synthetic data
python generate_data.py

# Train ML models
python train_models.py

# Test backend (recommended - verifies all endpoints)
python test_with_client.py

# Start server
python run_server.py

Backend runs at: http://localhost:8001
API Docs: http://localhost:8001/docs

Note: Using port 8001 to avoid conflicts. Frontend .env is configured accordingly.

3. Setup Frontend

Open a new terminal:

cd frontend

# Install dependencies
npm install

# Start dev server
npm run dev

Frontend runs at: http://localhost:5173


📁 Project Structure

ev-charging-scheduler/
├── backend/
│   ├── main.py                 # FastAPI application
│   ├── api/routes.py           # API endpoints
│   ├── generate_data.py        # Data generation
│   ├── train_models.py         # ML model training
│   ├── requirements.txt        # Python dependencies
│   ├── data/                   # Synthetic datasets
│   └── ml_models/              # Trained ML models
├── frontend/
│   ├── src/
│   │   ├── App.jsx            # Main component
│   │   ├── components/        # UI components
│   │   ├── scenes/            # 3D scenes
│   │   └── api/               # API client
│   ├── package.json
│   └── .env
├── docs/
│   ├── PROJECT_DOCUMENTATION.md
│   ├── QUICKSTART.md
│   ├── PRESENTATION.md
│   └── PROJECT_SUMMARY.md
├── README.md
└── .gitignore

📊 API Endpoints

Stations

  • GET /api/stations - Get all charging stations
  • GET /api/stations/nearby - Find nearby stations

Predictions

  • POST /api/predict/range - Predict vehicle range
  • POST /api/predict/demand - Predict station demand

Scheduling

  • POST /api/schedule/optimal - Get optimal charging schedule
  • GET /api/grid/load - Get current grid status

Full API documentation: http://localhost:8000/docs


🤖 Machine Learning Models

Model Algorithm Accuracy (R²) Purpose
Range Predictor Random Forest 0.96 Predict EV travel range
Grid Load Forecaster Gradient Boosting 0.92 Forecast grid load
Demand Predictor Gradient Boosting 0.85 Predict charging demand

📚 Documentation


🙏 Acknowledgments

  • FastAPI Documentation
  • React Three Fiber
  • Scikit-learn
  • Three.js

About

Minor project for electric vehicles

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages