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

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.