[doc] Add platform bots acceptance criteria
This commit is contained in:
parent
1a8071d8d6
commit
8a0203430e
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue