mirror of
https://github.com/Xevion/trivia.git
synced 2025-12-07 18:08:38 -06:00
new README with basic application design, ideas
This commit is contained in:
72
README.md
Normal file
72
README.md
Normal file
@@ -0,0 +1,72 @@
|
||||
# trivia
|
||||
|
||||
A simple locally hosted Flask webapp supporting Trivia competitions.
|
||||
|
||||
## Setup
|
||||
|
||||
Setup is designed to be as simple as possible with no configuration required. This webapp should only be locally acessible
|
||||
on at `localhost:5000` unless
|
||||
|
||||
```
|
||||
git clone https://github.com/Xevion/trivia.git
|
||||
cd trivia
|
||||
pip install -r requirements.txt
|
||||
python wsgi.py
|
||||
```
|
||||
|
||||
## Application Design
|
||||
|
||||
The webapp has two sides: Client and Server.
|
||||
|
||||
### Server
|
||||
|
||||
The server provides client code as well as a simple backend API for refreshing the page continuously.
|
||||
|
||||
Data fed into the tables is taken from a locally updated file which is continuously watched for updates.
|
||||
|
||||
Once an update is seen on the file, said file is read, and if readable, valid JSON is detected, the backend will begin
|
||||
providing the data to clients as they request it.
|
||||
|
||||
Each request is bundled with the last time a request was sent. If no update or change has been seen in the mean time,
|
||||
the response is empty and nothing occurs (`304 Not Modified`).
|
||||
|
||||
If a change in the scores is seen, the response includes a leaderboard.
|
||||
|
||||
|
||||
### Client
|
||||
|
||||
The frontend client is a fullscreen table displaying a simple leaderboard.
|
||||
|
||||
The leaderboard should scroll up and down in order to display as many teams as needed. Speed should be adjusted
|
||||
so that text is easily readable even while moving.
|
||||
|
||||
A second scrolling option should be available that is not animated and simply moves the top row in the leaderboard to
|
||||
the bottom of the leaderboard. One row should be made to represent the divider between the top and bottom of the
|
||||
leaderboard.
|
||||
|
||||
| Rank | Team Name | Total Score | 1 | 2 | 3 | 4 |
|
||||
|------|------------|-------------|---|---|---|---|
|
||||
| 1 | Tigers | 14 | 4 | 2 | 5 | 3 |
|
||||
| 2 | Orangutans | 9 | 3 | 2 | 0 | 4 |
|
||||
| 2 | Wolves | 9 | 0 | 2 | 5 | 2 |
|
||||
| 4 | Owls | 7 | 1 | 2 | 0 | 4 |
|
||||
| 5 | Rats | 3 | 0 | 2 | 0 | 1 |
|
||||
|
||||
- Ranks will be calculated client side.
|
||||
- This includes ties for any given rank. Take note that despite there being no Rank 3 in the table, Rank 4 and 5 are
|
||||
taken just after 2. Ties should occupy ranks as if no tie system exists at all, although display ties just the same.
|
||||
- A simple nth place system.
|
||||
- First, Second and Third place will be marked with Gold, Silver and Bronze colors. Still considering methods of
|
||||
marking.
|
||||
- Simple Image
|
||||
- Color Text
|
||||
- Color Background
|
||||
|
||||
## Ideas
|
||||
|
||||
- Method of reading and converting Excel Leaderboards to the proper format.
|
||||
- Should be built *failsafe*, given that the file is unreadable or somehow corrupted.
|
||||
- Build application to support any platform
|
||||
- The API should be able to support any kind of platform, from a Windows Application, to an Android App, to a CLI
|
||||
implementation.
|
||||
- A fun CLI implementation of the client.
|
||||
Reference in New Issue
Block a user