A full-stack web application that analyzes and visualizes forecasted vs actual wind power generation using real electricity system data.
The project demonstrates API data ingestion, backend processing, interactive visualization, and forecasting error analysis.
Frontend (Vercel)
https://full-stack-wind-analysis-forecastin.vercel.app/
- Fetches real wind generation and forecast data from the Elexon BMRS API
- Processes data through a Node.js backend
- Visualizes actual vs forecast wind generation using a React dashboard
- Performs forecast error analysis using a Jupyter notebook
- Deployed using Vercel (frontend) and Render (backend)
Frontend
- React
- Vite
- Chart.js
Backend
- Node.js
- Express
- Axios
Data Analysis
- Python
- Pandas
- Matplotlib
- Seaborn
Deployment
- Vercel
- Render
wind-forecast-dashboard │ ├── backend │ └── Node.js API for fetching and processing wind data │ ├── frontend │ └── React dashboard for visualization │ ├── analysis │ └── Jupyter notebook for forecast error analysis │ └── README.md
Example request:
GET /api/forecast?horizon=4
Example response:
[
{
"time": "2024-01-01T04:00:00Z",
"actual": 6900,
"forecast": 12000
}
]
Forecast Analysis
Forecast error is computed as:
Forecast Error = Forecast Generation − Actual Generation
The analysis notebook evaluates:
Mean forecast error
Error distribution
Forecast bias patterns
Results indicate that wind forecasts often overestimate actual generation, highlighting systematic forecasting bias.
Local Setup
Backend
cd backend
npm install
node server.js
Frontend
cd frontend
npm install
npm run dev
Frontend runs at:
http://localhost:5173
Environment Variable
Create .env in the frontend folder:
VITE_API_URL=http://localhost:5000
Data Source
Elexon BMRS Electricity Data API
https://data.elexon.co.uk/bmrs/api/v1
Author
Sneha Ilager
Computer Science Engineering Student