EnergiData is an agilely developed platform for collecting, processing, and visualizing energy data.
- Backend: .NET 9 API (ASP.NET Core, C# 13)
- Database: PostgreSQL
- Frontend: Vite + React (TypeScript)
- Containerization: Docker is used for the backend, frontend, and database
- Backend: .NET 9 API project
- Uses
BackgroundServicefor scheduled data fetching (production, consumption, transmission, prices and ...) - API endpoints for energy data
- Entity Framework Core for database access
- Logging and dependency injection
- Uses
- Frontend:
src/components: Shared UI components (Button, Card, Modal, etc.)src/features: Feature modules with domain logic, components, and testssrc/hooks: Custom React hooks for data fetching and state managementsrc/utils: Utility functions and helpers
- Containerized environment for backend, database, and frontend using Docker
- Extensive use of database and API data fetching
- Modular frontend structure for scalability and maintainability
- Hot Module Replacement (HMR) enabled via Vite
- ESLint configured for code quality and consistency
- Dashboard is present and currently features 7 cards; more cards and visualizations are planned
- Frontend, backend, and database are integrated and run in containers
- Focus has been on expanding data coverage and API endpoints
- Development containers work well in Visual Studio; production not yet tested
- More data visualizations are coming soon
- Clone the repository
- Backend: Build and run the .NET 9 API (or use Docker)
- Database: Ensure PostgreSQL is running and accessible (or use Docker)
- Frontend:
- Install dependencies:
npm install - Start development server:
npm run dev(or use Docker) - For containerized setup, see Docker instructions (coming soon)
- Install dependencies:
- Entso-e
- Requires an API key to fetch energy production and transmission data
- SMHI
- Uses average weather data from 3 locations in SE4
- Incorporates solar data from 2 locations in SE4
- Vite (project scaffolding, dev server, build)
- React (UI library)
- TypeScript (type safety)
- ESLint (linting)
- Visual Studio Code / Visual Studio (IDE integration)
- Docker for containerization
More data and a more informative, beautiful dashboard coming soon!