Skip to content
README.md 1.53 KiB
Newer Older
Bengfort's avatar
Bengfort committed
Castellum Scheduler -- an open source tool for scheduling appointments

Scheduler allows a group of people to coordinate so that everyone gets
at most one of the available time slots. In a way this is the opposite
of doodle where everyone agrees on the same time slot.

Scheduler is part of the [Castellum][1] project, but can be used with
other tools just as well.

# Installation

For development, a single `make` will install all dependencies and start
the server. You can log in as "admin" with password "password".

Bengfort's avatar
Bengfort committed
# API

All API requests must send an `Authorization` header with the secret
token defined in `settings.API_TOKEN`.

You can use PUT/DELETE requests to create/delete invitations for a
schedule. PUT will always respond with 204. DELETE will respond with 404
if no matching invitation existed.

You can use a GET request to get the currently selected timeslot for an
invitation.

When an invitation is changed, a POST request is sent to the URL defined
in `settings.PING_URL`. This request is not authenticated and should not
be trusted, so it does not itself contain the new data. Instead, the
other service is expected to make an authenticated GET request as
described above.

Example:

    $ curl -X PUT -H 'Authorization: token CHANGEME' http://localhost:8001/api/1/foo/
    $ curl -X GET -H 'Authorization: token CHANGEME' http://localhost:8001/api/1/foo/
    {"datetime": "2020-11-03T07:00:00"}
    $ curl -X DELETE -H 'Authorization: token CHANGEME' http://localhost:8001/api/1/foo/

Bengfort's avatar
Bengfort committed
[1]: https://www.mpib-berlin.mpg.de/research-data/castellum