mirror of
https://github.com/avatao-content/baseimage-tutorial-framework
synced 2024-07-01 19:48:46 +00:00
24 lines
1.4 KiB
Markdown
24 lines
1.4 KiB
Markdown
# baseimage-tutorial-framework
|
||
|
||
This is the beating heart of TFW – the Docker baseimage containing the internals of the framework.
|
||
|
||
All tutorial-framework challenges are child images of this one: their `Dockerfile`s all begin with `FROM avatao/tutorial-framework`.
|
||
|
||
This document explains the general concepts of TFW and should be the first thing you read before getting started with development.
|
||
|
||
For more on building and running you should consult the `test-tutorial-framework` repo.
|
||
|
||
## The framework
|
||
|
||
The goal of the tutorial-framework is to help content developers in creating interactive tutorials for the Avatao platform.
|
||
|
||
To make this possible TFW implements a robust messaging system and provides several pre-written components built upon it, such as a file editor or a terminal (running in your browser).
|
||
|
||
The foundation of the whole framework is the messaging system connecting the frontend with the backend.
|
||
Frontend components use websockets to connect to TFW, which you can hook to several *event handlers* to define ways to handle specific messages.
|
||
|
||
![TFW architecture](docs/tfw_architecture.png)
|
||
|
||
Note that our reference frontend implementation is written in Angular (`frontend-tutorial-framework` repository).
|
||
Most of pre-made `EventHandler`s are writen in Python3, but you can write event handlers in any language that has ZeroMQ bindings (this virtually means any language).
|