Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/erdgeist/halfnarp
33C3 Fahrplan conflict resolution service
https://github.com/erdgeist/halfnarp
Last synced: about 2 months ago
JSON representation
33C3 Fahrplan conflict resolution service
- Host: GitHub
- URL: https://github.com/erdgeist/halfnarp
- Owner: erdgeist
- License: other
- Fork: true (tomster/halfnarp)
- Created: 2014-11-23T03:08:10.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2019-12-02T20:06:17.000Z (almost 5 years ago)
- Last Synced: 2024-07-09T02:56:03.318Z (3 months ago)
- Language: CSS
- Homepage:
- Size: 252 KB
- Stars: 5
- Watchers: 5
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
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``.