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
- When reading you find some quotations you don't want to forget
- Sometimes you are inspired about your personal ideas and need space to collect it while reading a book
- 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
1.1 Home Page (user logged out) - shows Login and Registration links in the main menu with welcome message in the body
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
2.1 Login Page - for authentication with credentials obtained with self registration.
- Inputs: Email, Password and Remember Me fields.
- Link: Forgotten Password
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.
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
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
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.
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
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
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.
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
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
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.
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
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
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
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.
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.
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
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]
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.