# Web-Praktikum

## Termin 3

- Gruppe A
  - Kai Wansart: 921862
  - Felix Hoster: xxxxxx
- 15.12.2016

## Beschreibung der Lösung

### Aufgabe der Anwendung

- Entwickeln und Umsetzen eines Praxisphasenmanagers (PPM).
- Schnittstelle für Firmen, Dozenten und Studenten
- Verwaltung der Daten, zB. Benutzerverwaltung und Angebotverwaltung

### Übersicht der fachlichen Funktionen

- Datenpflege Studenten:
  - Ausgabe Studenten im System
  - Verwaltung bestehender Datensätze
  - Erstellen neuer Datensätze
- Datenpflege Lehrende:
  - Ausgabe Lehrenden im System
  - Verwaltung bestehender Datensätze
  - Erstellen neuer Datensätze
- Datenpflege Firmenverzeichnis:
  - Ausgabe Firmen im System
  - Verwaltung bestehender Datensätze
  - Erstellen neuer Datensätze
- Datenpflege Praxisphase:
  - Ausgabe Angebote Praxiphasenplätze im System
  - Verwaltung bestehender Datensätze
  - Erstellen neuer Datensätze
- Auswahl Praxisphasen:
  - Schnittstelle für Studenten, um sich in Praxisphasenplatz einzuschreiben, mit Angabe von Zeitraum
- Auswertung Firma:
  - Ausgabe aller Firmen mit den jeweiligen Studenten, die sich bei Ihnen zu einem Praxisphasenplatz eingeschrieben haben
- Auswertung Praxisphasen nach Studenten:
  - Ausgabe aller Studenten mit Informationen, bei welcher Firma sie wann ihre Praxisphase machen / gemacht haben
- Auswertung Praxisphase nach Betreuern:
  - Ausgabe aller Betreuer mit den jeweiligen Studenten, die sie betreuen.

## Beschreibung des Client

- Basis: Html Vorlage
- Dynamischer Inhalt via Javascript:
  - Lädt Inhalte im JSON Format von Server
  - Rendert Inhalte in Templates
  - Fügt gerenderte Inhalte in HTML (DOM) ein

## Beschreibung der Komponenten des Servers

- Server: Object-Dispatching --> Weiterleitung der Anfragen an jeweilige Funktionen
  - category
    - Zweck
      - Alle Kategorien (Studenten, Lehrende, Firmen, Angebote)
      - Rückgabe der Inhalte
      - Verwaltung der Daten
    - Zusammenwirken mit anderen Komponenten
      - Zugriff auf Datenbank um Daten zu verwalten
    - Aufbau
      - GET: Rückgabe
      - POST: Eingabe
      - DELETE: Löschen
    - API
      - GET ( Kategorie, Ansicht, ID)
      - POST ( Kategorie, Daten )
      - DELETE ( Kategorie, ID )
  - choice
    - Zweck
      - Rückgabe der bestehenden Angebote
      - Verwaltung der Daten
        - Annahme mit Datum
    - Zusammenwirken mit anderen Komponenten
      - Zugriff auf Datenbank um Daten zu verwalten
    - Aufbau
      - GET: Rückgabe
      - POST: Eingabe
    - API
      - GET ( Ansicht, ID )
      - POST ( Daten )
  - eval
    - Zweck
      - Auswertung
      - Rückgabe der Auswertungen
    - Zusammenwirken mit anderen Komponenten
      - Zugriff auf Datenbank um Daten zu verwalten
    - Aufbau
      - GET: Rückgabe und Auswertung
    - API
      - GET ( Kategorie )
  - database
    - Zweck -Verwaltung - auslesen - bearbeiten - speichern - löschen
    - Zusammenwirken mit anderen Komponenten
      - category, choice, eval greifen auf Datenbank zu
  - template
    - Zweck
      - Einlesen aller Templates
      - Rückgabe aller Templates
    - Aufbau
      - GET: Rückgabe aller Templates
    - API
      - GET ()

## Datenablage

- Die Daten werden mittels JSON abgespeichert und ausgelesen
- Die Datensätze sind aufgeteilt in die Unterordner:
  - Angebote
  - Firmen
  - Lehrender
  - Studenten
- Es wird jeweils abgespeichert, welche ID der zuletzt hinzugefügte Eintrag hat, um den nächsten mit inkrementierter ID abspeichern zu können

## Konfiguration

- Python
  - Erweiterungen:
    - JSON
    - CherryPy
- Webbrowser
  - Javascript fähig