Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tomster/halfnarp

31C3 Fahrplan conflict resolution service
https://github.com/tomster/halfnarp

Last synced: 19 days ago
JSON representation

31C3 Fahrplan conflict resolution service

Awesome Lists containing this project

README

        

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``.