SRS Template

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 13

Software Requirements Document for OneMusic

TEAM:​ OneMusic / SD2


​AUTHORS:​ Jason Seo, Ruben Arias,
Saad Ammari, Zach Gorman

Versio Date Author Change


n
0.1 4/23/20 ZG Created document
1.0 4/29/20 SD2 Formalized document
1.1 5/6/20 SA Added Screen Flow, Screenshots and fixed up comments by
Dr. Mitra

SRS DOCUMENT Introduction Page 1 of 13


Table of Contents
1 Introduction 3
1.1 Purpose 3

1.2 Scope 3

1.3 Definitions, acronyms, abbreviations 3

1.4 References 3

2 Overall Description 4
2.1 Product Perspective 4

2.2 Product functions 6

2.3 User characteristics 19

2.4 Constraints 19

2.5 Assumptions and Dependencies 19

3 Specific Requirements 20
3.1 External Interface Requirements 20

3.2 Features 20

3.3 Performance requirements 20

3.4 Design Constraints 20

3.5 Software System Attributes 20

3.6 Other Requirements 21

SRS DOCUMENT Introduction Page 2 of 13


1 Introduction

1.1 P​URPOSE
The purpose of this document is to establish how the application should interact with the end user,
and establish all application requirements functional, and non functional. Once finalized, this
document will state what must be accomplished for the application to be considered finished.

1.2 S​COPE
This SRS covers a number of potential use cases that users may encounter, as well as an overview
of the project and its intended uses. It also includes information on the project’s UI sketches, but
the primary purpose is to give detailed descriptions of anticipated use cases.

1.3 D​EFINITIONS​, ​ACRONYMS​, ​ABBREVIATIONS

Term Description
AWS A public cloud offering by Amazon.com that stands for Amazon Web Services
EC2 AWS’ virtual computing environments (i.e. servers optimized for a
computational load). EC2 stands for Elastic Compute Cloud
RDS Relational Database Service. AWS’ virtual database environments (i.e. servers
optimized for database usage).
UI/UX User Interface / User Experience
MVC Model-View-Controller – Design pattern commonly implemented in
object-oriented programming for use in web development
JS The JavaScript programming language.

1.4 R​EFERENCES
https://aws.amazon.com/what-is-aws/?nc2=h_ql_le_int

SRS DOCUMENT Introduction Page 3 of 13


2 Overall Description

Within the last two decades, music streaming has overtaken other means of listening to music (e.g.
purchasing records, CDs, and/or MP3 files from online music services). This being the case, many
different streaming services have come to fruition, and different artists have chosen to release their
music on different platforms. The goal of this platform is to allow easy access to songs on any
platform by allowing users to create, and seamlessly listen to, playlists of songs from any and all of
the available streaming services.

2.1 P​RODUCT​ P​ERSPECTIVE


“Free Your Music” - A service to migrate playlists from one streaming service to another
“Samsung Music” - Integrates purchased music stored on the device and Spotify

2.1.1 Concept of Operations


The main purpose of this app is to improve the ease in which you can access music from a
variety of platforms. This is done by having a single web page that can host multiple different
streaming services and thus simplify the whole process of listening to music on different platforms.
Users would be able to pull in their favorite songs off the platforms they use and then put them
together in a multi-platform playlist, allowing for a simple listening and sharing experience.
This web application would be hosted, both front and backend, on Amazon Web Services
(AWS). AWS is the world’s most advanced and used Cloud platform, offering a large number of
services that are powered by data centers around the globe. It covers millions of different
customers, ranging from simple startups to important government agencies for many different
reasons, which include lowering operating costs, improving project structure and workflow. We
believe that AWS will allow OneMusic to run at the highest standards necessary for a professional
web application, allowing for impeccable security standards, incredible running speed and virtually
unlimited scalability.

SRS DOCUMENT Introduction Page 4 of 13


2.1.2 Major User Interfaces (Screen Flow Diagram of all pages in website)

2.1.2.1 Example Screenshot and description

Main Landing Page with Playlists and your respective options:

SRS DOCUMENT Introduction Page 5 of 13


Music Playing page for the playlists:

Youtube Song page:

Spotify Song Page:

SRS DOCUMENT Introduction Page 6 of 13


2.1.3 Hardware Interfaces
Any device that supports a web browser and current standards of HTML, CSS, etc

2.1.4 Software Interfaces


Javascript support for browsers must be enabled to allow for API calls and frontend usage.

2.2 P​RODUCT​ ​FUNCTIONS

These use cases describe the steps that a user would do to create playlists, login to their preferred
platform, add music and then play the selected playlist.

2.2.1 UC-0
User creates a playlist.
Main scenario:
1) User navigates to the OneMusic website.
2) User clicks on the “Create Playlist” tab.

SRS DOCUMENT Introduction Page 7 of 13


3) User is prompted to first enter the playlist name, and a description of the playlist.
4) Users can then search songs, and add them to their created placelist.
5) Playlist is then created and then the user is redirected to the front page.

2.2.2 UC-1
User wants to edit a playlist’s information.
Main scenario:
1) User navigates to the OneMusic website.
2) User clicks “Edit Playlist” button.
3) User enters a new playlist name and/or description.
4) User clicks “Save Changes” button, and then is redirected to the front page.

2.2.3 UC-2
User wishes to play the songs on a playlist.
Main scenario:
1) User clicks on a playlist on the home page (that has been created beforehand by the user or
someone else).
2) The user can then click on a song to begin playing it, or click the “Start Playlist” button.
3) Music then begins playing, and the user can control the music in the usual manner.

2.2.4 UC-3
Adding Song to Playlist via Spotify
Main scenario:
1) User navigates to the OneMusic website.
2) User clicks the “Add Songs” button on a specific playlist.
3) User clicks on the Spotify icon on the new page.
4) User clicks on the “Login with Spotify” button to login to their account.
5) User is redirected to a new page, which prompts login.
6) User then clicks on the search bar and types in their desired track.

SRS DOCUMENT Introduction Page 8 of 13


7) User clicks on the “Submit” button.
8) User finds the desired track and then clicks the “Add song to playlist” button.

2.2.5 UC-4
Adding Song to Playlist via YouTube
Main scenario:
1) User navigates to the OneMusic website.
2) User clicks the “Add Songs” button on a specific playlist.
3) User clicks on the Youtube icon on the new page.
4) User then clicks on the search bar and types in their desired track.
5) User clicks on the “Search” button.
6) User finds the desired track and then clicks the “Add song” button.

2.2.6 UC-5
Listening to a Youtube track on it’s own.
Main scenario:
1) User navigates to the OneMusic website.
2) User clicks the “Add Songs” button on a specific playlist.
3) User clicks on the Youtube icon on the new page.
4) User then clicks on the search bar and types in their desired track.
5) User clicks on the “Search” button.
6) User finds the desired track and then clicks the “Play” button.
a) Users can pause the track if it is playing by pressing the “Pause” button.
b) If the track is paused, the User can click the “Resume” button to resume playing the
track.

2.2.7 UC-6
Checking what song is currently playing on Spotify
Main scenario:
SRS DOCUMENT Introduction Page 9 of 13
1) User navigates to the OneMusic website.
2) User clicks the “Add Songs” button on a specific playlist.
3) User clicks on the Spotify icon on the new page.
4) User clicks on the “Login with Spotify” button to login to their account.
5) User is redirected to a new page, which prompts login.
6) User clicks on the “Check Now Playing” button.
a) If nothing shows up, no song is currently playing on Spotify.
b) Otherwise, the name and artwork of the song will appear.

2.3 U​SER​ ​CHARACTERISTICS


Our average user listens to music and uses one of our supported music platforms.

2.4 C​ONSTRAINTS
The constraint of primary concern is the User’s internet connection.

2.5 A​SSUMPTIONS​ ​AND​ D​EPENDENCIES

2.5.1 Hardware
Any user of OneMusic must be able to access a website via a computer or phone.

2.5.2 Software
A OneMusic user must have a browser that supports JavaScript, and must not be preventing
JS from running, and/or have a JS disabling browser extension running.

SRS DOCUMENT Introduction Page 10 of 13


3 Specific Requirements

3.1 F​EATURES

3.1.1 Authentication Techniques


3.1.1.1 Spotify Authentication​:​ We redirect the user from the current webpage to a separate webpage
developed by Spotify. The user enter’s their credentials into the text boxes and then clicks
“Login”. After the login process has been authenticated and finished, the login web page is
redirected to our previous web page and sends with it the Spotify key that is needed to access
the Spotify APIs to their fullest features.

3.2 P​ERFORMANCE​ ​REQUIREMENTS


To reiterate, this is a website. You need a decent internet connection and a device that
connects to the internet.

3.3 D​ESIGN​ C​ONSTRAINTS


3.3.1 Time
As with any collegiate level, semester-long, group project, our biggest constraint was time.
We had 16 weeks to fully design, build, test, and deploy a web service with multiple integrations,
and as such were not able to accomplish everything that we originally set out to.
3.3.2 Lack of Income
While some of us have jobs, we are still students, and as such do not have enough
disposable income to spend on school projects. Examples of this are needing to have an Apple
Developer Program membership in order to integrate Apple Music into our program, as well as it
costing a non-trivial amount to get purchase a domain name and set up better AWS infrastructure
than we currently have.
3.3.3 Iowa State VPN
Due to the ISU VPN and us being forced to use ISU’s implementation of GitLab, there was
almost no way to implement proper CI/CD. This was due to the fact that the runner provided with

SRS DOCUMENT Introduction Page 11 of 13


ISU’s GitLab could be loaded onto the EC2 instances, but then would not be able to contact GitLab
since it was not able to reach into the VPN. To actually follow through and do this, a rule would
have been created in GitLab that, upon receiving a new push or merge into the master branch,
would then push the repository to a Github repository. From the Github repository, whenever new
code was pushed to it, a Github Action would have to have been established to deploy to the AWS
services. Unfortunately, Github Actions are not as easy to set up as the GitLab runner, and would
have required a custom bash script (that either included, or loaded from a service such as AWS
Secrets Manager) AWS credentials. Additionally, this custom bash script would need a relatively
in-depth knowledge of AWS’ CLI toolkit to implement. This literally could have been an
application in and of itself, so Zach took it upon himself to NOT implement CI/CD.

3.4 S​OFTWARE​ S​YSTEM​ A​TTRIBUTES


3.4.1 Reliability

We used languages, frameworks, and packages that have been rigorously tested in industry.

3.4.2 Availability

We designed this platform on and for a computer browser (rather than mobile). Our
platform works on all Chrome based browsers along with Firefox.

3.4.3 Security

The network configuration and servers that our infrastructure is set up on is secured in
accordance with AWS Security Best Practices.

3.4.4 Maintainability

The website should be maintainable for a small user base. Since we don’t know how to
artificially increase traffic to our website, we can’t be sure to it’s maintainability under high load.
Given that we are using high-end Amazon EC2 Cloud servers, we are definitely able to withstand
good amounts of internet traffic for the current intended usability of the website.

3.4.5 Portability

SRS DOCUMENT Introduction Page 12 of 13


This website should work on any machine capable of using a web browser, so there is no
concern of portability.

SRS DOCUMENT Introduction Page 13 of 13

You might also like