diff --git a/Introduction.md b/Introduction.md index 5b277a8..0dc12f9 100644 --- a/Introduction.md +++ b/Introduction.md @@ -1,6 +1,9 @@ -Efficiency in learning can be remarkably improved by presenting the content in a visual context. With *TFW*, you can demonstrate problems in an interactive manner without losing flexibility thanks to the framework's messaging system which allows you to communicate with any kind of process that is able to run in a container. +Efficiency in learning can be remarkably improved by presenting the content in a visual context. With **TFW**, you can demonstrate problems in an interactive manner without losing flexibility thanks to the framework's messaging system which allows you to communicate with any kind of process that is able to run in a container. ## What kind of features does TFW provide? [[images/frontend.png]] *** -On the frontend side, you can utilize the following components: a chat bot, web IDE, terminal, console and a custom web service. To manipulate them, you can send control messages from the backend, where the TFW server acts as a proxy and waits for the messages from **ZeroMQ** sockets and **named pipes**, then it finally transports them through a **WebSocket** connection back to the components. \ No newline at end of file +In the upper-left part of the page you can see the chat bot, right next to it is a custom web service, in the rightmost part is the web IDE and the remaining one is a fully-featured terminal environment with an optional console tab where you can insert arbitrary text. To manipulate the components, you can send commands on the backend side to the *TFW server*, where event handlers process your request and instruct the frontend through a *WebSocket* connection. + +## Sequence of events +Everything that has a beginning has an end. Generally, you can define the steps of an exercise using a [finite-state machine](https://en.wikipedia.org/wiki/Finite-state_machine). This means that certain events can trigger a transition from one state to another. For instance, you want the user to login in your web service, and if it was successful, you would trigger the next step by notifying the *TFW server*, which will forward your message to the FSM instance that evaluates your request, and finally the state change happens, and additional logic is executed to prepare the environment for the next step until the last. \ No newline at end of file