My blog post: Writing Software for an Among Us League
I use this system to manage the Among Us league I play with my friends.
Features:
- Elo rankings (w/ graphs)
- Player pages
- Achievements/trophy system
- Seasons
- Google Sheets as a datastore
Tech:
A Jamstack application which runs Express via Netlify Lambda.
The front-end is React via Create React App.
tested by Jest.
Sheets should be named in the following format:
Season X
— whereX
is an incrementing integer starting at1
To add a season, edit seasons
inside config.json
. Append to the list of incrementing integers.
Enter data starting at C4 downwards. The rows should be 14 cells long.
10 player slots (which should be left empty if you have less than 10), 2 slots for the impostors (the names are repeated from the player list), 1 slot for the winner ('crew' or 'impostor'), and 1 slot for the map short name.
E.g.
"andy" <-- player list
"ally"
"bayf"
"beans"
"keita"
"mads"
"roma"
"spon"
"gem"
"" <-- empty if you have nine players
"ally" -- impostors
"spon"
"crew" <-- game winner (crew, impostor)
"skeld" <-- map shortname (skeld, mira, polus, airship)
This application is deployed by Netlify.
Set two environmental variables via the Netlify UI.
SHEETS_ID
- the id in the URL bar.SHEETS_API_KEY
- an API key from Google Console.
Create a file called .env
inside back-end/
with the contents snapshot=true
Run both the back-end and the front-end.
cd back-end/ && yarn install && yarn dev
cd front-end/ && yarn install && yarn start
cd back-end/ && yarn test