https://competitive-teams.herokuapp.com
The goal of this project was to create a web application that lets users create/join teams and helps them host tournaments or matches between those teams. It allows for easy tournament matchup generation in round-robin, swiss, and single-elimination style tournaments while providing a convenient way to keep track of their results.
Main technologies used in the development of this project:
- Frontend: React, Ant Design, G6, React Router, React Query, Axios, Firebase
- Backend: FastAPI, SQLAlchemy, Pydantic, PostgreSQL
- Deployment: Travis CI, Docker, Heroku
We've provided a simple bash script for starting and combining the outputs of both servers. To run the servers locally:
- Create and configure a new Google Firebase project.
- Export the environmental variables from your Google Firebase project and place them in the
frontend/.env.local
file with the following syntax:REACT_APP_FIREBASE_KEY=apiKey
REACT_APP_FIREBASE_DOMAIN=authDomain
REACT_APP_FIREBASE_DATABASE=projectId
REACT_APP_FIREBASE_PROJECT_ID=storageBucket
REACT_APP_FIREBASE_STORAGE_BUCKET=messagingSenderId
REACT_APP_FIREBASE_SENDER_ID=appId
- Configure and start your PostgreSQL server.
- Replace the
DATABASE_URL
variable inside therun-dev.sh
script with your PostgreSQL database URL. - If you'd like to change the default development server ports, make sure to update the
REACT_APP_BACKEND_URL
variable inside therun-dev.sh
script afterwards. - Install frontend packages with
npm install
in thefrontend
directory - Create a python venv with
python -m venv env
in thebackend
directory - Activate the venv with
source ./env/bin/activate
in thebackend
directory - Install backend packages with
pip install -r requirements.txt
in thebackend
directory - Deactivate the venv with
deactivate
in thebackend
directory - Start the
run-dev.sh
script.