Mono repository for the tourney project. This project is a web application for managing tournaments.
It includes an admin dashboard for managing tournaments, teams/players, live scores, and a client app for tournament attendees.
Caution
tourney is still in development. You will find bugs and broken/unfinished features.
tourney follows the Semantic Versioning guidelines.
- clone the repository:
git clone https://github.com/Dino-Kupinic/tourney.git
- install packages
pnpm i
Tip
If you don't have node.js installed, checkout https://nodejs.org to install for your operating system. We recommend using the LTS version, preferably v20 or higher.
Tip
If you don't have pnpm installed, checkout https://pnpm.io/installation to install for your operating system.
- run supabase
pnpm run start:supabase
Tip
If you don't have docker installed, checkout https://www.docker.com/.
- head to http://127.0.0.1:54323
If it works, great!
- define environment variables
Create a .env
file and checkout the .env.example
.
Copy the content into your .env
and replace the following fields with your own.
Field | Description |
---|---|
SUPABASE_URL |
URL to Supabase API |
SUPABASE_KEY |
Anon key |
SUPABASE_SERVICE_KEY |
Service Role Key |
NUXT_PUBLIC_CLIENT_URL |
URL of the viewer app, default http://localhost:3001 |
- run dev server
pnpm run dev:admin
- Head to http://localhost:3000/
If it works, great!
- define environment variables
Create a .env
file and checkout the .env.example
. Copy the content into your .env
and replace the following fields
Field | Description |
---|---|
SUPABASE_URL |
URL to Supabase API |
SUPABASE_KEY |
Anon key |
- run dev server
pnpm run dev:viewer
- Head to http://localhost:3001/
If it works, great!
- define environment variables
Create a .env
file and checkout the .env.example
. Copy the content into your .env
and replace the following fields
Field | Description |
---|---|
SUPABASE_URL |
URL to Supabase API |
SUPABASE_KEY |
Anon key |
USERS_TO_CREATE |
See comment in .env.example |
- run the script
pnpm run create:users
If it works, great! You can now log in in the admin dashboard with the created users.
- Create
images
bucket like below:
Note
This step might be automated in the future.
- Create the following folders in the
images
bucket:
logos
variants
- Move the images from
/resources/base
to thelogos
folder in the bucket. - Move the images from
/resources/variants
to thevariants
folder in the bucket. - It should look like this:
.svg logos in the logos folder
.svg logo variants grouped in the variants folder
- Create the RLS policies:
- Read Access
SELECT
- on all tables for the
public
role
- on all tables for the
- Write Access
INSERT
class
,registration
,tournament
for theauthenticated
roleplayer
,team
for thepublic
role
- Update Access
UPDATE
registration
for thepublic
role
- Delete Access
DELETE
registration
for theauthenticated
role
Caution
These policies are subject to change. Please refer to the latest documentation.
- build the app
pnpm run build
- start the app
pnpm run app:start
Tip
Didn't work?
Try installing pm2 globally with npm install pm2 -g
.
- monitor the app
pnpm run app:monitor
- enjoy the app!
// WIP
- Nuxt 3
- Supabase (Postgres)
- Docker
- pm2
// WIP