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 foreground, streaming logs from all containers to your terminal. The shell prompt will not return until you stop the environment manually.

To stop the environment, press Ctrl+C. This will gracefully shut down all containers. Alternatively, in another terminal you can 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: