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.
- Design and implement a smart charging scheduler for EVs using AI
- Optimize EV charging based on real-time data such as energy prices and grid load
- Reduce congestion and enhance user experience through demand prediction
- Promote sustainable energy utilization and efficient mobility solutions
- Integrate modern computational technologies (AI, Cloud, 3D Visualization)
- 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
- AI-powered range prediction using ML models
- Support for multiple vehicle models
- Driving condition adjustments (normal/highway/city)
- Real-time efficiency calculations
- Current grid load monitoring
- 6-hour load forecast with interactive charts
- Price multiplier and renewable energy tracking
- Smart charging recommendations
- Optimal charging time slot recommendations
- Cost savings estimation
- Grid load-based suggestions
- 24-hour forecast view
- Location-based search with radius selection
- Distance calculation using Haversine formula
- Real-time availability status
- Amenities and pricing information
| 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) |
- Python 3.9+
- Node.js 18+
- Git
cd "C:\Users\patil\OneDrive\Desktop\Projects\Minor Project\ev-charging-scheduler"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.pyBackend runs at: http://localhost:8001
API Docs: http://localhost:8001/docs
Note: Using port 8001 to avoid conflicts. Frontend
.envis configured accordingly.
Open a new terminal:
cd frontend
# Install dependencies
npm install
# Start dev server
npm run devFrontend runs at: http://localhost:5173
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
GET /api/stations- Get all charging stationsGET /api/stations/nearby- Find nearby stations
POST /api/predict/range- Predict vehicle rangePOST /api/predict/demand- Predict station demand
POST /api/schedule/optimal- Get optimal charging scheduleGET /api/grid/load- Get current grid status
Full API documentation: http://localhost:8000/docs
| 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 |
- QUICKSTART.md - Get started in 5 minutes
- PROJECT_DOCUMENTATION.md - Complete technical documentation
- PRESENTATION.md - Project presentation slides
- PROJECT_SUMMARY.md - Project overview
- FastAPI Documentation
- React Three Fiber
- Scikit-learn
- Three.js