Skip to content

Latest commit

 

History

History
68 lines (50 loc) · 2.47 KB

03_system_scope_and_context.adoc

File metadata and controls

68 lines (50 loc) · 2.47 KB

System Scope and Context

Business Context

!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

Teacher (User Role)

Creates and manages tasks/assignments. Reviews student submissions.

Student (User Role)

Works on assignments and submits task solutions. Receives feedback.

Learning Management System (External System)

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:

Technical Context

!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

Browser (External System)

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.

Learning Management System (External System)

For explanation see above. Integrated with the LTI (Learning Tools Interoperability) protocol.

Container Engine

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.

Table 1. Supported Container Engines
Container Engine Connection Protocol Supported Reverse Proxies

Docker

HTTP / Unix Socket

Without (expose ports), traefik

Planned: Kubernetes