Skip to content
António Santos edited this page Nov 8, 2025 · 8 revisions

Product Vision Board

Section Description
Vision We turn the frustration of organizing a match into a seamless, enjoyable experience, empowering people to stay active, connect locally, and build a stronger sports community.
Target Group Active individuals of all ages who enjoy playing sports but lack a consistent network.

Includes:
• Casual players seeking spontaneous matches
• Amateur athletes looking for regular practice
Needs Active people who want to play sports struggle to find others, schedule games, and manage logistics.

Pain Points:
• Hard to find players nearby
• Poor coordination on time, location, and rules
• No central place to manage invitations and chat
Product A platform that connects people who want to play sports, making it easy to create, find, and join games nearby.
Centralizes everything ( players, time, and location) to remove coordination hassle.
Key Features Smart Match Discovery: Location-based games and player search
Easy Game Creation: Set up matches in seconds
Integrated Chat & Notifications: Seamless coordination
Reputation & Fair Play System: Ratings and feedback for trust
Business Goals Introduce premium plans by the end of year.
Build a trusted community of active, recurring users.

Domain Model

Domain Model

Figure 1 — Domain Model Overview


Technologies

Layer Technology
Frontend & Backend Blazor Server (.NET 9)
Runtime Hosting Azure App Service
Database PostgreSQL (Supabase)
CI/CD GitHub Actions
CI/CD GitHub Actions

Branching Strategy

Branch Environment Purpose
main Staging Used for integration and internal testing. Each push or merged PR triggers automatic deployment to the staging environment.
production Production Contains stable, production-ready code. Tagged versions (v*) trigger a production deployment and create a GitHub Release.

CI/CD Flow Summary

Develop branch (Staging)

Every push or merge into main runs:

  • Build & test (CI)
  • Deployment to the Azure App Service – Staging slot

Production branch

The production branch is always stable.

When a version tag (e.g., v1.2.0) is created on production:

  • CI builds and tests the code again
  • CD deploys it to Azure App Service – Production slot
  • A GitHub Release is automatically generated with release notes and the build artifact

User Stories

1. User Management

  • As a user, I want to create an account so that I can access the platform.
  • As a user, I want to login securely so that I can access my account.
  • As a user, I want to reset my password so that I can regain access if I forget it.
  • As a user, I want to delete my account so that I can permanently remove my personal data from the platform.

2. Profile & Preferences

  • As a user, I want to add a short bio so that others can understand my interests.
  • As a user, I want to upload a profile photo so that other players can recognize me.
  • As a user, I want to view other players’ profiles so that I can decide whether to join matches with them.
  • As a user, I want to set my preferred sports and skill levels so that I receive relevant match recommendations.

3. Match Management

  • As a user, I want to create a match so that I can find players to join my game.
  • As a user, I want to join an existing match so that I can play a sport without organizing it myself.
  • As a user, I want to see nearby matches so that I can choose a game close to my location.
  • As a user, I want to search for players nearby so that I can invite others to complete a match.
  • As a user, I want to see the skill level of a match so that I can choose games that match my ability.
  • As a user, I want to chat with participants in a match so that we can coordinate details before the game.
  • As a user, I want to share my live location via chat so that others can find the match location easily.
  • As a user, I want to view the match status (pending, confirmed, completed) so that I know the game’s current stage.

4. Notifications & Reminders

  • As a user, I want to receive notifications when someone invites me to a match so that I can respond quickly.
  • As a user, I want to receive reminders before a scheduled match so that I don’t forget to attend.
  • As a user, I want to be notified if a match is canceled so that I can adjust my plans.

5. Rating the Players

  • As a user, I want to rate players’ behaviour so that I can help maintain a positive and trustworthy community.
  • As a user, I want to view average player ratings so that I can decide who to play with.
  • As a user, I want to report inappropriate behaviour so that the platform can keep the community safe.

Clone this wiki locally