project-proposal-2025

SportMate: Play Anytime, Anywhere

Abstract

Tired of struggling to organise casual sports games? SportMate makes it easy to set up, join, and manage social sports matches across multiple sports. Whether it’s booking a court, collecting payments for venue hire, or finding players to fill your game, our app handles it all. Organisers can easily communicate with participants, while players can discover and join games near them with just a few taps. Travelling in a new city and wanting to play sport is no longer an issue - log into SportMate and find a game near you!

SportMate is a global solution for social sport. No more back-and-forth messaging or last-minute dropouts—just seamless, stress-free sports, whenever and wherever you are!

Author

Name: Mittun Sudhahar

Student number: 47023983

Functionality

Overview

SportMate is an all-in-one platform for organisation and participation in social sport games. To this end, we require a range of business domains (and xthus services) for this application to function appropriately. First, let’s run through a potential use case from the perspective of both an organiser and participant.

Scenario 1: Organiser

An organiser of a social game wishes to advertise their game in the nearby region, and then contact players on game day:

  1. Log in via an organiser account (assuming this has already been created).
  2. Access the game creation service to input a game with a particular cost per player, the number of players and the location/venue and which sport.
  3. The game discovery service would then advertise the game to players nearby (geo-spatially) and the payment service would collect payments from players.
  4. The communication service would enable organisers to send notifications to players and respond to individual queries if needed.
  5. Finally, after the game is played the organiser can rate the players as to their reliability in coming to the game (and in further iterations of the app this information could be used to match up more reputable organisers with more reputable players).

Scenario 2: Participant

A new participant wishes to create an account, and then search for games nearby occuring on the weekend:

  1. Download the app and create a participant account using the authentication service.
  2. Complete onboarding including providing name, contact details and location.
  3. Search through the game discovery service for games that are nearby geo-spatially and filter by those on the coming weekend.
  4. Select a game, register to play and make a payment via the payment service.
  5. Receive communication from the organiser and ask any questions via the communication service.
  6. Travel to the game, directed via the location service.
  7. Play the game and rate the organiser/write a review.

Business Domains:

We can broadly split the functionality into a range of business domains that need to be modelled in software by services:

Scope

The core functionality required for an MVP is as follows:

Payment systems aren’t required for an MVP - we can assume all games are free. A messaging service also isn’t necessary for an MVP - this can be simplified to adding contact details onto user profiles which can be shared appropriately upon game registration. Player profiles and automated reminders are also unecessary for an MVP.

Quality Attributes

The key quality attributes for the MVP are Availability, Interoperability and Modularity.

Availability
SportMate must be available on demand globally, ie, in all regions and times, on any platform, maximise uptime/minimise downtime and be fault tolerant.

Deployability
SportMate is intended as a global solution for social sport - as such it needs to be deployable across multiple regions worldwide. Updates, rollbacks and new deployments need to occur fast and across different environments with minimal downtime.

Security
SportMate needs to handle payments to and from organisers, and as such needs to protect private personal and financial data. In addition, SportMate will be encouraging users to congregate physically, and hence needs to ensure that players are paired with reputable organisers to ensure their safety.

Evaluation

Automated testing scripts and user testing should be satisfied to ensure base functionality (registering games, registering to play, creating accounts) is satisfactory.

Availability
Uptime can be measured via AWS CloudWatch. Failure recovery and redundancy testing should also be performed to ensure systems can still stay active in the event of critical service failure.

Deployability
Deployability testing can be performed by testing deploying in new regions and qualitatively assessing the ease of doing so. In addition, configuration testing and testing of CI/CD pipelines can be completed, as well as measuring deployment speed and speed of reverting to old version of the codebase.

Security
Secure authentication and role based access needs to be verified. Penetration testing, static security analysis and security logging should be conducted. All data in transit should be encrypted.