Software Requirements Specification: Version
Software Requirements Specification: Version
Software Requirements Specification: Version
Software Requirements
Specification
for
Prepared by
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.
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.
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.
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.
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.
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.
3 Specific Requirements
3.1 External Interface Requirements
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:
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
No additional hardware interface needed. Any device capable of running a browser can use the
application.
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.
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.
F12: The System shall allow the basic formatting of text in the notes.
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
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
Post conditions - A new note will be created which will be displayed on the dashboard
Actors – Users(human)
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
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
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
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
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
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
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
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
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
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
● 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.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.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
o Deeksha Agrawal had to work on Use case diagram and User Interface.
Dependencies.
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.