33C3 Fahrplan conflict resolution service
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 1 commit behind tomster:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
backend
deployment
frontend
LICENSE
README.rst

README.rst

Halfnarp

A simple REST-based companion to the frab conference management system that allows users to register which talks they want to attend in order for the organizers to arrange a schedule (a.k.a. Fahrplan) with as few conflicts as possible.

Client usage

Clients can perform a GET request against a given installation at the path /-/talkpreferences and will receive a JSON list of available talks that they may present to their users. Notably, each entry contains a event_id value.

A client may then POST against the same URL with a JSON body consisting of a dictionary with a key talk_ids which contains one or more of the talk ids received during the GET.

The server will respond with a dictionary containing an entry named update_url containing a unique id.

Clients can then PUT against that URL using the same schema of a dictionary with a list of talk_ids thus updating their user's preference.

Note, that any updates against this URL will not update the previous ids but instead completely replace them with the new values. I.e. if the user has added another talk to his wishlist, the client must send the entire list, not just the new talk.

If – for some reason – the client can or wants to only remember the url but not the vote it has cast, it can retrieve them by issuing a GET on the URL it received (the same one used to PUT updates.)

Admin usage

As administrator you can dump the current votes by running bin/export-talks which will output a CSV list of all votes (without their uid or IP hashes) to stdout.