CurrikiStudio Architecture


What Is CurrikiStudio?

A complete toolkit for creating, managing and delivering active learning experiences.


A free and open creative suite that supports active, immersive learning.


A rich digital publishing tool designed to deliver interactive content to learners today and tomorrow.


A robust content discovery, content delivery, and analytics provider.

How Does it Work?

CURRIKI API: The anchor of our open, service oriented architecture.

A free and open creative suite that supports active, immersive learning.

  •  Open source under the AGPLv3.
  •  RESTful, documented end points.
  •  Developed in PHP/Laravel and PostgreSQL but can be extended in any modern programming language.
  •  Available on GitHub here
  •  API documentation available here

How is Content Created and Managed?

CURRIKI STUDIO: An open and elegant authoring front-end.

A complete reference implementation of the Curriki API authoring and administrative functionality: 

  • Open source under the AGPLv3.
  • Developed in ReactJS.
  • Available on GitHub here.
  • Documentation in progress.

How is Content Published?

CURRIKI GO: LTI, Google Classroom and HTML provider.

Sharing of content is provided by leveraging the Tsugi framework and external APIs like Google Classroom:

  • Open source under the AGPLv3.
  • Integrates with the Tsugi framework.
  • LTI publishing implemented as a Tsugi plugin, available on GitHub here
  • Other integrations implemented as part of the Curriki API.

How is Data Persisted?

The Curriki Persistence Layer.

The Curriki architecture relies on PostgreSQL for its persistence layer, and Elastic Search for its resource indexing and discovery.

  •  Models are build using the Eloquent ORM.
  •  Curriki uses a repository data pattern.
  •  Full text indexing is triggered within the ORM and populates an Elasticsearch instance.