Product Requirements Document - mstane/software-architecture-lab GitHub Wiki

MyBooks

Place to collect your precious thoughts you gain from books

Introduction

Goal

Our goal is to have centralized space for keeping track of read books. Here you can maintain interesting thoughts, quotations, comments and notes you found while reading a book.

Scope

Everyday readers - people who likes reading and want to record interesting and useful thoughts

Purpose

  1. When reading you find some quotations you don't want to forget
  2. Sometimes you are inspired about your personal ideas and need space to collect it while reading a book
  3. Actively reading, write down your reviews about the subject

Overall Description

###Overview

It is responsive web application to be able from any device to write down notes as quick as possible.

It shall consist of next parts:

  • Authentication - to be able to register itself, login into the portal and logoff. In case of forgetting password it shall support generation new password which will be send to the mail.
  • Maintain contents - create, view, update and delete record about the book. Also for book it shall support creating, viewing, updating and deleting notes.
  • Profile - reader shall be able to view and update its profile data.
  • Administrate readers - Admin type of users shall be able to maintain users in the system by being able to update and delete their profile data.

User Types

  • Readers - people that have registered and can maintain their data about read books.
  • Admins - apart of functionalities which has reader is haa ability to administrate other users.

Features

1 Home Page

Home Page (user logged out) mockup screenshot

1.1 Home Page (user logged out) - shows Login and Registration links in the main menu with welcome message in the body

Home Page (user logged in) mockup screenshot

1.2 Home Page (user logged in) - shows Books, My Profile, Log Out links in the main menu with welcome message for the logged user in the body. That shall be the content throughout the application. In the case of Admin, it shall have an extra link named Admin.

2 Authentication Part

Login Page mockup screenshot

2.1 Login Page - for authentication with credentials obtained with self registration.

  • Inputs: Email, Password and Remember Me fields.
  • Link: Forgotten Password

Registration Page mockup screenshot

2.2 Registration Page - for introducing data about user.

  • Inputs: Username (to be used as system display name), Email(to be used as system user identifier), Password, Confirm Password
  • Actions: Save, Reset

2.3 Log Out - for logged user in the main menu last link is Logout link to execute logout action and take to the home page.

Forgotten Password Page mockup screenshot

2.4 Forgotten Password Page - link for this page is on Login Page below field for user credentials. Clicking on the Send button the system will randomly generate a password and send it to the user's email.

  • Input: Email
  • Action: Send

3 Books' data manipulation

List of Read Books Page mockup screenshot

3.1 List of Read Books - Displays list of read book. It shall be pageable. Clicking on Books link from the main menu shall lead to this page.

  • Button: Add a Book
  • Display table with columns: Title, Author

View an Entry for a Read Book Page mockup screenshot

3.2 View an Entry for a Read Book - Displays the data for the read book. Selecting a book for the list of read books shall lead to this page.

  • Buttons:

Edit Book – clicking on the button shall lead to edit book form

Delete Book – action for deleting the entry for the book and all its notes.

New Note – shall lead us to create a new note for the book

  • Fields of the read book:

Title – book title

Author – author of the book

Genre – genre of the read book.

Start Reading Date – the date when user started to read the book

End Reading Date – the date when user started to read the book

Rating - readers rating of the book.

Review – user's opinion and general note about the book.

  • List of notes – a list with one column with title of a note.

Create an Entry for a Read Book Page mockup screenshot

3.3 Create an Entry for a Read Book - Creates description data for a read book. At first it displays empty fields to fill. "Add a Book" button on "List of Read Books" page shall lead to here.

  • Button:

Save - action to save new data. If data validations are corrected it shall lead to view page of this book.

Reset - clear all fields.

  • Inputs:

Title – book title

Author – author of the book

Genre – [Comedy, Drama, Epic, Erotic, Lyric, Mythopoeia, Nonsense, Other, Romance, Satire, Tragedy, Tragicomedy]

Rating - readers rating of the book.

Start Reading Date – the date when user started to read the book

End Reading Date – the date when user started to read the book

Review – user's opinion and general note about the book

Edit an Entry for a Read Book mockup screenshot

3.4 Edit an Entry for a Read Book - Edit the description data for a read book. Selecting a book for the list of read books shall lead to here. Displays form filled with data for selected read book.

  • Buttons:

Edit Book - lead to Edit Book page. If data validations are corrected it shall lead to view page of this book.

Delete - shows confirmation dialog for deleting current book.

New Note - lead to New Note page.

  • Inputs:

Title – book title

Author – author of the book

Genre – [Comedy, Drama, Epic, Erotic, Lyric, Mythopoeia, Nonsense, Other, Romance, Satire, Tragedy, Tragicomedy]

Rating - readers rating of the book.

Start Reading Date – the date when user started to read the book

End Reading Date – the date when user started to read the book

Review – user's opinion and general note about the book

Delete a Book mockup screenshot

3.5 Delete a Book - Deletes the record for the book. Clicking “Delete Book” on “Book View” page it shall show confirmation dialog for deletion. After successfully executed deletion it shall lead to list of read books without deleted one. This shell also delete all its notes.

View a Note Page mockup screenshot

3.6 View a Note - Displays the data for the note. Selecting a note from the list of notes on “View Book” page lead to here.

  • Buttons:

Edit – clicking on the button shall lead to edit note form

Delete – action for deleting the note

  • Fields for the note:

Title

Content

Edit a Note Page mockup screenshot

3.7 Edit a Note - updates the data for the note. Clicking the button “Edit” from “View Note” page lead to here. Displays form filled with data for the note.

  • Button

Save - action to save updated data. Shows the view page of the note with information about successfully executed the action.

  • Input:

Title – note title

Content – note content

Delete a Note Page mockup screenshot

3.8 Delete a Note - deletes the note. Clicking “Delete” button on “Note View” page shall confirmation dialog for deletion. After successfully deletion it shall lead to list of notes on “View Book” page without deleted one.

Search Content Page mockup screenshot

3.9 Search Content - searching contents of read books and its notes by keyword outputs mixed list of books data and notes listed by relevance. Clicking link “Books” from the main menu shell lead to here. It searches contents in following fields in:

  • Books: Title, Author and Review

  • Notes: Title and Content

  • Button

Search to trigger the action

  • Input

Keyword

4 Profile Part

View own Profile Page mockup screenshot

4.1 View own Profile - displays data for the reader's profile. Clicking “My Profile” from the main menu shall lead here.

  • Button

Edit – shall lead to edit the profile form

  • Fields: Username, Email

Edit own Profile Page mockup screenshot

4.2 Edit own Profile - updates reader's profile. Clicking the button “Edit” from “My Profile” page lead to here. Displays form filled with data for the reader.

  • Button:

Save - action to save new data. If data validations are corrected it shall lead to "My Profile" page of updated record for the book.

  • Inputs: Username, Email, Password, Confirm Password

5 Administration Part

List of Readers Page mockup screenshot

5.1 List of Readers - displays list of all readers in a form of table. Clicking on "Admin" item on the main menu shall lead to here.

  • Button:

Search - lead to search page.

  • The table shall have columns: Username, Email.

Search Readers Page mockup screenshot

5.2 Search Readers - Search readers by keyword. It searches contents from the following fields from readers: username and email. It yields list of readers that contains the word listed by relevance. Clicking link “Search” button from “List of Readers” page lead here.

  • Button:

Search - trigger the search action

  • Input:

Keyword - part of the word to search.

View a Reader Page mockup screenshot

5.3 View a Reader - Displays the data for the reader. Selecting a reader from “List of Readers” or "Search Readers" page lead to here.

  • Buttons:

Edit – clicking on the button shall lead to edit reader form

Delete – action for deleting the reader

  • Fields to display: Username, Email, System Role

Edit a Reader Page mockup screenshot

5.4 Edit a Reader - updates the data for the reader. Clicking the button “Edit” on “Reader View” page shall lead here. Displays Form filled with data for the reader.

  • Button

Save - action to save updated data. If data validations are corrected it shall lead to "Reader View" page of updated record for the reader with a message with successfully notification.

  • Inputs

First Name Last Name Username Email System Role: [Common, Admin]

Delete a Reader Page mockup screenshot

5.5 Delete a Reader - Deletes the chosen reader and all his contents. Clicking “Delete” button on “Reader View” page shall display confirmation dialog for deletion. After successfully deletion it shall lead to list of readers on “List of Reader” page without deleted one.