Skip to content

Development Guide

This section provides everything you need to understand, run, customize, and contribute to the OnDemand Loop application. Whether you're fixing a bug, extending functionality, or integrating with a new repository, this guide is your entry point.

Quick Start

Clone the repository and start the local environment using the built-in Makefile targets:

make loop_build
make dev_up
The make dev_up command starts the development environment using Docker Compose with local development configuration. It runs in the background. The shell prompt will return immediately.

To stop the environment, run:

make dev_down
Once the containers are running visit https://localhost:33000/pun/sys/loop and log in with the test user ood/ood.

The documentation is organized by topic to help you find what you need quickly:

  • Architecture and Code
    Overview of the system design, key components, and how the codebase is organized.

  • Connectors
    Details on how OnDemand Loop interacts with external repositories like Dataverse, Figshare, or Zenodo.

  • Local Environment
    How to set up and run OnDemand Loop locally for development.

  • Docker Images
    Information on the Docker-based setup and available images.

  • Open OnDemand
    Deployment, compatibility, and upgrade guidance for running OnDemand Loop within the Open OnDemand environment.

  • Dataverse Integration
    Specifics on how integration with Dataverse is implemented.

  • Contributing a Change
    Best practices and workflow for contributing code or documentation.

  • Accessibility Guidelines
    Practices taken into account to make the application accessible.

  • Testing
    How the Rails test suite is structured and executed using the provided Make targets.

  • E2E Tests
    End-to-end testing with Cypress, including local execution and CI/CD integration.

  • GitHub Actions
    How CI is handled using GitHub Actions, including testing and deployment workflows.

Each page is self-contained but builds on shared understanding of the architecture and workflows.
If you're new to the project, we recommend starting with: