|
|
|
Installation von Dozentron
|
|
|
|
=============
|
|
|
|
|
|
|
|
Dozentron ist eine Rails-Applikation zum automatischen Testen von Programieraufgaben.
|
|
|
|
|
|
|
|
Um Dozentron zu installieren, muss zunächst dieses [Repository](https://git.thm.de/dalt40/dozentron) geklont werden.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Ruby
|
|
|
|
|
|
|
|
Dozentron benötigt [Ruby](https://www.ruby-lang.org/de/) als Laufzeitumgebung. Stelle daher sicher, dass die richtige Version installiert ist.
|
|
|
|
|
|
|
|
Zum aktuellen Zeitpunkt läuft Dozentron auf Ruby 2.4.1. Die aktuelle Version kann jedoch immer in der Datei [.ruby-version](https://git.thm.de/dalt40/dozentron/blob/development/.ruby-version) nachgesehen werden.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Installation
|
|
### Installation
|
|
Um Dozentron an einem Lokalen System zu installieren wird Ruby 2.3.0 benötigt.
|
|
|
|
|
|
Anschließend müssen die Abhängigkeiten für Dozentron installiert werden. Diese werden über [Bundler](https://bundler.io/) verwaltet.
|
|
|
|
|
|
|
|
Um alle Abhängigkeiten zu installieren, öffne ein Konsolenfenster und navigiere zu dem Verzeichnis des geklonten Repositories.
|
|
|
|
|
|
|
|
Daraufhin müssen dann folgende Befehle ausgeführt werden, um die Abhängigkeiten zu installieren:
|
|
|
|
|
|
```bash
|
|
```bash
|
|
cd <project-dir>
|
|
|
|
gem install bundler
|
|
gem install bundler
|
|
bundle install
|
|
bundle install
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Anschließend werden Konfiguration und Datenbank eingerichtet:
|
|
|
|
|
|
|
|
```bash
|
|
cp config/database.yml.example config/database.yml
|
|
cp config/database.yml.example config/database.yml
|
|
cp config/secrets.yml.example config/secrets.yml
|
|
cp config/secrets.yml.example config/secrets.yml
|
|
rails db:create db:migrate db:seed
|
|
rails db:create db:migrate db:seed
|
|
```
|
|
```
|
|
|
|
|
|
Um Moss verwenden zu können, muss in der Datei `config/secrets.yml` eine Moss-Benutzerkennung angegeben werden.
|
|
|
|
|
|
|
|
|
|
### Moss
|
|
|
|
|
|
|
|
Um Moss verwenden zu können, muss die Datei `config/secrets.yml` um eine Moss-Benutzerkennung erweitert werden:
|
|
|
|
|
|
```yaml
|
|
```yaml
|
|
# config/secrets.yml
|
|
|
|
development:
|
|
development:
|
|
moss_user_id:
|
|
moss_user_id: <nutzerkennung>
|
|
#...
|
|
|
|
```
|
|
```
|
|
|
|
|
|
Nach der Einrichtung, startet man einen Rails-Server mit dem Befehl:
|
|
|
|
|
|
|
|
|
|
### Erweiterte Installation
|
|
|
|
|
|
|
|
Es besteht die Möglichkeit, teile der Abhängigkeiten bei der Installation zu ignorieren.
|
|
|
|
|
|
|
|
Dabei muss der Installationsbefehl abgewandelt werden:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
bundle install
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##### Installation ohne MySQL-Datenbanktreiber
|
|
|
|
|
|
|
|
Wenn Dozentron nur als Test installiert werden soll, kann das Installieren des MySQL-Datenbanktreibers übersprungen werden. Dieser installiert native Erweiterungen und verbraucht daher relativ viele Ressourcen.
|
|
|
|
|
|
|
|
Für den Betrieb eines Production-Systems wird jedoch die **Verwendung von MySQL emfohlen**.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
bundle install --without production server_development
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##### Installation ohne Tests
|
|
|
|
|
|
|
|
Dozentron verfügt über eine Reihe an Tests, mit denen das richtige Funktionieren einer Installation überprüft werden kann. Diese können übersprungen werden.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
bundle install --without test
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Konfiguration der Umgebung
|
|
|
|
|
|
|
|
Standardmäßig ist Dozentron in der Lage, Java-Abgaben auszuwerten. Dafür werden jedoch einige zusätzliche Anwendungen benötigt.
|
|
|
|
|
|
|
|
Diese müssen dem System entsprechend in der Konfigurationsdatei `config/application.rb` eingetragen werden.
|
|
|
|
|
|
|
|
##### Java Laufzeitumgebung
|
|
|
|
|
|
|
|
Für das Ausführen von Java-Code muss Java installiert sein. Dozentron kann sowohl Java 8 als auch Java 9 ausführen, daher wird empfohlen beide Versionen parallel zu installieren.
|
|
|
|
|
|
|
|
##### Bubblewrap
|
|
|
|
|
|
|
|
Die Ausführung der Abgaben findet in einer abgesicherten Umgebung statt. Dafür wird [bubblewrap](https://www.archlinux.org/packages/extra/x86_64/bubblewrap/) benötigt.
|
|
|
|
|
|
|
|
##### Timeout
|
|
|
|
|
|
|
|
Zusätzlich wird noch [timeout](https://linux.die.net/man/1/timeout) benötigt, wodurch die Ausführung einer Abgabe nach einem bestimmten Zeitraum abgebrochen werden kann.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Starten des Servers
|
|
|
|
|
|
|
|
Nach der Einrichtung, kann der Server mit folgendem Befehl gestartet werden:
|
|
|
|
|
|
```bash
|
|
```bash
|
|
rails s
|
|
rails s
|
|
``` |
|
```
|
|
\ No newline at end of file |
|
|
|
|
|
|
|
|
|
|
|
|
|
Um Tests mittels eines Workers auszuführen, muss folgender Befehl ausgeführt werden:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
bin/delayed_job
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Beispieldaten generieren
|
|
|
|
|
|
|
|
Dozentron kommt mit einer Reihe von Beispielaufgaben, um sich mit dem System vertraut zu machen. Diese Aufgaben liegen im Verzeichnis `examples` und können mit folgendem Befehl eingetragen werden:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
bundle exec rake generate_examples
|
|
|
|
```
|
|
|
|
|
|
|
|
Daraufhin wird eine Aufgabengruppe mit dem Namen _"Dozentron Task examples"_ erstellt.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Nutzer hinzufügen
|
|
|
|
|
|
|
|
Benutzer und Gruppen können über das Adminpanel (`locahost:3000/admin/users`) eingetragen werden.
|
|
|
|
|
|
|
|
Standardmäßig lauten die Zugangsdaten `admin@example.com` mit dem Passwort `password`. Diese sind in der Datei `db/seeds.rb` zu finden.
|
|
|
|
|
|
|
|
Angemeldeten Benutzern können Dozentenrechte zugewiesen werden, indem die `User Class` auf `M` gesetzt wird.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Benutzerhandbuch
|
|
|
|
|
|
|
|
Die mitgelieferten Hilfeseiten liegen im Order `doc`.
|
|
|
|
|
|
|
|
Diese Hilfeseiten können innerhalb von Dozentron aufgerufen werden, indem der "Hilfe-Link" geklickt wird. Jedoch nur, nachdem zuvor die Seiten mit folgendem Befehl generiert wurden:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
bundle exec rake compile_doc
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Wenn Dozentron mittels Capistrano deployt wurde, sind diese Seiten automatisch generiert.
|
|
|
|
|