Repair-Reuse-Recycle Toolkit (R3T)
At a Glance
Section titled “At a Glance”- Category: Planning, Design & Assessment
- Primary environment: MaaS Provider
- Documentation focus: Design reference
- Maturity: TRL 4, progressing towards TRL 5–6 (first release, M18)
- Related architecture docs: Reference Architecture Guide, Environments
Purpose
Section titled “Purpose”The Repair-Reuse-Recycle Toolkit (R3T) supports industrial stakeholders in evaluating end-of-life strategies for equipment and assets. It combines circularity-oriented decision logic with lifecycle and cost criteria so users can compare alternative repair, reuse, and recycle paths.
Primary Actors
Section titled “Primary Actors”The D5.2 usage viewpoint defines roles, permissions, constraints, a role-task matrix, and a use case diagram for this solution.
- Administrator: Manages groups and projects, algorithms, results, and has deletion rights; constraint: It must operate in compliance with security and privacy restrictions.
- User: Use the interface to run algorithms, view and delete results; constraint: No access to the management of other people’s groups/projects

Use-case diagram extracted from MaaSAI deliverable D5.2.
Functional Components
Section titled “Functional Components”R3T combines circularity workflows, evaluation algorithms, data preparation, and result management to compare repair, reuse, and recycle alternatives. The functional view shows how user actions and project data move through the toolkit before generating reusable end-of-life decision outputs.

Functional components diagram extracted from MaaSAI deliverable D5.2.
Design Baseline
Section titled “Design Baseline”The toolkit allows users to model end-of-life decision graphs, process them through algorithmic workflows, and compare candidate paths according to cost and environmental impact.
At a high level, the solution includes a web-based frontend for modelling and reviewing results, a runtime layer for processing and optimisation, and supporting data-preparation and post-processing services.
The underlying processing chain starts with data preparation from edge or database sources, continues through runtime evaluation, and ends with result sharing and storage so circularity decisions can be reviewed and reused later.

D5.2 does not expose a dedicated runtime architecture figure for R3T; the official functional diagram is reused here as the closest design-baseline view.
Technology Stack
Section titled “Technology Stack”The R3T architecture exclusively uses open-source technologies and standard Python libraries.
| Category | Technology |
|---|---|
| Backend | Python with Flask and Flask-CORS for the REST API; sqlite3 for database communication |
| Optimisation | End-of-Life optimisation engine based on the Grey Wolf Optimiser |
| Frontend | React/Next.js, based on the MaaSAI UI template provided by UPV |
| Data | SQLite database storing projects, graphs, component and process data, and optimisation results |
| Security | Keycloak authentication (with Auth0 integration on the frontend) |
| Containerisation | Docker containers for all components |
Integrations & External Dependencies
Section titled “Integrations & External Dependencies”In the first release the R3T operates as a self-contained decision-support tool; D12.1 does not describe integrations with other MaaSAI solutions for this toolkit. Deployment dependencies are Nginx as reverse proxy, Docker as container runtime, Python > 3.9, and optionally the shared MaaSAI Keycloak instance for identity and access management.
APIs & Interfaces
Section titled “APIs & Interfaces”The Flask backend exposes POST-based REST endpoints under /api/r3t/:
- Project management — list, create, update and delete R3T projects
- Graph storage — save and retrieve the AND/OR graph of component and process nodes
- Component and process data — manage component attributes (code, weight, cost, assembly level, make-or-buy, material) and process data including LCC and LCA values
- Optimisation — run the End-of-Life optimisation engine and retrieve the computed solution and route
- Import/export — export or import complete projects as JSON
The React UI provides a project creation and management dashboard, interactive graph modelling with alternating process (P) and component (C) nodes, data-input tabs for components and processes (with dedicated LCC and LCA sections), and result views highlighting the optimal process-component path together with the economic and environmental trade-off panel.
User Interface
Section titled “User Interface”Representative screens of the R3T web interface in the first release:

EoL scenarios through alternating process (P) and component (C) nodes — MaaSAI deliverable D12.1.

End-of-Life strategy simulation results with the highlighted optimal path — MaaSAI deliverable D12.1.
Deployment & Configuration
Section titled “Deployment & Configuration”The R3T is deployed as a Docker-based containerised application split into two services: a React frontend container and a Python/Flask backend container. Requirements are modest:
| Requirement | Minimum | Recommended |
|---|---|---|
| CPU | 1 vCPU | 2 vCPU |
| RAM | 2 GB | 4 GB |
| Storage | 5 GB | 10 GB |
| OS | 64-bit Linux | 64-bit Linux |