Developers Section - ReLIFE-Project-EU/relife-wiki GitHub Wiki
Developers Section
This section is aimed at software developers who want to understand, reuse, or locally deploy the ReLIFE software building blocks. It covers the repository structure, component relationships, the technology stack, and licensing.
[!NOTE] The ReLIFE codebase is actively developed. Repository contents, APIs, and deployment procedures are subject to change. Check each repository's README for the most current instructions.
GitHub Organisation
All ReLIFE source code is hosted in the ReLIFE-Project-EU GitHub organisation. The table below summarises the eight public repositories and their purpose.
| Repository | Description |
|---|---|
| relife-web-ui | The primary web interface. It currently provides live HRA and PRA workflows, an RSE landing page, and the user-facing routes that connect to the ReLIFE services and portfolio workspace. |
| relife-financial-service | REST API that calculates financial indicators (NPV, IRR, ROI, payback period), estimates adjusted renovation value (ARV), and performs risk assessment using machine learning models. |
| relife-forecasting-service | REST API that simulates building thermal performance and generates Energy Performance Certificates (EPC) using the pybuildingenergy library. Supports present, 2030, and 2050 climate scenarios. |
| relife-technical-service | REST API that applies Multi-Criteria Decision Analysis (MCDA) to rank and classify renovation technologies based on user-defined priorities and five evaluation pillars. |
| relife-platform-data-layer | Docker Compose configuration for the shared data layer: Supabase (PostgreSQL, object storage, REST API) and Keycloak (authentication and authorisation). Also includes integration examples for both web UIs and service APIs. |
| relife-service-template | FastAPI project template, pre-integrated with Keycloak and Supabase. Starting point for building new ReLIFE-compatible backend services. |
| relife-data-structure | Data profiling toolkit used in Task 2.1 to explore sample datasets and validate the platform data storage architecture. Produces per-dataset EDA reports and a consolidated quality summary. |
| relife-wiki | This wiki. Documentation and user guides for the ReLIFE Platform. |
Architecture
The diagram below shows how the components relate at runtime. The backend service APIs communicate with the shared data layer. The web UI calls the service APIs and uses Supabase Auth with Keycloak as the external identity provider.
flowchart TD
subgraph WebUI["relife-web-ui"]
UI["React Application"]
end
subgraph Services["Backend Service APIs"]
FIN["relife-financial-service"]
FCAST["relife-forecasting-service"]
TECH["relife-technical-service"]
end
subgraph DataLayer["relife-platform-data-layer"]
KC["Keycloak"]
subgraph SB["Supabase"]
PG["PostgreSQL"]
STORE["Object Storage"]
SBAPI["REST API"]
AUTH["Supabase Auth"]
end
end
UI -->|"Authenticate"| AUTH
AUTH -.->|"OAuth Integration"| KC
UI -->|"API requests"| FIN
UI -->|"API requests"| FCAST
UI -->|"API requests"| TECH
FIN -->|"DB & Storage"| SBAPI
FCAST -->|"DB & Storage"| SBAPI
TECH -->|"DB & Storage"| SBAPI
SBAPI --> PG
SBAPI --> STORE
FIN -.->|"Role verification"| KC
FCAST -.->|"Role verification"| KC
TECH -.->|"Role verification"| KC
[!NOTE] In the current web UI codebase, the HRA actively uses the Forecasting, Financial, and Technical services. The PRA actively uses the Forecasting and Financial services. The RSE route is currently a landing page rather than a live analysis workflow.
Technology Stack
| Layer | Technology |
|---|---|
| Web UI | React |
| TypeScript | |
| Vite | |
| Mantine UI | |
| Backend Services | Python |
| FastAPI | |
| Pydantic | |
| Uvicorn | |
| Financial ML | LightGBM, scikit-learn |
| Energy Simulation | pybuildingenergy |
| Authentication | Keycloak |
| Database & Storage | Supabase (PostgreSQL) |
| Containerisation | Docker, Docker Compose |
| Python package management | uv |
| Task automation | Taskfile |
How To Cite
Please refer to the How To Cite section on the Welcome Page.
Authors And Reviewers
- Andrés García Mangas (CTIC)
- Simon Pezzutto (EURAC Research) — Reviewer
- Nikolaus Diez (TU Wien) — Reviewer
- Francesca Conselvan (E-THINK) — Reviewer
For further information, please check the revisions page of this page.
License
The ReLIFE open source projects are licensed under the EUPL-1.2 license. Please check each repository for project-specific details.
Acknowledgement
This work is carried out within the ReLIFE project and is co-funded by the European Union (CINEA) under Grant Agreement No. 101167067.
Co-funded by the European Union. Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union or CINEA. Neither the European Union nor CINEA can be held responsible for them.