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>"
},
…
}
}