⚡ Smart Grid Analysis & Forecasting Platform
Schneider Electric — Software Engineering Internship Project
A full-stack web platform for smart grid load analysis, anomaly detection, and forecasting. Built as part of my internship at Schneider Electric, the system provides interactive dashboards, robust APIs, and secure multi-user access for smart grid data exploration.
🚀 Features
Streamlit Dashboards
📊 Query Page – Interactive filtering & visualization of measurements
🗄️ Database Page – Entity management (nodes, sensors, consumers, etc.)
🔮 Predictions Page – Forecasting results & anomaly detection insights
REST APIs (FastAPI)
Measurement access and filtering
Aggregation with multiple granularities (hour/day/week/month/year)
Historical archival of measurements
Database Integration
PostgreSQL + SQLModel for relational data (entities, accounts, topology)
MongoDB (time-series) for historical measurement archives
Authentication & Authorization
Role-based access control (Admin, Analyst, User)
Secure multi-user workflows
Deployment & Infrastructure
🐳 Dockerized services (API, DBs, dashboards)
Modular backend–frontend architecture
🛠️ Tech Stack
Backend: FastAPI, SQLModel, Pydantic
Frontend: Streamlit
Databases: PostgreSQL, MongoDB (time-series)
Containerization: Docker
⚙️ Getting Started
-
Clone Repository git clone https://github.com//smart-grid-platform.git cd smart-grid-platform
-
Start Services with Docker docker-compose up --build
-
Access Platform
Streamlit Frontend → http://localhost:8501
FastAPI Docs → http://localhost:8000/docs
🔒 Authentication
The platform supports multi-role access:
Admin – Full access (management + analytics)
Analyst – Query, visualize, forecast
User – Limited access to dashboards
JWT tokens are issued at login and required for API calls.
📈 Example Use Cases
Query aggregated loads across regions and time granularities
Detect anomalies in consumption/production
Forecast load using historical time-series data
Manage grid topology (plants, consumers, transformers, etc.)
📜 Internship Note
This project was developed as part of my Software Engineering Internship at Schneider Electric. It is a proof-of-concept platform, not a production system.