Ranker is an application for tracking Global Ranking for video game ranked matches. Users log their matches with an accepted third party witness, and ranking calculation occurs on the backend.
Requires Python 3.6
Setup requires several dependencies, environment variables, a valid ldap/freeipa instance, and a postgresql database.
To install all dependencies enter the command pip3 install -r requirements.txt
- To see a list of environment variables, refer to
config.env.py
- To override environment variables, place them in
config.py
config.py
overrides take precedence
Required Configuration Values
SQLALCHEMY_DATABASE_URI
- Must point to a valid SQLAlchemy DB URILDAP_BIND_DN
- Must point to a valid LDAP user- Looks like:
uid={username},cn=users,cn=accounts,dc=csh,dc=rit,dc=edu
- Looks like:
LDAP_BIND_PASS
- The password for the LDAP userSECRET_KEY
- A random string (can be anything) for application securityOIDC_ISSUER
- A binding pointing to a valid oidc instance and userOIDC_CLIENT_SECRET
- A secret for the oidc userREALM
- The oidc realm- Defaults to
csh
- the primary application consumers
- Defaults to
SLACK_ENABLED
- Boolean indicating whether slack endpoints should be activeSLACK_API_KEY
- A key for the slack bot to loginGAME_NAME
- The name of the game rankings are forMATCH_ROUNDS
- The number of rounds for ranked matches
To run the application use the following command:
python3 wsgi.py
CLI
Use the Flask CLI for creating and migrating the database.
- For available commands run
flask
by itself - For help with an individual command run
flask {command} --help
The commands above will use the configuration from above to decide which db it points to
Includes:
- Multi-game support
- Tournament Signup/Results
- Profile pages
- Enhanced user customization
- Season Support
- TypeScript/React frontend