You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
## Remote Exercise Framework (REF)
2
-
The REF framework intends to provide students with an interactive, practical learning environment: For pre-defined tasks, each student can work in an indvidiual Docker container with automated goal verification aiding their progress.
2
+
The REF framework intends to provide students with an interactive, practical learning environment: For pre-defined tasks, each student can work in an individual Docker container with automated goal verification aiding their progress.
3
3
The framework consists of multiple components that have to be built the first time REF is set up and when it is updated. The framework heavily relies on Docker for the runtime environment itself as well as for deploying the different exercises to the students.
4
4
5
5
The following describes how to build REF, how to run it, and how to upgrade it. To learn more about creating new exercises, head to [exercises.md](./EXERCISES.md).
@@ -51,8 +51,8 @@ The Flask web app (`/`, `/admin/*`, `/api/*`), the Vue student SPA
51
51
a single Caddy reverse proxy (`frontend-proxy/`) on host port 8000.
52
52
Students go to `http://<host>:8000/spa/register` (or whichever landing
53
53
page is configured); admins go to `http://<host>:8000/admin/` (which
54
-
redirects to the exercise view). The SSH entry point for student
55
-
containers is unchanged on port 2222.
54
+
redirects to the exercise view). Student SSH connections go through the
55
+
SSH reverse proxy on port 2222.
56
56
57
57
In production, `frontend-proxy` serves the Vue SPA as a static bundle
58
58
that is baked into the image at `docker build` time via a multi-stage
@@ -186,14 +186,14 @@ After starting the application, the following services are running on the host:
186
186
This services is the entry server for all SSH connections to the exercises. Based on the clients user name and the public key, incoming SSH connection are forwarded to a container of the respective exercise.
187
187
188
188
```
189
-
Hostname: sshserver
189
+
Hostname: ssh-reverse-proxy
190
190
Port: 2222
191
191
```
192
192
193
-
#### Webinterface
194
-
The webinterface to manage the exercises and users. This endpoint is alow used by the student to register.
193
+
#### Web Interface
194
+
The web interface for managing exercises and users. Students also use it to register. All HTTP traffic is served through the `frontend-proxy` (Caddy) on port 8000, which reverse-proxies to the `web` (Flask) service internally.
195
195
```
196
-
Hostname: web
196
+
Hostname: frontend-proxy (host-facing), web (internal Flask app)
197
197
Port: 8000
198
198
User: 0
199
199
Password: See settings.yaml (admin.password)
@@ -203,7 +203,7 @@ Password: See settings.yaml (admin.password)
203
203
The database used to store all information.
204
204
```
205
205
Hostname: db
206
-
Port: Not expose to the host
206
+
Port: Not exposed to the host
207
207
User: ref
208
208
Database name: ref
209
209
Password: See settings.yaml (secrets.postgres_password)
@@ -216,4 +216,4 @@ The following features are disabled by default and can be enabled from the admin
216
216
Allows students to be organized into named groups with a configurable maximum size. Students pick a group during registration, and admins can manage the available groups and reassign students afterwards. Enable via the `GROUPS_ENABLED` setting and configure the per-group capacity via `GROUP_SIZE`.
217
217
218
218
#### Scoreboard
219
-
A public leaderboard at `/spa/scoreboard` that ranks students based on their exercise submissions using a Formula 1 style, time-weighted strategy. Exercises can be grouped into assignments. Enable via `SCOREBOARD_ENABLED`; optionally set `LANDING_PAGE` to `scoreboard` to use it as the default landing page.
219
+
A public leaderboard at `/spa/scoreboard` that ranks students based on their exercise submissions. Exercises can be grouped into assignments. Enable via `SCOREBOARD_ENABLED`; optionally set `LANDING_PAGE` to `scoreboard` to use it as the default landing page.
0 commit comments