A Slack app and RESTful HTTP API that can be used to keep track of multiplayer game results. It is built using Python, and is deployed to AWS Lambda via Travis CI using the Serverless framework. The application stores player information, game scores, and calculates skill rankings.
Intended for use in any pointed multiplayer game setting, digital or otherwise, where there is not a method of tracking game results and player rankings built in. Originally developed for tracking local Mario Kart game results among a pool of consistent players.
These instructions will provide assistance in getting the Kart application up and running on a local machine for development purposes. See deployment for notes on how to deploy the application to AWS.
The following dependencies are needed to run the application:
- Python 3.6
- Node.js 6.11.*
- MongoDB 3.4.* (a database accessible from the application, not necessarily on the same machine)
The following dependencies are needed to deploy and use the application:
- AWS account with administrator access
- Slack account with authorization to add an integration
- Clone or download the entire project.
- Create the following environment variables (with the appropriate values):
MARIO_MONGO_URI: URI to the database that includes credentials with Read/Write permission
MARIO_MONGO_DB: name of the Mongo database to use
AWS_ACCESS_KEY_ID: Access key with AWS administrator access
AWS_SECRET_ACCESS_KEY: Associated secret key
- Open a bash terminal with administrator privileges and navigate to the root directory of the project.
- Install the Node dependencies:
npm install
- Change working directory to the src folder and run the following to install the python dependencies:
python -m pip install -r requirements.txt
- Download Python dependencies locally:
python -m pip install -r requirements.txt -t .
- Package and deploy to AWS using Serverless (optionally specify deployment stage):
sls deploy [--stage dev/test/prod/etc.]
- Add created endpoints to Slack as slash commands, as described here (start at the "Phew..." section).
- Travis CI - Continuous Integration/Continuous Deployment
- Serverless - The deployment framework used
- Newman - Integration tests
- MongoDB - Database
- NPM - Node Dependency Management
- pip - Python Dependency Management
- numpy - Mathemetical calculations
- Branch off and submit PR's to the
development
branch. - Work must be fully unit & integration tested.
There is currently only a single tagged legacy version, which is a limited iteration of the application that runs on Node.js and only integrates with Slack.
- Joshua Groppe - Creator, architect, and lead developer
This project is licensed under the ISC license.
Coming soon