Software Requirements Specification (SRS) - CankayaUniversity/ceng-407-408-2021-2022-Game-Recommendation-System-using-Machine-Learning-Algorithms GitHub Wiki

1.INTRODUCTION

1.1 Purpose

The purpose of this project is to design a recommender system that recommends video games to help users to see more similar games to their taste. After the user registers, the system shows the user a few game types and lists the games they may like according to the user's preferences. The user rates the games they played and liked before. In this way, the system can find games that are closest to the user's style. Our main purpose in this document is to explain the requirements and functions of our project. This system is going to be designed as a mobile application. Our mobile application is called ‘RecoSystem’. Our goal is to find users that have drowned to find games. This topic is not just related to game industries, it is a general problem of many industries such as, movies, music, videos, etc.. The system will have core statistics about users and start recommending games. Each user will have a profile of their own where they can rate the recommended games, add a profile picture, etc.

1.2 Scope of the Project

The purpose of this project is to suggest games using certain algorithms based on games that people play and like. This system aims to help improve user interactions with the similar games that they have played before. With this system, the time it takes to get personalized advice will be reduced. With this system we aim to bring the feature to the Android platform in which users can access the application more easily. The project will contain specific Machine Learning algorithms to match the users history of played games. First of all, the system will ask the user to choose game genres the user likes. Then, the system will start suggesting games using machine learning algorithms based on the data, which is based on the preferences of other users, and is similar from the database that we will create for the application to the information with the current user. In addition, users can rate the games the user has played and liked before, so the system will be able to make better suggestions. The application will be released to Android platforms.

1.3 Glossary

Term Definition
App Application
User The person using and interacting with the system.
AI Artificial Intelligence
ML Machine Learning
Android Android is a mobile operating system which is based on a derived Linux kernel. [1]
Python Python is an interpreted high-level general-purpose programming language.[2]
Firebase Database The Firebase Realtime Database is a cloud-hosted NoSQL database that lets you store and sync data between your users in real time.
React Native React Native is an open-source UI software framework created by Meta Platforms, Inc.[3]
GUI Graphical User Interface
API API is an interface that utilizes communication between two clients [4]

1.4 Overview of the Document

This document is prepared in accordance with the IEEE Std 1016-2009 [5], IEEE Recommended Practice for Software Requirements Specifications [6]. This document has three main headings. The first main topic is Introduction. The introduction simply explains the main purpose of this project in general. The second main title is the Overall Description. This section considers the determining factors that influence requirements. The third part is Requirements Specification, it contains all the requirements of the system, design constraints etc.

2. OVERALL DESCRIPTION

2.1 Product Perspective

RecoSystem is developed with machine learning algorithms to recommend games which will be implemented using Python. It will be designed as a mobile application. The development of the RecoSystem application will be implemented with React Native. For the database Firebase Database will be used.

  • Users register to RecoSystem.
  • RecoSystem will ask users to rate the games on a scale of 1-5 to see if they like the games. 5 means a like, 1 means a dislike at all.
  • RecoSystem will check its data about the games user rates, checks related games accordingly and, based on the algorithm gets the best results.
  • RecoSystem will use the Python Pandas Data Analysis Library to check its datasets, and display recommendation algorithm results.
  • RecoSystem redirects the user to the recommendation page which is the outcome of the algorithm.
  • RecoSystem will also show users the TOP10 most liked games to help users what the community is rating best.
  • RecoSystem shows the user all the games the user can like, decreasing accordingly. Also shows users the Top 10 games most liked.
  • If the user views game profiles they can see the games description and photos.

2.2 User Characteristic

2.2.1 User

  • Users must be familiar with mobile phones.
  • Users will have to use an Android phone and download the application in order to access the system.
  • Users must have an internet connection.
  • When users register, they can choose the games they like.
  • Users can rate the recommended games.
  • Users can navigate through sections like homepage, game profile.

2.2.2 System

  • System provides model with algorithm.
  • System checks clock.

2.3 General Constraints and Assumptions

RecoSystem will be available to everyone with a mobile phone and an internet connection. The system will be released for android phones. Users must have an android phone. It will be assumed that users will have an internet connection. Internet connection is a restriction for the system.

3. REQUIREMENTS SPECIFICATION

3.1 External Interface Requirements

3.1.1. User Interfaces

The user interface of our application will be in English. However, in later versions there will be multiple language selection options. The system will be quite understandable and easy to use. RecoSystem will be necessary for users to register and login to the application. There will be a home screen, recommendation page, and a game profile section.

3.1.2. Hardware Interfaces

Mobile phones support 5.1 lollipop and higher and IOS version is to be decided.

3.1.3. Software Interfaces

The application will run on Android, Python ML libraries will be used.

3.1.4. Communications Interfaces

The user must have an internet connection and an android phone.

3.2 Functional Requirements

Use Case Diagram

Use Case Number 1
Use Case Name Login
Summary User logs in the system.
Actor User
Trigger Login button clicked.
Precondition Actors must be connected to the internet. Actors must have an android phone. Actors must download the application. Actors must be registered.
Scenario User enters already existing username and password. Click Login button.
Exceptional Situations & Alternative Flow The actor’s phone may not be connected to the Internet. Server could be under maintenance. The actor entered an incorrect username or password. There is no account with the entered username.
Postcondition If it is the first login of the actor, it is directed to the first time login screen. If it's not the actor's first login, redirects to the home page.
Use Case Number 2
Use Case Name Register
Summary Actor registers to the system
Actor User
Trigger Register button clicked
Precondition Actors must be connected to the internet. Actors must have an android phone. Actors must download the application.
Scenario Actors must enter information such as username, age, gender, email, password, and location. The actor must re-enter the password for verification purposes. Email verification link will be sent to the actor. Actor registers to the system after clicking on the link.
Exceptional Situations & Alternative Flow The actor's phone may not be connected to the Internet. Server could be under maintenance. The email or username entered by the user has been used before.
Postcondition Actors redirect to the login page.
Use Case Number 3
Use Case Name Choose Liked Games
Summary Actors choose the games they have played and liked at the first login after registration
Actor User
Trigger After first time login
Precondition Actors must be connected to the internet. Actors must have an android phone. Actors must download the application. Actors must be registered. Actors must login to the system for the first time.
Scenario The first time screen appears when the actor logs into the system for the first time. Actor sees the names and pictures of many games on the screen. Actor chooses the games he has played before and likes. Clicks the Next button.
Exceptional Situations & Alternative Flow The actor’s phone may not be connected to the Internet. Actor must check the internet connection. Server could be under maintenance. Actor must restart the application.
Use Case Number 4
Use Case Name Search for Games
Summary Actors write the keywords for the game they are looking for.
Actor User
Trigger Actors click on search bar.
Precondition Any keyword must be entered before pressing Search button.
Scenario Actors get into the home page. Actors click on the search bar and write keywords for the game they are looking for and click the Search button. Any games matched with keywords are shown.
Exceptional Situations & Alternative Flow If there is nothing entered, and clicked search, nothing happens.
Postcondition System finds and shows Actors the games they searched.
Use Case Number 5
Use Case Name Rate the Games
Summary Actors rate the games scaling from 1-5.
Actor User
Trigger Actors click on stars on the game’s profile.
Precondition -
Scenario Actors find the game they want to rate. Actors click on the game and enter the game’s profile. Actors choose how many stars they want to give to the game ranging from 1 to 5. Actors click on the star they want to give.
Exceptional Situations & Alternative Flow If actors are already rated but want to change the rating, they can click on stars again with a different star chosen.
Postcondition Rating to a game has given ranging from 1 to 5 by Actors.
Use Case Number 6
Use Case Name Check Recommended Games
Summary Actors check the recommendation page to see recommended games.
Actor User
Trigger Actors click on the Recommended Games page.
Precondition Actors chose liked games when they first login.
Scenario Actors click on the Recommended Games page button from the home page. Actors can see recommended games that algorithm has provided.
Exceptional Stiuations & Alternative Flow -
Postcondition Actors can see recommended games.
Use Case Number 7
Use Case Name Create Model
Summary System recommendation algorithm creates model
Actor User, System
Trigger After Actors’s first time login process ends.
Precondition First time login.
Scenario Actors first time log in. After Actors chose liked games, algorithm creates model.
Exceptional Stiuations & Alternative Flow If no user has logged in yet, Algorithm uses raw dataset to create model.
Postcondition Model created for recommending games.
Use Case Number 8
Use Case Name Update Model
Summary Every 24 hours System updates model.
Actor System
Trigger Every 24 hours at 12am
Precondition A model has been created before.
Scenario System checks if the clock is 12am. System considers last 24 hours datas to update the model.
Exceptional Stiuations & Alternative Flow Even though no new data processed last 24
Postcondition New model created based on the old model.
Use Case Number 9
Use Case Name Get Recommendations
Summary User views the recommendations.
Actor User
Trigger View Recommendation Page
Precondition Actor clicks the recommendation page by button of the home page.
Scenario Actor logs in to the system. Actor clicks on the recommendation page from the button of the home page.
Exceptional Stiuations & Alternative Flow -
Postcondition Actor can view recommended games

3.3 Software System attributes

3.3.1. Portability

RecoSystem is designed for the devices Android version 5.1(Lollipop) and above, so RecoSystem can work for new versions of the Android platform.

3.3.2. Usability

  • Software should be able to let users see images clearly.
  • Software should be able to let users rate

3.4 Safety Requirement

For security reasons, users can not access the database or add new games to the app.The users must choose at least 8 characters long, must include alphanumeric and special characters

4. References

[1] Wikipedia: Android (operating system),(2021, Dec 6). https://en.wikipedia.org/wiki/Android_(operating_system) [2] Wikipedia: Python (programming language),(2021, Dec 7). https://en.wikipedia.org/wiki/Python_(programming_language) [3] Wikipedia: React Native,(2021, Nov 15). https://en.wikipedia.org/wiki/React_Native [4] MuleSoft: What is an API? (Application Programming Interface) (2021). https://www.mulesoft.com/resources/api/what-is-an-api [5] "IEEE 1016-2009 - IEEE Standard for Information Technology--Systems Design--Software Design Descriptions", Standards.ieee.org, 2020. [Online]. Available: https://standards.ieee.org/standard/1016-2009.html. [Accessed: 08- Dec- 2021]. [6] "IEEE 830-1998 - IEEE Recommended Practice for Software Requirements Specifications", Standards.ieee.org, 2020. [Online]. Available: https://standards.ieee.org/standard/830-1998.html. [Accessed: 08- Dec- 2021].