# Noteneingabetool

Noteneingabetool mit Import u. Export aus HISInOne.

Autor: enrico.schroeder@th-nuernberg.de

![](./images/screenshot_noteneingabe.png)

# Features
* **Import** von Studierendendaten aus einer HISInOne Prüfung.
* Speichern der Daten in einer lokalen **Datenbank** (.json).
* Mehrere **Sessions**.
* Eingabe von **Punkten** der einzelnen Aufgaben.
* Einstellen von **Notenparametern** (Punktzahl, Bestehens- und 1,0-Grenzen)
* Berechnung der **Gesamtpunkte** und **Endnoten**.
* **Statistiken** 
* **Export** der Daten im HISInOne-Format.

## Ideen (noch nicht implementiert)
* Authentifizierung via AD, OpenID o.ä. (kompatibel mit HS-Infrastruktur)
* Bearbeiten derselben Prüfung durch mehrere Prüfer(innen)
* Deployment auf HS-Infrastruktur

**Pull requests welcome!**

# Installation
Installation der Requirements durch `pip install requirements.txt`

# Verwendung

Starten des Programms durch `streamlit run streamlit_app.py`.

## Neue Prüfung anlegen
1) Prüfung als Exceltabelle aus HISInOne exportieren.
2) In der linken Leiste *Neue Session* wählen und die Exceltabelle ins Fenster ziehen.
   ![](./images/screenshot_session.png)
3) Session-Token notieren (aktuell werden die Sessions zusätzlich als Dropdown in der Seitenleiste angezeigt, die Idee ist aber, dass die Tokens versteckt sind).

## Prüfung bearbeiten
1) Im Hauptfenster oben die Namen der Aufgaben als kommaseparierte Liste hinzufügen, z.B. *1,2,3,4,5,6*. Format ist String, es sind also auch *1a,1b,1c* möglich. **ACHTUNG:** Wird nachträglich eine Aufgabe entfernt, sind die eingegebenen Punkte dieser Aufgabe weg. Ein Ändern der Aufgabenreihenfolge durch umsortieren ist aber möglich.  
   ![](./images/screenshot_konfiguration.png) 
2) Anzahl Punkte und Bestehens- sowie 1,0-Grenze einstellen (ist jederzeit änderbar)
3) In der Punktetabelle einen Zeile markieren, in der Tabelle unten die Punkte eintragen und auf **Submit** klicken. Die Punkte werden dann in die Haupttabelle übertragen und die Gesamtpunkte und Note aktualisiert.
   ![](./images/screenshot_noteneingabe.png)
4) (Optional) Statistken anschauen
   ![](./images/screenshot_statistik.png)
5) Der Button unten exportiert die Tabelle im HISInOne-Format (Studis ohne Eintrag werden mit `NT` bewertet). Die Tabelle hat außerdem noch zusätzliche Tabellenblätter (Tabelle mit den einzelnen Punkten, Notenschlüssel), lässt sich aber so wie sie ist in HISInOne hochladen.

Jede Änderung wird automatisch in der .json-Datenbank lokal gespeichert.

## Prüfung laden
1) In der Seitenleiste Sessiontoken ins Eingabefeld kopieren und Enter drücken, oder...
2) Sessiontoken aus der Dropdown-Liste wählen (ist eigentlich eine Debugfunktion, wird vermutlich irgendwann entfernt)
