Skip to content

DarkJaslo/TournamentHub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

156 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tournament Hub (LiU TDDD27 2025)

This is a webapp designed to host tournaments of competitive programming-like games, built during Spring 2025 as part of the Advanced Web Programming course (TDDD27) in Linköpings Universitet.

Project themes were 100% free as long as they contained the technical concepts specified in the objectives of the course, which means that this is a cool project we wanted to make!

Getting started

The project has three components:

  • Frontend
  • Backend
  • Domains API

The first two are self-explanatory. The Domains API is just a clean way of communicating with the example game we are using, Domains, through HTTP requests instead of arbitrary languages/OS scripts. In short, it reduces coupling between this app and games used for the tournaments.

The frontend uses React+Typescript. It needs to be built via:

cd client
npm install
npm run build

The backend uses Python with Flask:

cd server
pip3 install -r requirements.txt
sqlite3 database.db < schema.sql

And for now we start it with:

./run.sh

This makes sure it runs with gunicorn.

The Domains API needs to be running to run matches of the game, and it also has setup steps:

cd game_api
git clone https://github.com/DarkJaslo/Domains
cd Domains
make

Domains assumes g++ is installed and compiles in Linux environments.

Then we run the Domains API by:

./run.sh

Developers also need the .env file for Google OAuth! (which is obviously not in this repository).

Idea

We wanted to create a web application for users to participate in computer game tournaments. These games are not played by participants, but programs made by them instead. Think online chess bots, or any board game.

For this purpose, we needed at least one board game, which we were not going to develop: it already existed and had been made by one of the group members, Jon, here.

This specific game accepts players in the form of C++ programs that implement a basic interface, and is well-suited for competition purposes.

In summary, the core functionality of the app consists of:

  • A dashboard, where some users can create tournaments. The only available game will be the one we are working with.
  • A viewer for the game so that participants can watch matches.
  • Finding and registering in tournaments.
  • Following tournaments live.
  • Real-time tournament statistics.

About

ReactTS + Flask webapp

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors