GameSync
Abstract
Ever wonder what makes you decide to buy a new video game? Is it the game’s player reviews, media ratings, or are you just waiting for its lowest price in history? Maybe you’ve already set your sights on a game, but you have no idea which platform offers it at a lower price.
GameSync is an application that sends you game discount alerts based on your preferences and compares prices across different platforms. The application will push the most popular discounted games as well as those at their historical lowest prices, so you don’t have to log into different platforms to compare prices. Its game detail pages will display user reviews from various platforms and also allow users to comment directly on the page, helping users quickly gauge others’ opinions on the game. While the app is free for regular users, it supports paid promotions from game publishers.
Author
Name: Yuhan Wang
Student number: 48428660
Functionality
The system offers video game players a platform to discover game discounts and compare prices. It also enables players to share their opinions on games. Additionally, certified game publishers can pay to promote their titles.
Features
The features that the software system should have are:
- Account:
- Users are divided into players and game publishers.
- New player signup and verification via the SPA web application.
- New publishers need to select a publisher account on other platforms and provide verification materials.
- Players can link their accounts from other platforms and set their preferences.
- Players can verify their content creator status, such as media professionals, YouTubers, or streamers.
- Users can edit or reset their basic account information, such as their username and password.
- Game Search:
- Players can search for games using keywords in game titles.
- Players can search by filtering using categories (Action Games, Adventure Games, etc.).
- Recommendation:
- Players can view the games recommended by the system.
- Promote games based on recent bestsellers and publishers’ promotional needs.
- Discount:
- Players can view information about discounted games, including game covers, titles, prices, discount percentages, and platform icons where the games are on sale.
- Players can view games that are currently at their historical lowest prices.
- Players can view upcoming game discounts.
- Players can view games with discounts that are about to end.
- Reviews:
- The system collects player feedback for games from multiple platforms, including both ratings and reviews.
- Recalculate game ratings based on new standards.
- Display reviews from other platforms and label their source.
- Players can submit their ratings and reviews for the game.
- Payments:
- Game publishers can pay to promote their games.
Overview of flows
- Players
- Signup -> Verification -> Browse the homepage
- Login -> Browse the homepage ->
- Search games -> Select game matching the keywords -> Browse the game detail page
- Select game categories -> Browse the category page -> Browse the game detail page
- View/Select recommended games -> Browse the game detail page
- View/Select games at their historical lowest prices-> Browse the game detail page
- View/Select on sale games -> Browse the game detail page
- View/Select games that are about to go on sale -> Browse the game detail page
- View/Select games with discounts ending soon -> Browse the game detail page
- Browse the game detail page ->
- Browse game stores on third-party platforms
- View others’ reviews
- Write/Submit reviews
- View/Edit personal information
- Publishers
- Signup -> Submit verification files -> Verification Passed -> Browse the Publisher page
- Login -> Browse the publisher page ->
- View/Edit publisher information
- Select/Purchase promotional services
Scope
The MVP should include the following fundamental features:
1.Account:
- Players and publishers have different login interfaces and APIs. Build an SPA web application that allows users to log in, assuming they have already completed the registration and verification process.
- Users can edit their basic personal information.
2.Game Search:
- Use third-party APIs to fetch game information, including discounts, from at least two different platforms.
- Players can search for games using keywords.
3.Recommendation:
- Display games based on publishers promotional requirements.
4.Discount:
- Display games based on the retrieved discount information.
5.Reviews:
- Players can edit and post reviews.
6.Payments:
- Publishers can view their own payment information but payments are not necessary for this MVP.
Quality Attributes
1.Scalability:
- Scalability is necessary for GameSync. This means the system can handle a large number of concurrent users and requests. It also requires the system to efficiently process vast amounts of game data from other gaming platforms and handle price changes effectively.The system needs to automatically scale up and down based on actual conditions.
- Gaming platforms periodically hold promotional events. During big sales, traffic may increase significantly. Load testing tools can be used to simulate sudden traffic surges, ensuring that the system can dynamically support increased user requests without performance degradation.
2.Modularity:
- Modularity is also an important attribute for GameSync. Independent development, testing, and operation of each module ensures that issues in one module won’t affect the normal operation of others, reducing the risk of system-wide failures. As gaming platform APIs and standards may change over time (such as updates to Steam or Epic APIs), modular design enables the system to adapt to these changes more easily.
3.Reliability:
- Reliability is equally crucial for GameSync. The system should ensure consistency between discounts in its database and those on other platforms. This means users will always see the most current and accurate pricing information on GameSync, without discrepancies from the actual situation. Games from different platforms should not be treated as separate games, as this would confuse users.
- Data reliability can be ensured through live testing and functional testing. The system can be further optimized through feedback from logs.
Evaluation
1.Scalability:
To evaluate the system’s ability to handle high loads, tools can be used to simulate different user volume levels. Gradually increase the number of virtual users and record changes in system response times. Key metrics can also be established, such as page loading times not exceeding 2 seconds with 5,000 concurrent requests. Systems that meet these key metrics will be considered to have good scalability. Additionally, scenarios of traffic surges and decreases can be simulated to check whether changes in system instances remain consistent with changes in request volumes.
2.Modularity:
Each module needs to have a clear and unique definition, such as the data collection module being responsible for obtaining price and discount information from various gaming platforms, while the search and filter module provides game search and categorization functions. Interfaces between modules should be simple. Analyze the degree of interdependence and interaction between modules to ensure they are loosely coupled. Check the degree of close association between different parts within each module to ensure they are highly cohesive. Evaluate whether each module correctly achieves its intended effect.
3.Reliability:
Test the system’s performance under different loads, ensuring all test requests are correctly processed. Test whether price and discount information updates in real-time, with price changes reflected in the user interface within 5-15 minutes. Evaluate if the system continues to display data from other platforms when a particular gaming platform API is unavailable. Analyze whether the same game is mistakenly treated as two different games due to different sources.