Feedback Tracker
Um Rückmeldungen zu Vorträgen im Blick zu behalten und automatisch in den Tracker einzufügen, ein externes Tool, der Feedback Tracker, zur Verfügung gestellt, welcher eine Liste mit allen Vorträgen mit einigen öffentlichen States listet und die Möglichkeit bietet einen Fehler (falsche Sprache, Metadaten, kaputtes Encoding, …) zu einem Ticket zu melden. Diese Meldungen werden im Ticket Tracker als sog. „Misc“-Tickets gespeichert, welche Nutzer des Ticket Trackers bearbeiten, zuweisen, schließen und kommentieren können. Alle Kommentare an diesen Tickets landen später im Feedback Tracker. Nutzer des Feedback Trackers können widerum bereits geöffnete Misc-Tickets kommentieren um z.B. Rückfragen zu beantworten.
Der Tickettracker ist ein interner Dienst, der zum Schutz vor Hochlast-Situationen und DOS-Attacken nicht von außen erreichbar ist. Um nun den Datenaustausch zu realisieren, muss sich der Ticket Tracker regelmäßig zum Feedback-Tracker verbinden, neue Kommentare entgegen nehmen und den letzten Stand der Tickets übertragen.
Funktionsweise
Der Feedback-Tracker bietet eine Übersicht aller Recording Tickets für dieses Event, wobei zu jedem Ticket folgende Details veröffentlicht werden:
- Fahrplan ID
- Name
- Status (locked, scheduled, recording, recorded, processing, fixing, ready)
- Verfügbare Formate
- Profile name
- Status des Encoding Tickets (encoding, releasing, released)
- URL zum fertigen File
- Liste der Supporttickets zum Encoding
- Status (open, inprogress, resolved)
- Kommentare
- Makierung Nutzer Kommentar/Video-Team Kommentar
- Timestamp
- Kommentar
Auf der Übersichtsseite für die Support-Tickets eines Vortrags lässt sich
- ein neues Supportticket zu eröffnen (durch Erstellen eines neuen Kommentars)
- an ein bestehendes Supportticket dranzukommentieren
Um SPAM zu vermeiden sollte der Nutzer ein ReCAPTCHA beim Absenden lösen müssen.
Die neuen Kommentare werden in einer Queue gespeichert, welche regelmäßig vom Tracker abgeholt, verarbeitet und an entsprechende Supporttickets in der Datenbank angehangen. Zusätzlich werden die Kommentare in die lokale Datenstruktur eingepflegt und dem erstellenden Nutzer angezeigt, bis der Tickettracker beim nächsten Update die Datenstruktur wieder überschreibt. Der Ticket Tracker entscheidet, welche Kommentare valide sind und gespeichert werden.
Kommunikation mit dem Ticket Tracker
Queue
Der Tickettracker ruft regelmäßig eine URL des Feedback Trackers auf, welcher daraufhin alle neue Kommentare zurückliefert und seine Queue leert. Dieser Aufruf sollte in kurzen Intervallen erfolgen (Vorschlag: 5min).
Zum Abrufen der neuen Kommentare, wird http://feedback.28c3.fem-net.de/comments aufgerufen und beim schicken der Daten zum syncronisieren, wird /sync verwendet. Vor dem Syncronisieren, sollten die Kommentare eingepflegt werden.
Übergeben werden folgende Daten pro Kommentar:
- Fahrplan_id
- profile_slug
- misc_ticket_id (kann NULL sein für neues Supportticket)
- timestamp
- comment
HTTP GET http://feedback.28c3.fem-net.de/s/comments
[ { "fahrplan_id": "<fahrplan_id>", "profile": "<encoding_profile_slug>", "uid": "<misc_ticket_id>", "created": "<date(ISO 8601)>", "comment": "<comment>" } ]
State-List
Der Ticket Tracker kann in beliebigen Abständen Updates für die State-List an den Feedback Tracker übertragen. Dieser verwirft seine alte Datenstruktur und übernimmt die neue Liste komplett.
HTTP POST http://feedback.28c3.fem-net.de/s/tickets
data = { "tickets": { "<fahrplan_id>" :{ "title": "<title>", "state": "<state_name>", "profiles": { "<encoding_profile_slug>":{ "url": "<download_url>"|null, "state": "<state_name>" }, … }, "feedback": { "<uid>": { "state": "<state_name>", "modified": "<date(ISO 8601)", "comments": [ { "created": "<date(ISO 8601)", "is_feedback": true|false, "comment": "<comment>" }, … ] }, … } }, … }, "profiles": { "<encoding_profile_slug>": { "name": "<encoding_profile_name>" }, … } }