Kronos EAM is a comprehensive, enterprise-grade SaaS platform for managing renewable energy assets in Italy. This consolidated version combines:
- β Complete Compliance Management (from Kronos EAM)
- β CER (Renewable Energy Communities) support (from Sentrics)
- β Advanced Asset Management (from Sentrics)
- β Workflow Automation (from Kronos EAM)
- β Government Portal Integration (from Kronos EAM)
- β Geographic Intelligence (PostGIS from Sentrics)
- Complete Plant Registry: Multi-tenant plant database with full lifecycle management
- Advanced Asset Tracking: Detailed equipment management (panels, inverters, batteries)
- Asset Monitoring: Real-time performance tracking
- Maintenance Management: Preventive and corrective maintenance scheduling
- Automated Workflows: Pre-built templates for all regulatory processes
- Annual Compliance Automation: Never miss critical deadlines
- Smart Deadline Calculator: Intelligent deadline prediction
- Penalty Prevention: Cost analysis and risk mitigation
- Document Management: Centralized repository with versioning
- CER Setup & Management: Complete lifecycle management
- Member Management: POD tracking, load profiles, billing
- PNRR Funding Support: 40% grant application workflows
- Energy Sharing: Production allocation and billing
- Geographic Boundaries: PostGIS-powered boundary management
- GSE Integration: RID activation, Fuel Mix, Anti-Mafia declarations
- Terna GAUDΓ: Plant registration and technical data
- DSO Integration: Connection management, TICA workflows
- Agenzia Dogane: UTF license management, EDI file generation
- Compliance Scoring: Real-time compliance percentage
- Portfolio Analytics: Multi-plant dashboard
- Cost Tracking: Fees, penalties, and administrative costs
- Performance Monitoring: Energy production/consumption tracking
Backend:
- Framework: FastAPI (Python 3.11+)
- Database: PostgreSQL 15 with PostGIS extension
- ORM: SQLAlchemy 2.0
- Migrations: Alembic
- Authentication: JWT with OAuth2
- Caching: Redis
- Task Queue: Celery
Frontend:
- Framework: React 18 with TypeScript
- Build Tool: Vite
- State Management: React Query + Zustand
- UI Library: Tailwind CSS + shadcn/ui
- Maps: Leaflet + React Leaflet
- Forms: React Hook Form + Zod
Infrastructure:
- Cloud: Google Cloud Platform
- Containers: Docker + Kubernetes
- CI/CD: GitHub Actions
- Monitoring: Prometheus + Grafana
- Database: Row-level security with
tenant_id - API: Automatic tenant filtering
- Frontend: Tenant-aware routing
- Isolation: Complete data segregation
- Python 3.11+
- Node.js 18+
- PostgreSQL 15+ with PostGIS extension
- Container Runtime: Docker or Podman (see Container Setup)
- Redis (optional, for caching)
The project supports both Docker and Podman. Choose your preferred runtime:
# Install Podman and Podman Compose
# Ubuntu/Debian:
sudo apt-get install podman podman-compose
# Fedora/RHEL:
sudo dnf install podman podman-compose
# macOS:
brew install podman podman-compose# Install Docker and Docker Compose
# See: https://docs.docker.com/get-docker/# Clone repository
git clone https://github.com/Bloom79/kronos-eam.git
cd kronos-eam
# Start PostgreSQL with PostGIS
cd backend
# Option 1: Auto-detect (uses Podman if available, otherwise Docker)
./compose.sh up -d
# Option 2: Explicitly use Podman
./compose-podman.sh up -d
# Option 3: Explicitly use Docker
./compose-docker.sh up -d
# Option 4: Traditional Docker Compose (still works)
docker-compose up -d
# Setup backend
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
alembic upgrade head
# Setup frontend
cd ../frontend
npm install
# Start development servers
# Terminal 1 (Backend)
cd backend
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
# Terminal 2 (Frontend)
cd frontend
npm run devAccess:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Docs: http://localhost:8000/docs
Default Credentials:
- Email:
admin@kronos-eam.local - Password:
Demo2024!
kronos-eam/
βββ backend/ # FastAPI backend
β βββ app/
β β βββ api/ # API endpoints
β β β βββ v1/
β β β βββ endpoints/
β β β β βββ plants.py
β β β β βββ cer.py # NEW: CER endpoints
β β β β βββ assets.py # NEW: Asset endpoints
β β β β βββ workflows.py
β β β β βββ documents.py
β β β β βββ compliance.py
β β βββ models/ # SQLAlchemy models
β β β βββ plant.py
β β β βββ cer.py # NEW: CER model
β β β βββ cer_member.py # NEW: Member model
β β β βββ asset.py # NEW: Asset model
β β β βββ workflow.py
β β β βββ document.py
β β βββ services/ # Business logic
β β β βββ plant_service.py
β β β βββ cer_service.py # NEW: CER service
β β β βββ asset_service.py # NEW: Asset service
β β β βββ workflow_service.py
β β β βββ compliance_service.py
β β βββ core/ # Core functionality
β β β βββ database.py
β β β βββ security.py
β β β βββ geography.py # NEW: PostGIS helpers
β β β βββ config.py
β β βββ schemas/ # Pydantic schemas
β βββ alembic/ # Database migrations
β βββ tests/ # Test suite
β βββ requirements.txt
β
βββ frontend/ # React frontend
β βββ src/
β β βββ pages/
β β β βββ Plants/ # Plant management
β β β βββ CER/ # NEW: CER management
β β β βββ Workflows/ # Workflow management
β β β βββ Compliance/ # Compliance tracking
β β β βββ Dashboard/ # Analytics dashboard
β β βββ components/
β β β βββ plants/ # Plant components
β β β βββ cer/ # NEW: CER components
β β β βββ assets/ # NEW: Asset components
β β β βββ common/ # Shared components
β β βββ services/ # API clients
β β βββ hooks/ # React hooks
β β βββ utils/ # Utilities
β βββ package.json
β
βββ docs/ # Documentation
β βββ architecture.md
β βββ api-reference.md
β βββ deployment.md
β
βββ deploy/ # Deployment scripts
β βββ gcp/ # GCP deployment configs
β
βββ scripts/ # Utility scripts
βββ setup.sh
Complete lifecycle management for renewable energy plants:
- Plant registry with technical specifications
- Multi-dimensional organization (type, power, location, status)
- Integration status tracking (DSO, Terna, GSE, ADM)
- Compliance scoring
- Deadline management
Full support for Italian energy communities:
- CER constitution and legal setup
- Member management with POD tracking
- PNRR funding application (40% grant)
- Energy sharing and billing
- Geographic boundary management
- GSE compliance tracking
Detailed equipment tracking:
- Asset type system (flexible attributes)
- Asset instances (panels, inverters, batteries)
- Hierarchical organization (parent-child relationships)
- Monitoring integration
- Maintenance tracking
Intelligent workflow management:
- Pre-built templates (activation, compliance, fiscal)
- Phase-based execution
- Task assignment and tracking
- Document generation
- Portal integration
Automated compliance tracking:
- Annual recurring obligations
- Smart deadline calculation
- Penalty prevention
- Compliance scoring
- Document expiration tracking
Smart integration with Italian authorities:
- GSE portal (RID, Fuel Mix, Anti-Mafia)
- Terna GAUDΓ (plant registration)
- DSO portals (connection management)
- Agenzia Dogane (UTF license, EDI files)
- Architecture Guide
- API Reference
- Deployment Guide
- Development Guide
- CER Management Guide
- Compliance Guide
# Backend tests
cd backend
pytest --cov=app tests/
# Frontend tests
cd frontend
npm test
# E2E tests
npm run test:e2e# GCP Deployment
cd deploy/gcp
./deploy.shSee deployment guide for detailed instructions.
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Built with β€οΈ for the Italian renewable energy sector
Β© 2025 Kronos EAM. All rights reserved.