Skip to content

IQSS/ondemand-loop

Repository files navigation

OnDemand Loop Logo

Line coverage Branch coverage

OnDemand Loop

Application to transfer data from heterogeneous research data repositories into Open OnDemand. With the possibility of syncing the data back.

Creating the perfect loop for research data

The first remote repository integration is Dataverse. Dataverse will be used as the reference implementation for all features related to this application.

OnDemand Loop has been designed from the ground up to be a companion to the Open OnDemand application. It is deployed into the Open OnDemand environment as another passenger app. It has been configured to be deployed under the folder: /var/www/ood/apps/sys/loop

The OnDemand environment will launch the application in the same way as the Dashboard app. The URL will be https:///pun/sys/loop

License

This project is licensed under the MIT License.

πŸš€ Deployment

The application has been designed to be installed as a OnDemand passenger app.

System Requirements

  • Ruby
  • NodeJS

The application has been built to work with the same Ruby and NodeJS requirements as Open OnDemand.

Installation

Select a version to deploy, we recommend to install the latest version To install the application as a system application, checkout the release into the OnDemand server sys folder and build the application:

cd /var/www/ood/apps/sys
git clone --branch v1.0.0#2025-06-06 --depth 1 https://github.com/IQSS/ondemand-loop.git loop
cd loop
./loop_build.sh

The build process simply install the dependencies into the vendor/bundle application folder and compile the CSS and Javascript files.

Now launch the application: https://<your-server>/pun/sys/loop

πŸ› οΈ Development

To try the application locally or to update or create new features, we have created a Docker based local environment to build and run the application.

The required Docker images to build and run has been created and uploaded into the official DockerHub:

The versions used are referenced in the Makefile file

Prerequisites

Ensure you have the following installed:

  • Docker
  • Docker Compose
  • make (usually pre-installed on Linux/macOS, Windows users may need to install it via WSL or Git Bash)

Local Environment

The local environment uses Docker compose to start the following containers:

  • Open OnDemand v3.1.7
  • SMTP server

Docker compose will mount the local application directory into the OOD /var/www/ood/apps/sys/loop folder.

To run the application locally, build the application and start Docker compose. These commands have been abstracted into Make targets:

make loop_build
make loop_up

The local environment has configured a test user with the following credentials:

  • username: ood
  • password: ood

Launch the application: https://localhost:33000/pun/sys/loop
Launch OOD: https://localhost:33000/pun/sys/dashboard

Supported Open OnDemand versions:

  • v3.1.7
  • v3.1.14
  • v4.0.0
  • v4.0.6
# How to build and run for OODv3.1.14
make clean
make loop_build OOD_VERSION=3.1.14
make loop_up OOD_VERSION=3.1.14

⚠️ Self-Signed Certificate Warning

When running the app locally, you will encounter a browser warning about the connection not being secure. This is because the development environment uses a self-signed SSL certificate. You can proceed safely by accepting the exception in your browser.

βš™οΈ Available Make Commands

The following make commands are available to manage the application locally:

Command Description
make loop_docker_builder 🐳 Build the Docker image used for compiling the app.
make loop_build πŸ—οΈ Install dependencies and build the application.
make loop_up πŸš€ Start the app and its dependencies in Docker containers.
make loop_down β›” Stop and remove the Docker containers and networks.
make clean 🧹 Remove build artifacts and logs.
make logs πŸ“œ Tail the application logs.
make bash 🐚 Open a shell inside the running container.
make test πŸ§ͺ Run the full test suite.
make test_bash πŸ”¬ Open a shell in the test container.
make remote_dev_build πŸ› οΈ Build the app for a remote development environment.
make release_build πŸ“¦ Build the app for production release.
make version πŸ”– Bump the version file for releases.
make release_notes πŸ“ Generate release notes from Git history.
make coverage πŸ“Š Update the coverage badges.
make guide πŸ“š Build this documentation with MkDocs.
make guide_dev πŸ“š Serve the documentation locally at http://localhost:8000.

About

Dataverse / Open OnDemand Integration

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •