Project overview - vanemarendajaks-team15/pb-frontend GitHub Wiki

Documentation for Pickleball tournaments and livescore application

Overall

Authorization: use Laravel's own auth library

Frontend

Application name: pb-frontend

Frontend should based on vue 3.5 framework with JavaScript language. Application should use at least following libraries:

  • To build and deploy: Vite
  • For storage: Pinia
  • For API (REST) calls: Axios
  • For style/function: Bootstrap

Different user roles:

  • Environment admin
  • Tournament admin
  • Court admin
  • User (registered)
  • Anonymous user

Different user groups, conditions and permissions:

  • First registered user is environment admin who has all permissions including adding other registered users into environment admin group.
  • Tournament admin group includes users who could be co-admin as tournament creator and have same permissions (Tournament creator is default admin for specific created tournament). He sets court admin to specific court
  • Court admin has permission to set score in specific court
  • User (Registered) can to register into tournament and possibility to change their personal data.
  • Anonymous user has possibility to register into tournament

Regular user different views:

  • Homepage (no need to register to access to this view) - including current live tournament. List of courts, players and their live scores. Group courts by different categories (Men singles, Woman singles, Men doubles, Women doubles, Mixed doubles). Clicking on court component redirects user to new full screen view showing only selected match players and score.
  • Login
  • Register new user
  • Register new tournament Only accessible registered and logged in user
  • Sign up into some created tournament and optionally could insert your team partner. Must be possible to register to any tournament as anonymous (only first name and category is required for anonymous player).

Admin views:

...

Create Dockerfile and docker-compose.yaml and docker-compose.prod.yaml file for dockerize.

Backend

Laravel

Models

Or something similar

Table user { id integer [pk, increment] first_name varchar last_name varchar email varchar [unique] password hashed created_at datetime modified_at datetime }

Table tournament { id integer [pk, increment] name varchar location varchar start_date datetime end_date datetime description varchar director_id int [ref: > user.id] created_at datetime modified_at datetime }

Table category { id int [pk, increment] tournament_id int [ref: > tournament.id] name varchar created_at datetime modified_at datetime }

Table tournament_registration { id int [pk, increment] tournament_id int [ref: > tournament.id] player1_id int [ref: > user.id, null] player1_name varchar [null] player2_id int [ref: > user.id, null] player2_name varchar [null] category_id int [ref: > category.id] created_at datetime modified_at datetime }

Table "group (optional)" { id int [pk, increment] category_id int [ref: > category.id] name varchar created_at datetime modified_at datetime }

Table game { id int [pk, increment] tournament_id int [ref: > tournament.id] team_a int [ref: > tournament_registration.id] team_b int [ref: > tournament_registration.id] court_id int [ref: > court.id] team_a_score array team_b_score array serving_team varchar serving_player int status enum [default: "scheduled"] scheduled_at datetime created_at datetime modified_at datetime }

Table tournament_manager { id int [pk, increment] tournament_id int [ref: > tournament.id] user_id int [ref: > user.id] role varchar }

Table court { id int [pk, increment] tournament_id int [ref: > tournament.id] court_name varchar }

Database - Postgres

rakenduste käiivtamine

backend tööle - php artisan serve

  • php artisan migrate
  • php artisan db:seed