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!
Name: Mittun Sudhahar
Student number: 47023983
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.
An organiser of a social game wishes to advertise their game in the nearby region, and then contact players on game day:
organiser
account (assuming this has already been created).A new participant wishes to create an account, and then search for games nearby occuring on the weekend:
participant
account using the authentication service.We can broadly split the functionality into a range of business domains that need to be modelled in software by services:
Authentication
Users need to be able to register both as organisers or participants - with verification of identity for security purposes.
Game Creation
Organisers need to be able to create games, specify the number of players and cost, specify the location and specify other features such as skill level and time etc.
Location Service
The app will require a geospatial service integrated to search by proximity, and direct players to their venue.
Game Discovery
Users need to be able to set search parameters for sport, location, cost, skill level, time frame etc. to search for upcoming games that satisfy their criterion. They then need to be able to select and view any particular game.
Game Registration Players need to be able to register for a selected game and then communicate with the organiser via the communication service.
Player-Organiser Communication
Match organisers can send updates, notifications, and direct messages to participants. Participants also need to be able to send messages to the organiser with any questions they may have.
Automated Payments
Securely collect payments. Organisers should be able to input cost per player and the number of players. Ideally this would be outsourced to an external 3rd part service.
Player Profiles & Ratings
Users can create their own profile for their skill level, location and other preferences. They can also have a rating which is used to determine which games are shown to them (and similarly for organisers which players their games are shown to).
Match Reminders & Cancellations
Automated notifications ensure participants stay informed, with refund policies for cancellations. This should also be integrated with the communication service.
The core functionality required for an MVP is as follows:
Authentication and Onboarding
Account creation and verification for both participants and organisers is a key feature. Organisers will need to complete identity verification.
Location Service
The location service must be part of the MVP to be able to filter game suggestions by location, and provide rendering of maps to direct players to their venue.
Game Creation
Organisers can create social games on the app - specifying locations and costs.
Game Discovery
Users should be able to find available games in their sport of choice.
Game Registration
Users should be able to register for a selected game.
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.
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.
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.