You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

99 lines
3.0 KiB

[![Join the Discord chat at https://discord.gg/rAAQG9S](https://img.shields.io/discord/705322981102190593.svg)](https://discord.gg/rAAQG9S) \
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
# Majority Judgment Polling (for Streamers)
Organize a majority judgment poll in a few seconds _(as low as 0.5s, by hitting `Enter` twice)_, and let your community vote on it through one of the _providers_, like your Twitch Chat, using commands such as `A2 B1 C4`.
[![A short demo of the application](https://img.youtube.com/vi/6JnTlUcu1nA/0.jpg)](https://www.youtube.com/watch?v=6JnTlUcu1nA)
## Just for streamers?
No.
The app can be exported for Android, and you can set up polls on your smartphone.
Any participant can vote by sending you SMSes with commands of the form: `A3 B5 C0`.
The app has to stay alive to keep receiving SMSes, for now (see Issue #8), so best keep it in focus for the duration of the poll.
## Overview
This is a distributable project made with Godot Game Engine, and there is no server-side to this application.
All the data is held by the streamer, on their computer, whether they're using a binary executable or the web application on _itch.io_.
By design, the ballots are open, which may be unsuitable for politics, but it will allow us to enable delegation features, and we find that exciting!
Perhaps there is a way to make the ballots more secret (using whispers, a Twitch js overlay or some other trick).
## Disclaimer
The project is in a **PRIVATE ALPHA** stage.
It works, but it needs further testing on different machines before it can be considered stable.
> Please consider becoming a tester, we need _YOU_!
We're looking for streamers willing to test it out and help us improve the software by making it crash in a number of interesting ways.
Open an issue in our tracker, or join us on [Discord](https://discord.gg/rAAQG9S).
## Chat Commands
Vote Chat Commands are in the form:
```
<CandidateLetter><GradeValue>
```
Letters start with `A` (duh), and each candidate gets attributed a different letter when they are added to the poll.
Grades start at `0`, and their meaning is as follows:
0. TO REJECT
1. POOR
2. PASSABLE
3. GOOD
4. VERY GOOD
5. EXCELLENT
This is an example of meaning for 6 grades.
We will support different gradings in the future.
> Valid Examples:
> - A2 B0 C5
> - A2B0C5
> - a4B1 c5
#### Grade capping
Grades are capped to the maximum grade, so `A1337` is understood as `A5`.
## Add a new provider
1. Extend `MajorityJudgmentAbstractProvider`.
2. Register it in `App.gd`.
3. Add its toggle to the `SettingsForm` scene.
## Missing Features
- Delegation (#10 [work in progress](https://git.mieuxvoter.fr/MieuxVoter/majority-judgment-for-streamers/wiki/Delegations))
- More providers (Youtube live, Peertube live, IRC, CSV file, etc.)
- Save/Load polls (#2)
- Resilience to scale (Poll tallier may be vastly improved)
- Option to enable/disable logs
- Allow candidates to be added by the Chat (#11)
-
## LICENSE
_This is libre software._
MIT