Monthly Archives: December 2017

App Store Progress on

I have done a bunch of updates to Tsugi’s support for stand alone App Stores (without any kind of lesson content). This is all in production at

I have expanded the contract in register.php for the tools to describe themselves and improved the pattern in .htaccess / tsugi.php to better support the App Store. You can see this all in action at:

Play with “Test” and “Tool URLs”. A much smoother flow and richer experience.

You can see the new patterns for developers to take advantage of this in a relatively simple tool like:

Look at .htaccess / tsugi.php / register.php and the store folder which holds screen shots. Some notes:

– The new and expanded register.php is what drives the pretty store view under /tsugi/store

– The new tsugi.php makes it so every tool has a Canvas configuration URL and can dump its own configuration in JSON (more to come here):

– There are new options in tsugi/config.php to include a privacy url and service level agreement url:

$CFG->privacy_url = '';
$CFG->sla_url = '';

These are important when connecting to Google Classroom so you should have them for your sites. Don’t point to mine – make your own and be honest and thorough.

And while I am on the topic – you might want to take a minute and play with Google Classroom. It is easiest to use a non-enterprise Google account. Some enterprises (like do not let their users use Google Classroom. But my account works fine.

Log in to and make a course. Then go to

And connect to Google Classroom. All of a sudden little green squares show up to let you push tools into Google. Grades flow and everything. Google Classroom flow is pretty nice – but like any proprietary integration – to make it work on the Tool Provider side requires special tooling.

So in summary, if you are a Tsugi tool developer, you might want to up your game in register.php, tsugi.php (adding .htaccess if you don’t already have it) and adding some screen shots in a store folder. The App Store falls back nicely with a simpler view until you upgrade your tool to feed the necessary metadata to expanded store.

Hope you like it and comments welcome.

Integrating Koseu / Tsugi into Google Classroom

TL;DR – The Demo

Tsugi and Google Classroom

For the past four years, I have been building software to implement my vision for the new technologies that will enable the Next Generation Digital Learning Environment/Ecosystem.

  • Tsugi – is software infrastructure, APIs, and code libraries that allow interactive learning tools to be built, hosted and integrated into Learning Management Systems like Sakai, Canvas, Blackboard, Moodle, Desire2Learn, edX, or Coursera. Without requiring the programmer to read and understand the complex documentation that describes the low level details of these integrations.

  • Koseu is a LMS/Course platform that is aimed at supporting course content on the web. Koseu in a sense is a way for every teacher to build and publish a “MOOC of my Own” while at the same time making that learning content easily integrated into LMS systems. My Python for Everybody web site ( is a good example of a well developed Koseu-based web site.

Up to this point, Tsugi has focused on the standards like such as IMS Learning Tools Interoperability, IMS Common Cartridge, and IMS Content Item that are used to integrate content and tools into traditional LMS systems.

But increasingly, Google Classroom is being used in K12 and beyond as the “LMS” of choice since so many organizations already use Google Suite for their single sign on, document editing, forms, etc. It is a simple matter to just start using Google Classroom – and Google Classroom is very well connected to the rest of the Google Suite.

So we have added initial support for Google Classroom integration to Tsugi/Koseu. The Google Classroom API patterns are very different than IMS LTI and Content Item Message. Google Classroom uses an OAuth 2.0 and single sign-on (SSO) pattern instead. This pattern requires more initial coordination, but has some nice features that allow the end-user to be involved in their own privacy decisions.

With this support, a Tsugi tool can send grades to the Learning system regardless of where the tool was launched using LTI or with Google Classroom using the exact same lines of code and exact same code libraries.

If we are truly going to make a Next Generation Digital Learning Ecosystem, systems like Tsugi and Koseu need to look beyond the traditional LMS market and to emerging platforms like Google Classroom.