tsugiproject / tsugi

Tsugi Admin, Developer, and Management Console (pls join the dev list)
http://www.tsugi.org
Apache License 2.0
346 stars 257 forks source link
common-cartridge edtech imsglobal lti tsugi

TSUGI - A Framework for Building Interoperable Learning Tools

Apereo Incubating badge

Tsugi is a multi-tenant scalable LTI library and tool hosting environment. It is intended to make it more tractable to implement the Application Store that we will need for the Next Generation Digital Learning Environment.

This repository is the Tsugi Administration, Management, and Developer Console. This code also implements an IMS ContentItem App store.

While earlier versions of this repository included a set of modules, examples, and even exercises, as we move towards a 1.0 release of Tsugi, these elements are now moved to separate repositories (see below).

Pre-Requisites

http://www.wa4e.com/install.php

Tsugi Versions

Tsugi is intended as a continuously upgrading cloud deployment. Most of the Dr. Chuck servers have a cron job that does a git pull and runs upgrade.php every 30 minutes. You can see this infrastructure at:

https://github.com/tsugiproject/tsugi-build/tree/master/common

As a result, there are no traditional "releases" of Tsugi - the common use case is to be pretty close to the tip of the main branch.

But sometimes, folks want to "hold back" from upgrading for a while. Perhaps they have an old version of PHP and can't run the latest. It is risky to hold back too long. But to help those running Tsugi that want to hold back, a series of versions / tags are maintained as "safe plateaus". These tags are often snapped right before a significant upgrade or data model change and announced on the dev list.

Long Term Support Versions

Mostly because PHP is evolving from version 7.0 to version 9.0 in ways that break code and break dependencies, we are maintaining several long term branches for those stuck on older versions of PHP - we maintain these as branches.

Installation

Method 1: Docker install

Method 2: Manual install

Production instances

There is an entire repository that contains various build / deploy documentation showing how to install on EC2, Docker, Digital Ocean and Ubuntu.

https://github.com/tsugiproject/tsugi-build

These scripts make sure you have all the necessary pre-requisites installed and configured.

Adding Some Tools

If you are just exploring Tsugi, or doing a developer bootcamp, you can add some tools from some of the other repositories:

Each of these repositories contain instructions on how to install, configure, and hook each of these applications into your Tsugi instance. Once you install a new module or modules, you will need to re-run the Admin / Database Upgrade process to create the new tables required by the new applications.

We have a short document on how to check out all of the above tools and set up the configuration for them.

Developer Documentation

You can view some of the developer documentation for the PHP version of Tsugi at:

Other Repositories

The Tsugi Administration Console and Tsugi Modules / Applications depend on two other repositories:

Other Languages

There were some emergent efforts to port the core Tsugi code to Java and Node. Partial implementations were built with the hopes that those interested in these languages would pick the code up, use it, and invest in those implementations. This has not happened so those projects are deprecated until some resources show up.

Going forward, there is an effort to increasingly move away from PHP and towards Python in a series of careful steps that won't break existing tools or servers.

The first step is to build a way to develop and host Python-based tools and then being to build a parallel version of the Tsugi core code and administration in Python.

You can play with an early version of a Tsugi Python Tool.

While the PHP Implementation of Tsugi is the most well developed, there are additional Tsugi implementations being developed:

Tsugi Developer List

Please join the Tsugi Developer List so you can stay up to date with the progress regarding Tsugi.