Nothing Special   »   [go: up one dir, main page]

Software Requirements Specification: Version

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

1

Software Requirements
Specification
for

II-1<Note Taking Application>


Version <1.0>

Prepared by

Group Number: ​I-1


Harsh Rathore M190389CA
Shiva Umesh Hegde M190387CA
Deeksha Agrawal M190390CA
Simran Gangwani M190359CA

Project Owner: Rabari

Course: CS4096D Software Engineering Laboratory

Date: February 1, 2021

Contents
2

1 Introduction
1.1 Document Purpose
1.2 Product Scope
1.3 Intended Audience and Document Overview
1.4 Definitions, Acronyms and Abbreviations
1.5 Document Conventions
1.6 References and Acknowledgments
2 Overall Description
2.1 Product Overview
2.2 Product Functionality
2.3 Design and Implementation Constraints
2.4 Assumptions and Dependencies
3 Specific Requirements
3.1 External Interface Requirements
3.1.1 User Interfaces
3.1.2 Hardware Interfaces
3.1.3 Software Interfaces
3.2 Functional Requirements
3.3 Use Case Model
3.3.1 Use Case #1 (Register)
3.3.2 Use Case #2​ (Log in)
3.3.3 Use Case #3 (Create Note)
3.3.3 Use Case #4 (Attach Multimedia)
3.3.3 Use Case #5 (Formatting)
3.3.3 Use Case #6 (Add Label)
3.3.3 Use Case #7 (Delete Note)
3.3.3 Use Case #8 (Display Notes)
3.3.3 Use Case #9 (Sort Notes)
3.3.3 Use Case #10 (Search by Label)
3.3.3 Use Case #11 (Search by Title)
3.3.3 Use Case #12 (Share Notes)
4 Other Non-functional Requirements
4.1 Performance Requirements8
4.2 Safety and Security Requirements
4.3 Software Quality Attributes
5 Other Requirements
Appendix A - Activity Log
3

Revisions
Version Primary Author(s) Description of Version Date Completed
1.0 Harsh Rathore Initial Version 1/02/21
Shiva Umesh Hegde
Deeksha Agrawal
Simran Gangwani

 
4

1 Introduction 
This document lays out a project plan for the “Note Taking Application” . The plan will include, but
is not limited to,​ ​product functionality, product design and implementation, scope of the project from
the perspective of team​ m ​ embers​, ​and the identified requirements​.

1.1 Document Purpose  

Main purpose of this specification is to help people who will work on this system to maintain the
objectives and get started working in this project. The document contains the detailed description
of the both functional and non-functional requirements proposed for the system. This
specification will direct people who will work in this project step by step through the process until
they finish it successfully.

1.2 Product Scope 

Note Taking Application provides an easily accessible space for users to quickly take down notes,
plans, thoughts or other information in a text format and also allows them to attach multimedia. It
enables users to share their notes via generated link.The primary goal of this application is to store,
re - organize and process the information digitally.
Learning to take ​notes effectively helps in improving study and work habits and to remember
important information. Often, students are deceived into thinking that because they understand
everything that is said in class, they will therefore remember it.

1.3 Intended Audience and Document Overview 


The intended readers of this document are the developers working on “Note Taking Application”,
the project manager, mentor, testers, users directly or indirectly working on or using this system.
This document includes the functionalities of the product and also captures the dynamic aspect of
a system​.

1.4 Definitions, Acronyms and Abbreviations 

API: Application Programming Interface


DB: Database
CMS: Content Management System
IEEE: Institute of Electrical and Electronics Engineer
SQL: Structured Query Language
5

1.5 Document Conventions 

In general this document follows the IEEE formatting requirements. Use Arial font size 11, or 12
throughout the document for text. Documentation heading uses Times New Roman font of size 14.
Use italics for comments. Document text should be single spaced and maintain the 1” margins
found in this template.

1.6 References and Acknowledgments 


● https://www.perforce.com/blog/alm/how-write-software-requirements-specification-srs-docu
ment
● https://app.diagrams.net/

 
6

2 Overall Description 
2.1 Product Overview 

Whether it’s at college or school between the lectures, ​office during an important client conference
call, at home or anywhere else, we have to note down different types of information on a daily
basis. It can be lecture notes, someone’s contact number, recipe of your favourite dish or some
witty quote from a book.Sometimes information is not even textual but may also include pictures,
video or audio. ​This product will provide an easy online platform which will allow users to capture a
wide range of digital information and exceptional features.
In this application users need to LogIn/SignUp before he/she can create notes and use other
features of the application. Users can then edit, add or delete notes and can also share with his/her
colleagues.

2.2 Product Functionality  


● Registration/Authentication
● Login/Logout
● Create Note
● Edit Note
● Delete Note
● Display Notes
● Search Note based on name and label.
● Sort Notes on creation time.
● Tag Classification
● Note sharing
● Basic Formatting Capabilities
7

2.3 Design and Implementation Constraints 

The product is a web application. React Javascript library shall be used to build the User Interface.
Serverless JAMStack architecture shall be used to provide the backend. The application shall be
deployed to an online hosting service provider along with a managed online NoSQL
database/CMS. Cloud functions/API shall be written in JavaScript. Software Development Life
Cycle will be followed.

2.4 Assumptions and Dependencies 

● Create-React-App React framework


● Internet connection required

3 Specific Requirements 
3.1 External Interface Requirements 

3.1.1 User Interfaces


8

Login Display:
● All users shall first login on this page using their email ID and Password. If already logged
in, the users shall see the Display Notes interface. If not registered yet, clicking on ‘Sign Up’
will take the user to the Register Display interface
9

Register Display:

● Unregistered users shall first register by providing an Email ID and a Password.


10

Create a Note:
● Users can click a ‘+’ icon on the top to create a note. The user will then immediately be
taken to the Edit Note interface.

Display Notes:
● Users can see all the notes they have created as rectangular cards stacked as a list. The
Notes will be displayed in Cards. Users can click on the Search Notes option to access
search functionality. The notes can be sorted by creation date using the Sort Notes option.
11

Edit a Note:
● Users can edit the note, format text, add/change title and attach multimedia content in this
interface. The changes will be saved in real-time.
12

Search a Note:
● Users can search notes on the basis of either the label or name of the note. Searched
Notes will then be displayed below.
13

3.1.2 Hardware Interfaces

No additional hardware interface needed. Any device capable of running a browser can use the
application.

3.1.3 Software Interfaces

This is a standalone web application.

3.2 Functional Requirements 

F1:​ The system shall allow new users to register to the Application.

F2:​ The system shall allow existing users to login using valid credentials.

F3:​ The system shall allow the user to create / edit Notes.

F4:​ The system shall allow the user to add a title a label with each note to easily categorise and
function in an organised manner.
14

F5:​ The system shall allow the user to attach multimedia which includes images, audio, video and
text with each note.

F6:​ The system shall record the date and time of creation of each note.

F7:​ The system shall display all the previously created notes on the dashboard.

F8:​ The system shall allow the user to delete Notes.

F9:​ The system shall allow the user to search notes based upon name and label.

F10:​The system shall allow the user to sort the notes based upon the time of creation.

F11:​ The System shall allow Note Sharing.

F12: ​The System shall allow the basic formatting of text in the notes. 
 

3.3 Use Case Model​​

Use Case Diagram:


15
16

3.3.1 Use Case #1 (Register)

Author – ​Harsh Rathore


Purpose​ - To allow user to create a new account to the system
Requirements Traceability – ​F1
Priority - High, users should be able to create an account so as to access the facilities provided by
this system.
Preconditions​ - User should have an email address.

Post conditions​ - The conditions that will be added to the system.

Actors​ – Users(human)

Extends – ​None

Flow of Events

1. Basic Flow - A new user must have to enter his email address, contact
information,user name, password.
2. Alternative Flow - If the data provided is redundant or invalid then the user will get
an error message.
3. Exceptions - Invalid email address or account already exists.

Includes​ - None

Notes/Issues​ - None

3.3.2 Use Case #2( LogIn)

Author – ​Harsh Rathore


Purpose​ - To allow existing users to be logged in to the system using respective valid credentials.
Requirements Traceability – ​F2
Priority​ - High, users need to Log In to create notes and access the features of the system.
Preconditions - User should already be a member of the system i.e he/she must have an account for
this system

Post conditions​ - User will be logged in to the system.

Actors​ – Users(human)

Extends – ​None

Flow of Events

1. Basic Flow - A user must enter a registered email address and password to get access to the
system. After submitting the valid credentials, he/she will be logged into the system.
17

2. Alternative Flow - If the entered email address or password is incorrect, the user will be
asked to re-enter the credentials.

Includes​ - None

Notes/Issues​ - None

3.3.3 Use Case #3(Create Notes)

Author – ​Deeksha Agrawal


Purpose​ - To add a new note
Requirements Traceability – ​F3
Priority​ - High, users should be able to create a note
Preconditions​ - User must be logged in to the system

Post conditions​ - A new note will be created which will be displayed on the dashboard

Actors​ – Users(human)

Extends – ​Attach multimedia, add label

Flow of Events

1. Basic Flow - User can click on the add note, and can assign a label and title to it , can also
attach multimedia, after clicking on the save button, the note will be created.

Includes​ - F12

Notes/Issues​ - None

3.3.4 Use Case #4(Attach Multimedia)

Author –​ Harsh Rathore


Purpose​ - To enable users to attach text, images, videos and audio with a note.
Requirements Traceability – ​F5
Priority​ - Medium, Adding multimedia is optional.
Preconditions​ - User must be logged in to the system.

Post conditions​ - Multimedia will be attached with the note.

Actors​ – Users(human)

Extends – ​None

Flow of Events
18

1. Basic Flow - User can add pictures, text, videos and audios to his/her note after clicking on
the add multimedia option available.
2. Alternative Flow - If multimedia doesn't already exist on the device, then it will give an
error.

Includes​ - None

Notes/Issues​ - None

3.3.5 Use Case #5 (Formatting Text)

Author – ​Deeksha Agrawal


Purpose​ - To allow the user to style the text formatting.
Requirements Traceability – ​F12
Priority​ - Medium, user is allowed to style his/her notes according to the requirement.
Preconditions​ - User should be logged in.

Post conditions​ - Corresponding note will be styled.

Actors​ – Users(human)

Extends – ​None

Flow of Events

1. Basic Flow - User can click on font options and can select the font of his/her choice based
on the requirement of the note can also change the size, text colour, can make the text bold,
italics, underline.
2. Alternative Flow - None
3. Exceptions - None

Includes​ - None

Notes/Issues​ - None

3.3.6 Use Case #6 (Add Label)

Author – ​Simran Gangwani


Purpose​ - To allow users to add labels such as work or home.
Requirements Traceability – ​F4
Priority​ - High, User should be able to categorise his/her notes.
Preconditions​ - User should be logged in and the corresponding note must have been created.

Post conditions​ - Label will be assigned to the note.


19

Actors​ – Users(human)

Extends – ​None

Flow of Events

1. Basic Flow - A user can assign a label to note so as to categorize notes for efficient
workflow.

Includes​ - None

Notes/Issues​ - None

3.3.7 Use Case #7(Delete Notes)

Author – ​Deeksha Agrawal


Purpose​ - To delete an existing note.
Requirements Traceability – ​F8
Priority​ - High, users can delete an already existing note.
Preconditions​ - User must be logged In to the system.

Post conditions​ - A pre existing note will be deleted and will not appear on the dashboard.

Actors​ – Users(human)

Extends – ​None

Flow of Events

1. Basic Flow - User can select the note which needs to be deleted and then click on the delete
button, the corresponding note will no longer appear on the dashboard.

Includes​ - None

Notes/Issues​ - None

3.3.8 Use Case #8 (Display Notes)

Author – ​Simran Gangwani


Purpose​ - To allow the user to view all the created notes.
Requirements Traceability – ​F7
Priority​ - High, users should be able to view all the existing notes on a dashboard.
Preconditions​ - User should be logged In.

Post conditions​ - All the existing notes will be displayed on the dashboard.

Actors​ – Users(human)
20

Extends – ​F10

Flow of Events

1. Basic Flow - After logging In the screen displayed is a dashboard where the user can view
all the created notes.
2. Alternative Flow - None.
3. Exceptions - None

Includes​ - None

Notes/Issues​ - None

3.3.9 Use Case #9 (Sort Notes)

Author – ​Simran Gangwani


Purpose​ - To enable users to sort notes on the basis of creation time.
Requirements Traceability – ​F10
Priority​ - Medium, User can sort notes on the basis of the latest note created.
Preconditions​ - User should be logged in and should have at least created a note.

Post conditions​ - All the created notes will be displayed in order, from the last created note to the
first created note.

Actors​ – Users(human)

Extends – ​None

Flow of Events

1. Basic Flow - After clicking on sort, the notes will be displayed in order from the last note
created to the first note created i.e it will be sorted on the basis of creation time.
2. Alternative Flow - If no already created note exist, it will display ‘No notes exist’
3. Exceptions - None

Includes​ - None

Notes/Issues​ - None

3.3.10 Use Case #10( Search by Label)

Author – ​Shiva Umesh Hegde


Purpose​ - Allow users to search notes based on labels assigned to them.
Requirements Traceability – ​F9
Priority​ - Medium, Users may need to search by a label
Preconditions​ - Label is assigned to notes to be searched
21

Post conditions​ - User will have a list of notes with the label searched for

Actors​ – Users(human)

Extends – ​None

Flow of Events

1. Basic Flow - User enters the label to be searched in the search box. The list of notes with the
right label will be displayed
2. Alternative Flow - ‘No results found’ will be displayed in case nothing is found with that
label

Includes​ - None

Notes/Issues​ - None

3.3.11 Use Case #11(Search by Title)

Author – ​Shiva Umesh Hegde


Purpose​ - Allow users to search notes based on their titles.
Requirements Traceability – ​F9
Priority​ - High, Users need to be able to search for a note with a certain title
Preconditions​ - None

Post conditions​ - A list of notes, with the searched word in the title, will be displayed.

Actors​ – Users(human)

Extends – ​None

Flow of Events

1. Basic Flow - User enters a word to be searched in the search box. The list of notes with the
searched word in the title will be displayed
2. Alternative Flow - ‘No results found’ will be displayed in case nothing is found with the
searched word

Includes​ - None

Notes/Issues​ - None
22

3.3.12 Use Case #12(Share Notes)

Author – ​Shiva Umesh Hegde


Purpose​ - Allow users to share notes publicly
Requirements Traceability – ​F11
Priority​ - Medium, users may need to share their notes with a coworker/friend.
Preconditions​ - Note must already be created before user can share it

Post conditions​ - A unique URL will be generated which upon visiting displays only the shared
note.

Actors​ – Users(human)

Extends – ​None

Flow of Events

1. Basic Flow - User clicks on share note option on the note display card. This copies the
generated URL into the clipboard

Includes​ - None

Notes/Issues​ - None

4 Other Non-functional Requirements 


4.1 Performance Requirements 

● Must serve multiple users concurrently


● Fast and responsive lightweight UI
● Fast retrieval of large number of multimedia Notes

4.2 Safety and Security Requirements 

● User information like Email Id and notes should be protected and unauthorised access
should be denied
● Passwords must be hashed and salted before storage in Database
● Only Authenticated users should be able to access their section of Database
● Users should be allowed to change their passwords
● All note data shall be stored in the Database in real-time to prevent data loss
● Database and Hosting security should be handled by the online Database and Hosting
service used by the application
23

4.3 Software Quality Attributes 

4.3.1 Scalability
When the user data increases, the application should be capable of handling them
without delay as it will have Google's Firebase as database and authentication system
which has a regional and multi-region solution and hence, the project will be highly
scalable.

4.3.2 Capacity
At a time application can serve 1 million users as we will be using Cloud Firestore which
offers 1 million concurrent connections per database and 10000 writes per second which
is more than enough for most use cases.

4.3.3 Availability
The website will be hosted using FIrebase hosting solutions and hence the website will be
available 24 X 7.

4.3.4 Usability
Application should be user friendly so that it is easy for user to use and can efficiently use
so as to accomplish their goals of using the application, Moreover it should have a
pleasant design.

4.3.5 Reliability
Cloud Firestore houses your data across multiple data centers in distinct regions,
ensuring global scalability and strong reliability.

4.3.6 Data Integrity


Best practices for Cloud Firestore data management will be used to ensure data
consistency.
Cloud Firestore ensures that the data is always secure and safe.

4.3.7 Recoverability
Data can be recovered through the export and import system of Cloud Firestore and data
can be managed offline. Data can be exported to an offline system every day and
imported back in case of accidental data loss.

5 Other Requirements

There are no other requirements needed for the product.  


24

Appendix A - Activity Log 


● 28 Jan 2021, 5:00pm (Duration 15mins) ​: Discussed about the project structure and
asked everyone to read previously submitted SRS for the same topic.
● 29 Jan 2021, 07:30PM (Duration: 30 minutes)​ – Decided who will work on which part.

o ​Deeksha Agrawal had to work on Use case diagram and User Interface.

o ​Simran Gangwani had to work on Introduction section and Assumptions and

Dependencies.

o ​Harsh Rathore had to work on non-functional requirements and document

Conventions.

o ​Shiva Umesh Hegde had to work on Product overview and Functional requirements

● 30 Jan 2021, 05:00pm (Duration 1hr)​ : We gathered all the information,discussed the
collective ideas, made a Use Case Diagram together, divided the 12 use cases three each.
● 31 Jan 2021, 06:00pm (Duration 5hrs)​ : Typed the document using a collaborative
platform, where each team member did the assigned work.

You might also like