Uploaded by BEASTMASTER64

project

advertisement
Software Requirement Specification
TV Show Popularity Analysis
Team members:
Sibghatullah (45655)
Arshad Hakeem (46413)
Version
1.0
Date:
25/10/2021
1|Page
Content
1.
2.
Introduction:
3
1.1 Purpose:
3
1.2 Product convention
3
1.3 Intended Audience and Reading Suggestions
Developers:
Users:
System Administrators:
Technicians:
3
3
4
4
4
1.4 Product scope:
4
Overall description
4
2.1 Product perspective:
4
2.2 Product functionality:
•
Data Input:
•
Data Processing:
•
Data Output:
4
4
4
4
2.3 User Skills to Use the Application:
4
2.4 Assumptions:
4
3. Specific Requirements:
4
3.1 Functional requirements:
4
3.2 Non-functional requirements
5
3.3 User Interface:
5
3.4 Software Interface:
12
3.5 Hardware interface:
12
3.6 System Features:
13
4. Other Non-functional Requirement:
13
4.1 Performance Requirement:
13
4.2 Safety Requirements:
13
5. Documentation:
13
6. Conclusions:
13
7. Hardware and Software Requirements:
14
Software:
14
Hardware:
14
8. Running the Application:
8.1 Build and Deploy.
1. Build Assets for the Front end:
2. Build and deploy server:
3. Updating database
2|Page
14
14
14
14
14
1. Introduction:
Reality TV is the new mantra of television producers and channel executives. It is the means to increase
TRP ratings and the end is always to outdo the other channels and the “similar-but-tweaked here-andthere” shows churned out by the competition. Most of the television shows, which are being telecast
nowadays, are reality shows specializing in dancing, singing, and acting. Everything now is a
competition. So fierce is the competition in this segment that every channel boasts of at least two to
three reality shows. Some of them are inherited legally from abroad, (mostly and always from the USA
the Godmother of reality television) or some are cheap copies of the shows abroad. The Indian reality
shows have also been consistently successful in offering a wide variety. From Talent Hunt Shows, to
dance dramas, to acting flicks, talk shows, chat shows, cookery shows etc.
1.1 Purpose:
The purpose of This web application is to tell people which shows are worth watching and shows are
not. The users will be able to search through the database and look for the show that they searched.
Once they are presented with the actual show, they can see the average rating that the users gave to that
show. Along with average ratings for the whole show users also rate individual episodes of a show.
This helps the audience in deciding what to watch and what not to. Its easy to predict the quality of a
show with based on people’s ratings. The visitors will be able to get to know the show’s popularity too.
1.2 Product convention
Entire document should be justified
1.1.1 Convention for main title:
1.1.1.1 Font Face: Times New Roman.
1.1.1.2 Font Style: Bold.
1.1.1.3 Font Size: 28.
1.1.2 Convention for subtitle:
1.1.2.1 Font Face: Times New Roman.
1.1.2.2 Font Style: Bold.
1.1.2.3 Font Size: 14.
1.1.3 Convention for body:
1.1.3.1 Font Face: Times New Roman.
1.1.3.2 Font Style: Normal.
1.1.3.3 Font Size: 11.
1.3 Intended Audience and Reading Suggestions
The document is intended for the clients below:
Developers: The developers will be able to access the various features provided by the
application thus increasing the security.
3|Page
Users: Users are the actual people who are going to search for TV shows.
System Administrators: The system administrators will be able to manage the system.
Technicians: Technicians are people who will maintain the system and sort out any problems
that occurs in run-time.
1.4 Product scope:
This Web-app is responsible solely for the users to acquire Tv show Ratings. It will provide the users
credible information regarding the searched TV show.
2. Overall description
2.1 Product perspective:
The product is distributed but requires web server software to operate. It has two external
interfaces consisting of a configuration interface and a client interface. Both require the use
of a web-browser running on the client computer. The product is designed to run on existing
hardware software.
2.2 Product functionality:
•
•
Data Input: Data is going to be given in the input solely by the user.
Data Processing: Data processing will be based on first come first served. i.e., the first bit of
•
data to be entered in the system will be the first one to be processed.
Data Output: The Processed Data is going to be showed by the system to the user so that the
user can interact with the output.
2.3 User Skills to Use the Application:
The users of the system should be familiar with basic web apps and how to use it. The interface
is very minimal so the users will be able to use it with no problems if the users understood how
modern web applications work. The users will be presented with a search bar to search for their
TV shows.
The general characteristics of the users are:
•
•
All the users are computer literate
Knows how to use basic web applications.
2.4 Assumptions:
The system assumptions that relate to the requirements here are.
▪
▪
The system is meant to be run on a browser. It can be run on any operating system
The system is not supposed to exceed the stated budget since this may lead to omission of some
necessary requirements that are stated in this project.
3. Specific Requirements:
3.1 Functional requirements:
•
•
•
The system should show a search bar for users to search any show.
The system should show similar results to the tv shows that you search.
The system should show each individual tv show’s rating.
4|Page
•
•
•
•
The system should show each episode’s ratings.
The system should redirect us to the respective IMDB site when clicked on any episode.
The system should show the top 3 highest rated episodes and the top 3 lowest rated episode.
The system should also show the release date of the show.
3.2 Non-functional requirements
• Usability: The system should be easy to use by all.
• Availability: The system should be up and running whenever needed.
• Security: the system should provide controlled access to information while on transmission.
• Extensibility: The system functionality should be easy to extend to include features that will
unfold in the future.
• Evolution: The system should provide flexibility and production of new versions suited for new
environments and changing needs.
3.3 User Interface:
The User interface is very simple and easy to use. The home page shows the Logo of the
application and shows a search box to search for any series. By clicking the Go button we the
system reads the input and provides us the respective output.
5|Page
The search bar also provides the ability to show the suggested TV shows according to the word
you enter
After searching for a word, the application will show all the TV show with the word in it. In
this instance we can see that we have the word “game” in every search Result. The Tv show’s
name along with its release and end date will be mentioned in it.
6|Page
The users can also get access to the search bar in page too along with all its functionalities.
If you search for a specific TV show it will show that TV show only in the results.
7|Page
This interface will show up when you click on a specific show to look for ratings.
We can see that we have divided the interface in two columns. On the right side we have
information about the TV show and on the left side we have information about each single
episode. We have used IMDB’s API to get all the data. It ingests raw data from IMDB datasets
into a document store then allow users to search and display results as charts of episode ratings
over the entire run of the TV series.
On the right column we get the Poster of the TV show along with its name beneath it and
beneath that we have the release date and the end date of the series. Beneath all that we have
the rating of the show like in this instance we have the rating of 9.2 and in the brackets, we
have the number of reviewers.
After that the system shows the top 3 highest rated and lowest rated episodes along with its
rating and the name of the episode.
On the right column we have the actual ratings of the episodes in a chart form. The top number
represents the season number, and the left numbers represents the episode number. We can see
here that in season one of game of thrones we had 10 episodes and in season 8 we had 6
episodes only.
The green boxes represent episodes with good ratings, the yellow boxes shows episodes with
average ratings and the red boxes shows episodes with bad ratings.
8|Page
We have also integrated color blind option for users with the disability of color blindness.
The user is represented with the title of the episode when we hover on any episode’s rating
along with the number of votes.
9|Page
The interface is responsive and scales with any number of episodes.
Some of the other show’s screenshots are given below.
10 | P a g e
11 | P a g e
After clicking on the episode, the user will be redirected to the imdb page of the clicked episode
where the user can see for comments regarding the episode and play the clips of it too.
This is the About page.
3.4 Software Interface:
The application will fetch the data and display it to the user using the imdb API. All the TV
shows data is mined from the imdb servers.
3.5 Hardware interface:
Hardware contains the components that are used by the user to interact with the system either
in inputting or retrieving information
• The mouse will be used traverse through the application.
• The keyboard will be used to search for TV shows.
12 | P a g e
• The monitor will be used to show information inputted or retrieved by the user.
• The central processing unit will enable control of writing to and retrieving information from
the API.
3.6 System Features:
•
•
•
•
Search for TV shows
Select the TV show
Search for rating of each episode
Click on any episode to go to the imdb page.
4. Other Non-functional Requirement:
4.1 Performance Requirement:
• The web application will support simultaneous user access only if there are multiple
terminals.
• Only textual information will be handled by the software. Amount of information to be
handled can vary from user to user
4.2 Safety Requirements:
The server should be serviced regularly to ensure that it runs properly, and the data saved at
consecutive intervals. Power is a significant feature and Uninterrupted Power Supply always
on standby incase power surges or blackouts that could cause fire breakages or loss of data.
Other risks or harm that can result from usage of the system are:
• Back and neck pain and discomfort caused by maintaining an unnatural or unhealthy
posture while using the computer.
• Eye strain resulting in visual fatigue, burning and watering eyes, headaches and frequent
changes in prescription glasses.
• Precautions to be undertaken to avoid the problem:
• Taking regular breaks from the working area.
• Positioning mouse and keyboard at same level.
• Adjusting your monitor brightness.
5. Documentation:
The system shall have its relative documentation on how to install, operate and trouble shoot it
in case of any problems. This will also assist in case new users are brought into the system and
when programmers change.
6. Conclusions:
TVCharts is a simple frontend/backend application with an API and multi-container deployment.
It ingests raw data from IMDB datasets into a document store, then allows users to search and
display results as charts of episode ratings over the entire run of a TV series.
Following technologies are used to make the application.
13 | P a g e
•
•
•
•
•
React / Redux
NodeJS / Express
MongoDB
Nginx / letsencrypt
Docker
7. Hardware and Software Requirements:
The resources required for the completion of this project are: -
Software:
•
•
•
•
Browser
Docker
Node JS
Yarn or npm
Hardware:
•
•
•
Mobile device or PC that can use a browser.
At least 1GB Ram.
At least 20GB storage.
8. Running the Application:
8.1 Build and Deploy.
1. Build Assets for the Front end:
Run the following code in the terminal of the code editor.
$ cd client
$ cp .env.example .env
$ yarn install
$ yarn build
2. Build and deploy server:
For the server/.env you will need to get OMDB_API (http://www.omdbapi.com/apikey.aspx) key to
display images. It’s a free, one click signup. The application will still work without it, but all the
images will be placeholders and it won’t look so good.
$ cd server
$ cp .env.example .env
$ docker-compose build
$ docker-compose up
If you used the default settings in .env, then you should see the site at http://localhost
You can start testing while the data is still loading in, but all of the episode data won’t be available
until docker logs data shows “all done.”
3. Updating database
Since we rely on IMDB datasets as our source of information we can just drop the database and
recreate it every time.
## Re-load database from IMDb datasets
$ docker restart data
Alternatively, you can also use “docker-compose up -d data”
14 | P a g e
Download