|
1 | | -# SunNext |
| 1 | +# ☀️ SunNext – Smart Solar Energy Optimization Platform |
| 2 | + |
| 3 | +**SunNext** is a B2B web platform designed to help solar park owners, energy storage managers, and traders **maximize profits from renewable energy** production. |
| 4 | + |
| 5 | +It brings together **solar asset monitoring**, **simulations**, and **IBEX electricity market integration**. The platform uses a **centralized virtual battery system** and a **decoupled data API** to manage and optimize energy usage and trading. |
| 6 | + |
| 7 | +> ⚡ Created by **Deniz Ivanov** |
| 8 | +> 🎓 ASP.NET Advanced Final Project – June 2025 (SoftUni) |
| 9 | +> 📡 Market data powered by [IBEX-Scraper-API](https://github.com/JacksonJS12/IBEX-Scraper-API) |
| 10 | +
|
| 11 | +--- |
| 12 | + |
| 13 | +## 🔍 Key Features |
| 14 | + |
| 15 | +### ⚙️ Solar Asset Monitoring |
| 16 | +- Manage solar systems (Grid-Tied, Off-Grid, Hybrid) |
| 17 | +- Track real-time performance: generation, capacity, and efficiency |
| 18 | +- Use built-in simulation engine for forecasting and analysis |
| 19 | + |
| 20 | +### 🔋 Virtual Battery Wallet (Energy-as-Currency) |
| 21 | +All energy generated by a user’s solar assets is routed into a **shared virtual wallet**: |
| 22 | + |
| 23 | +- Modeled as a **battery collection**, decoupled from the grid |
| 24 | +- Surplus energy is stored and shown as a **balance** |
| 25 | +- This balance can later be **sold like cryptocurrency** on the energy market |
| 26 | +- The energy is stored into batteries on one place |
| 27 | +- The electricity travels trough the grid into one place where is stored |
| 28 | +- Wallet capacity depends on user subscription plan (Small, Medium, Large) |
| 29 | + |
| 30 | +### 📈 Smart Market Integration |
| 31 | +- Fetches **daily IBEX Day-Ahead prices** automatically |
| 32 | +- Calculates optimal hourly **trading targets** for each solar asset |
| 33 | +- Visualizes actual vs. target prices using **Chart.js** |
| 34 | +- Enables users to optimize profit by selling energy at peak hours |
| 35 | + |
| 36 | +--- |
| 37 | + |
| 38 | +## 🛰 Powered by IBEX-Scraper-API |
| 39 | + |
| 40 | +SunNext **does not scrape IBEX directly**.: |
| 41 | + |
| 42 | +> [`IBEX-Scraper-API`](https://github.com/JacksonJS12/IBEX-Scraper-API) – An ASP.NET Core Web API that scrapes **IBEX Day-Ahead segment prices** and stores them in an Azure SQL database. |
| 43 | +
|
| 44 | +### 🧠 Why a Separate API? |
| 45 | +- **Decouples scraping logic** from the main platform |
| 46 | +- Ensures **secure**, **stable**, and **reusable** data access |
| 47 | +- Makes it easy to extend to other platforms or external tools |
| 48 | + |
| 49 | +### 🔄 How It Works: |
| 50 | +- Scrapes **next-day hourly prices** |
| 51 | +- Triggered daily at **14:00 BG time** via **Azure Logic App** |
| 52 | +- Calls `POST /api/Scrape/scrape-and-save` only if new data |
| 53 | +- Stores data as: |
| 54 | + - `Date` (`dd/MM/yyyy`) |
| 55 | + - `Hour` (1–24 CET) |
| 56 | + - `PricePerMWh` |
| 57 | + |
| 58 | +🔗 **Live API Docs:** [Swagger UI](https://ibex-scraper-api-e5bwewdyfacgetaf.swedencentral-01.azurewebsites.net/swagger/index.html) |
| 59 | + |
| 60 | +--- |
| 61 | + |
| 62 | +## 🧱 Tech Stack |
| 63 | + |
| 64 | +| Layer | Technology | |
| 65 | +|--------------------|-------------------------------------------------| |
| 66 | +| Platform Backend | ASP.NET Core 8.0 MVC (based on [Nikolay Kostov’s Template](https://github.com/NikolayIT/ASP.NET-Core-Template)) | |
| 67 | +| Models | Data Models / Prototypes / ViewModels Separation | |
| 68 | +| Market Integration | [IBEX-Scraper-API](https://github.com/JacksonJS12/IBEX-Scraper-API) | |
| 69 | +| Scraping | AngleSharp + Azure Logic App Scheduler | |
| 70 | +| Storage | Azure SQL + Local MS SQL + EF Core 8 | |
| 71 | +| UI & Charts | Bootstrap 5 + Chart.js | |
| 72 | +| Authentication | ASP.NET Identity with Roles | |
0 commit comments