Abstract
In the digital age, the gaming industry is booming, and console game enthusiasts need a comprehensive and convenient platform to obtain game information, exchange tips, and find purchase channels. However, there is a lack of comprehensive software in the market that integrates all these functions, which makes console gamers often feel confused and inconvenienced when obtaining information and communicating with each other.
Therefore, we have launched a new console game information platform, which aims to provide gamers with a one-stop service to solve all their needs. From game release information to professional ratings, to user reviews and second-hand transactions, our platform covers all key points in the life cycle of console games. Users can easily browse game information, share their experiences and find a suitable price for their games through our system.
Author
Name: Zian Huang
Student number: 46793850
Functionality
User Login and Registration: Users can login and register in various ways, including username, email, social media, mobile verification code, and two-factor authentication.
User Ratings and Reviews: Users can rate and write reviews of games after they are released. These ratings and reviews will be displayed on the game’s information page, and ratings from other authoritative game rating sites (e.g., IGN, Metacritic, GameSpot, etc.) will be integrated to provide a comprehensive review of the game.
Search Function: Provides powerful search function so that users can quickly find the games they are interested in, supporting filtering and searching by game name, genre, release date and other conditions. Users can get game-related data, including the game’s release date, price, producer, publisher, rating, official website, other user reviews and other information.
Game Collection Function: Users can add their favorite games to the wishlist for easy viewing or purchase later. Moreover, users can add purchased games to the game library in order to manage puchased games, write reviews and ratings, and post second-hand deals.
Community communication function: Provide game community function, allowing users to post various creative content including game tips, strategies, pictures, videos. Users can interact with each other in various ways, including commenting, retweeting, liking and so on. Creative content can also be shared to other social platforms. In addition, it also realizes the function of private messaging between users, which is convenient for communication and interaction.
Push game information: Push the latest game information in time, including future game release information, game company related information, offline activities and so on. Notifications are sent to users via email and in-software messages.
Purchase Channel Recommendation: Provide users with a variety of game purchase channel recommendations, including online game stores, physical game stores, etc.. The electronic version of the game will show the historical price of the game on the corresponding platform. The physical version of the game will show the price according to the selling price of different offline physical game retailers. At the same time, the platform also provides used game trading services to extend the service life of the game.
Scope
The fundamental functionality for the MVP included in this system as shown below:
User Login and Registration Functions: Implement basic user registration and login functions, including registration and login via user name, email address, etc.
User ratings and reviews: Allow users to rate the game and write reviews after the game is released. These ratings and comments can be displayed on the game information page, but do not integrate data from other game rating sites for the time being.
Basic Search Functionality: Implement basic game search functionality, allowing users to search by game name and displaying basic information about the game, such as release date, price, ratings, and so on.
Basic Game Collection and Sharing Function: Allows users to add their favorite games to the Wishlist and Game Library, making it easy to manage existing games and collect games of interest.
Basic Community Communication Function: Implements basic game community functions, allowing users to post game tips, strategies and other creative content, and to comment and interact with other users.
Game Information Push Function: Send the latest game information to users by email or in-software message push, including future game release information and game company related information.
Basic purchasing channel recommendation function: displaying the purchasing channels of electronic and physical games, including the historical prices of electronic games and the prices of physical games in different offline physical game stores. Second-hand game trading service is not included.
Quality Attributes
Scalability:
- The software should be designed to be extensible to allow for future functionality expansion and updates based on user needs and market changes. For example, it can be extended by adding new game data sources, introducing more community features or expanding purchase channel recommendations.
- Modular architecture and microservice architecture should be taken into account in the design in order to split different functions into independent modules, making it easier to integrate and update the added functions.
Reliability:
- The user login and registration system should be highly reliable to ensure the security of users’ personal information and accounts.
- Rating and commenting functions need to ensure data accuracy and consistency, as well as effective prevention and handling of malicious attacks and abuse.
- The search function should return relevant game information quickly and accurately, independent of the amount of data and the number of users.
- The community communication function needs to ensure that users can post content, interact and communicate smoothly, while user-generated content is properly managed and monitored to maintain community order.
Availability:
- The software should always be available and users should be able to log in and use the software’s features at any time of the day or night.
- The use of cloud deployment improves the availability of the software and ensures that even in the event of server failure or maintenance, users will still be able to access the software through alternate servers or other nodes.
- Regular ping tests will be conducted to ensure that the network connectivity of the software servers is working properly and that users can connect to our services in a stable manner.
- Simulate a large number of users accessing our software at the same time using some specialized load testing tools such as Apache JMeter, LoadRunner, and Gatling to evaluate the performance of the system under high load and stress. This will help us determine whether the system can remain stable in the face of high traffic and respond to user requests in a timely manner.
- Simulate different types of errors and failure scenarios, such as server failures, network outages, or software crashes, to test the system’s fault tolerance and recovery mechanisms. Through these tests, we can evaluate whether the system is able to automatically switch to a backup server or a failed node in the event of a problem to ensure that user access is not affected.
- Adopt a redundant deployment strategy to ensure high system availability through backup servers and data redundancy. In addition, we will implement an automated failure recovery mechanism to quickly restore the system to its normal operating state and minimize service interruption for users.
Security:
- Secure and reliable authentication mechanisms, such as encrypted password storage and two-factor authentication, should be used during user login and registration to protect users’ personal information from being leaked or tampered with.
- The rating and commenting functions need to prevent users from posting false information or maliciously attacking other users, which can be done through auditing mechanisms, content filtering and user reporting to ensure the security of the platform content.
- Encryption technology should be used during data transmission to prevent sensitive information from being stolen or tampered with during transmission.
- For the purchase channel recommendation function, it should be ensured that the recommended purchase channels are real, safe and reliable, and that users will not be subject to security threats during the purchase operation.
Evaluation
Scalability:
- Monitor the effectiveness of the system’s modular and microservices architecture and assess the feasibility and efficiency of integrating and updating new functionality. As well as the performance of the system as the load increases.
- Track the system’s feature expansion history, documenting the number and complexity of new features added.
- Gather user feedback and requirements to assess whether the system meets user expectations and analyze the need for further functionality extensions.
Reliability:
- Implement system stability tests, including load tests, stress tests and failure recovery tests, to assess the stability and reliability of the system under different conditions.
- Monitor the performance and security of the user login and registration system to assess whether user data is protected and document any security breaches or potential threats.
- Regularly review the data of the rating and commenting system to check for any anomalies or inconsistencies and take appropriate measures to fix and prevent them.
Availability:
- A monitoring tool to track the uptime of our gaming software, i.e. the percentage of time the system is in a usable state. We will set target system uptime and regularly monitor whether the system meets these targets.
- The performance monitoring tools will be used to measure the response time of our systems, including the average response time to user requests, the maximum response time, and the throughput of our systems. We will set response time goals and evaluate whether the system meets these goals based on actual performance data.
- Monitor the error rate of the system, including the failure rate of user requests, the system error rate, and the frequency of failures. Also, we will evaluate the system’s failure recovery time, which is the time it takes for the system to return to normal operation from the time a failure occurs. We will set targets for error rates and failure recovery times and evaluate system performance based on actual data.
- Collect user feedback and conduct satisfaction surveys on a regular basis to understand user perceptions and evaluations of system usability. We will evaluate the usability of the system based on user feedback and satisfaction survey results and make improvements and optimizations as needed.
Security:
- Conduct security vulnerability scanning and penetration testing to assess the security and vulnerability of the system and fix any vulnerabilities found.
- Implement tests for authentication, authorization mechanisms, and data encryption to ensure the security of users’ personal information and accounts, and assess the system’s ability to prevent malicious attacks and abuse.
- Regularly review the system’s encryption technology and data transmission policy, assess whether there are risks during data transmission, and update security measures in a timely manner to address new security threats.