Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/tomster/halfnarp
- Owner: tomster
- License: other
- Created: 2014-11-12T21:23:03.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2022-08-28T14:36:45.000Z (about 2 years ago)
- Last Synced: 2024-08-01T12:17:57.629Z (3 months ago)
- Language: CSS
- Size: 221 KB
- Stars: 74
- Watchers: 7
- Forks: 8
- Open Issues: 10
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
- awesome-starred - tomster/halfnarp - 31C3 Fahrplan conflict resolution service (others)
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``.