!pragma graphviz_dot jdot skinparam componentStyle uml2 [Code FREAK] <<system>> as cf :Student: -- cf :Teacher: -- cf 'Student --[hidden]> Teacher node "Learning Management System" as LMS cf - LMS
A learning management system (LMS) is usually the core software system of an educational institution (See Glossary for more information). It for example models classes and assigments. Code FREAK needs to integrate with such systems to be conveniently usable by teachers and students. Currently supported systems:
!pragma graphviz_dot jdot skinparam componentStyle uml2 [Code FREAK] <<system>> as cf node Browser Browser - cf : HTTP, WebSocket node "Learning Management System" as LMS node "Container Engine" as CE Browser - CE : HTTP cf -- CE cf - LMS : LTI
Users access Code FREAK with a browser. A web frontend is delivered over HTTP. WebSocket is used for pushing certain events from the server to the client.
For explanation see above. Integrated with the LTI (Learning Tools Interoperability) protocol.
The container engine is used by Code FREAK to run Docker containers. There are the following use cases:
-
Containers for automatic evaluation. They get the answer files of a student, execute some analysis and pipe the results back to Code FREAK.
-
Each instance of the online IDE is a container. It is managed by Code FREAK and can be accessed by the user over HTTP. This usually involves a reverse proxy. Code FREAK does need an implementation for configuring each supported reverse proxy.
Container Engine | Connection Protocol | Supported Reverse Proxies |
---|---|---|
Docker |
HTTP / Unix Socket |
Without (expose ports), traefik |
Planned: Kubernetes