-
Notifications
You must be signed in to change notification settings - Fork 0
Personalization Components Template
Target Audience: software developers
The Personalization Enablers software system architecture consists of multiple components working together. This intricate architecture can present challenges for developers when tasked with creating new enablers. To address this, we designed an additional enabler that serves as a template, making it easier to create new enabler components and facilitate the development process. This template aligns new enablers with the overall XR2Learn Personalization architecture, ensuring compatibility with existing Training, Inference, and Personalization components.
The Personalization Components Template is available as an open-source project on GitHub. Developers can use a single command to create a placeholder skeleton for a new enabler, which comes pre-configured to communicate with the other Personalization Enablers. This setup includes files and folder structure, Docker configuration, unit tests, versioning, and documentation.
By utilizing the Personalization Components Template, developers can generate the entire structure of a new enabler with a single command and focus exclusively on implementing the core functionality. This template helps ensure architectural consistency and significantly reduces development time for new enablers within the XR2Learn ecosystem.
pip install --user cookiecutter
- Run the command:
cookiecutter git@github.com:XR2Learn/Personalization-Components-Template.git
- Answer the prompt questions:
After running the command, you will be prompted to provide the following values:
project_name: Name of the component (e.g., "SSL Features Extraction BM Modality")
description: Short description of the component
project_slug: Repository-friendly name (e.g., "ssl_features_extraction_bm_modality")
component_folder: Main component folder (e.g., "SSL_Features_Extraction_BM_Modality")
parent_component: Parent component name (e.g., "Pre_processing")
main_python_file: Python entry-point script name without `.py` (e.g., "generate_features")
service_name: Service identifier (e.g., "ssl-features-generation-bm")
current_version: Initial version number (e.g., "0.1.0")
After completing the prompts, the template generates a fully configured enabler skeleton. A simplified example of the resulting structure is shown below:
<COMPONENT_FOLDER>/
├── docker/ # container build assets (if provided)
├── src/ # component source code (entry point included)
├── tests/ # unit/integration tests (if provided)
├── docs/ # documentation (if provided)
├── docker-compose.yml # optional: service orchestration
├── pyproject.toml # optional: packaging/config (may vary)
└── README.md
XR2Learn Personalization Enablers - Personalization Components Template
|
Wiki - Immerse yourself in the world of XR2Learn |
- XR2Learn Platform Overview
- Tutorial: Authenticating with XR2Learn
- Marketplace
- Content Catalogue
- Community Forum
- Tutorial: Learning Path
- INTERACT Plugin
- Tutorial: Quick start with INTERACT
- Tutorial: Personalization Enablers - Getting Started
- Personalization Enablers Overview
- Tutorial: Which personalization enablers do I need?
- Personalization Enablers
* work in progress