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.
Der Feedback-Tracker bietet eine Übersicht aller Recording Tickets für dieses Event, wobei zu jedem Ticket folgende Details veröffentlicht werden:
Auf der Übersichtsseite für die Support-Tickets eines Vortrags lässt sich
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.
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:
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>" } ]
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>" }, … } }