π Bee pong!
This group project is about creating a website for the mighty Pong contest! π
Figma
Ways of working:
- Commit messages chould be in this format:
issue_number commit_message
, where commit_message follows Conventional Commits standard
- When creating a pull request, mention everyone and assign one person to review
Architecture
Game
- id
- player1
- player2
- state (PENDING, ONGOING, FINISHED)
- winner player
- timestamp(s)
Actions for Game:
- GET page
- POST /games/ - Create game
- Payload: {player1 id, player2 id}
- PUT /games/{gameId}/update - Update game
- Payload: {player1 score, player2 score}
- PUT /games/{gameId}/finish - Finish game
Tournament
- id
- quarter1 (link to Game)
- quarter2
- quarter3
- quarter4
- semi1
- semi2
- final
- name
- description
- state (PENDING, ONGOING, FINISHED)
- num_players (2,4,8)
- players (links to players)
- winner player
- timestamp(s)
Actions for Tournament:
- GET /tournament - Get all
- GET /tournament/{id} - Get one
- POST /tournament - Create
- Payload: user id (or maybe none bc we have cookie?)
- Returns: created tournament whole object
- PUT /tournament/{id}/join Join (also starts the tournament when it's full)
- Payload: user id (or maybe none bc we have cookie?)
- Returns: created tournament id (or whole object?)
- PUT /tournament/{id}/leave - Leave
- Refresh tournament (when one of the games is finished, would probably be done from a websocket function but unsure)
Player
- id
- username
- alias
- is_registered
- is_online ?
- ? auth info ?
- current tournament (link to Tournament)
Actions for Player:
- GET /user - get your profile
- POST /register - create
- Payload: user info
- Returns: created user (or just id)
- POST /login
- PUT /user/{id}/alias - update alias
- Payload: new alias
- Returns: updated user (or just id)
6.6.2024 meeting
- games - simultaneous or consequtive?
8.6.2024 meeting
First priority:
- Create board (linh)
- Create docker setup
- Create prototype (lera)
- Create dummy project (database, devops, back, front)
Features plan C:
YES: 3 backend, database, accessibility
PROBABLY: 1 devops: ELK
MAYBE:
- 4 Remote + multiplayer + server-side + microservices
- 2 AI opponent + more devops + bootstrap
-
- 4 Remote auth + remote playing + server-side + 1 DevOps module else than microservices
June 8th plan:
Web
Gameplay and user experience
- Major module: Remote players (1)
AI-Algo
- Major module: Introduce an AI Opponent (1)
Accessibility
- Minor module: Expanding Browser Compatibility (0.5)
- Minor module: Multiple language supports (0.5)
Server-Side Pong
- Major module: Replacing Basic Pong with Server-Side Pong and Implementing an API (1)
Dev-op: to be decided (1)
Sum: 7.5
Resources
Inspiration