[doc] Add platform bots acceptance criteria

This commit is contained in:
Cathy Hu 2020-07-17 15:26:35 +02:00
parent 1a8071d8d6
commit 8a0203430e

View file

@ -1,4 +1,5 @@
# Kibicara Contribution Guidelines # Kibicara Contribution HowTo
## Setup Development Environment ## Setup Development Environment
@ -55,7 +56,8 @@
email address and register via frontend or manually at `http://localhost:8000/api/docs`. email address and register via frontend or manually at `http://localhost:8000/api/docs`.
## Branches ## Contribution Guidelines
### Branches
- **Master:** The master branch tracks the last stable release. - **Master:** The master branch tracks the last stable release.
- Releases will be done using release tags. - Releases will be done using release tags.
@ -71,12 +73,12 @@ email address and register via frontend or manually at `http://localhost:8000/ap
- A rebase onto development is necessary to merge the feature. Code reviews - A rebase onto development is necessary to merge the feature. Code reviews
are encouraged. are encouraged.
## Write Tests ### Write Tests
We use [pytest](https://docs.pytest.org/en/stable/) as a test engine. It is We use [pytest](https://docs.pytest.org/en/stable/) as a test engine. It is
executed by `tox`, so you need to run `tox` on the command line to run the tests. executed by `tox`, so you need to run `tox` on the command line to run the tests.
## Commit Messages ### Commit Messages
Commits should define small components. Please write your commits with the Commits should define small components. Please write your commits with the
following pattern: following pattern:
@ -101,34 +103,34 @@ Don't use tags which are not listed here. Don't start your commit message with
lower case. Commit messages which do not fulfill these guidelines will not be lower case. Commit messages which do not fulfill these guidelines will not be
merged into the `development` branch. merged into the `development` branch.
## Comments ### Comments
### Python #### Python
We use pdoc3, which takes prose and comments automatically from the docstrings We use pdoc3, which takes prose and comments automatically from the docstrings
in the repository. in the repository.
Use [google Use [google style](https://github.com/google/styleguide/blob/gh-pages/pyguide.md#38-comments-and-docstrings)
style](https://github.com/google/styleguide/blob/gh-pages/pyguide.md#38-comments-and-docstrings)
comments to secure correct display of your docstrings. comments to secure correct display of your docstrings.
Please don't leave trailing whitespace or empty lines at the end of your files. Please don't leave trailing whitespace or empty lines at the end of your files.
## Merge Requests ### Merge Requests
The main development team does not need to make merge requests. The main development team does not need to make merge requests.
If you open a merge request, please include a description which explains the If you open a merge request, please include a description which explains the
improvement. improvement.
### Code reviews #### Code reviews
Before a merge request gets rebased onto and merged into `development`, at Before a merge request gets rebased onto and merged into `development`, at
least one person has to approve it; this also increases the number of people least one person has to approve it; this also increases the number of people
who know the code. So please request a review from someone from the core who know the code. So please request a review from someone from the core
development team. development team.
## Implement a new Platform/Social Network
## How to implement a new Platform/Social Network
### tl;dr ### tl;dr
@ -162,3 +164,40 @@ You will need them to:
To run the platform, you need to import the bot in To run the platform, you need to import the bot in
`kibicara/webapi/__init__.py`. `kibicara/webapi/__init__.py`.
### Acceptance criteria for bots (Checklist)
A bot should have at least this functionality:
- Kibicara REST API (hood admins):
- Endpoint for creating a bot associated with a hood
- Endpoint for deleting a bot associated with a hood
- Endpoint for updating a bot associated with a hood by id
(_The update endpoint may be optional if it does not provide any
additional benefit to delete and create.
An example where it does provide additional benefit is when there is
a database which holds state like user ids in telegram. Then deleting the bot
would also delete the user ids which would stop the bot from working._)
- Endpoint for getting the bot configuration by id
- Endpoint for starting and enabling a created bot by id
- Endpoint for stopping and disabling a created bot by id
- Endpoint for getting the status of a bot (INSTANTIATED, RUNNING, STOPPED)
- Endpoint for getting all bots of a hood
- Bot functionality (user):
- Possibility for a user to subscribe to the bot on their platform
- e.g. Twitter itself already covers this by their follow/unfollow button
- e.g. Telegram /start command
- e.g. E-Mail REST Endpoint for entering and confirming an email
- Possibility for a user to unsubscribe to the bot on their platform
- e.g. Twitter itself already covers this by their follow/unfollow button
- e.g. Telegram /stop command
- e.g. E-Mail REST Endpoint for removing an email by token
- Possibility for a user to send a message to the bot that gets broadcasted
- e.g. Twitter via mentions or direct message
- e.g. Telegram via direct message to the bot
- e.g. E-Mail via e-mail to a specified address
- Possibility for a user to get bot messages
- e.g. Twitter via posts or retweets
- e.g. Telegram via direct message from the bot
- e.g. E-Mail via e-mail to the user's address