-
Notifications
You must be signed in to change notification settings - Fork 1
3. Requirement Specifications
- System: The bill organizer application
- User: A person, or external system that uses the bill organizer application in legitimate manner.
- Record: Bill or bank statement
- Bank statement: A document issued by bank listing amounts debited and credited
- E-statement : A digital version of bank statement downloadable from a Bank’s online portal or sent to user through by email.
- Scanned bank statement: bank statement scanned manually by an individual in pdf or jpeg file format.
- Balance: Difference between credit and debit in a bank statement
- Bill: A statement of money owed for goods or services.
- e-Bill: Digital version of bill downloadable from vendor's website or sent to user through email.
- Scanned bill: Scanned copy of printed bill mailed to user by an billing organization.
- Amount due: The payable amount stated in a single bill
- Billing organization: An organization that settle customer payments for goods and services.
- Statistic: A category of functions related to data, manipulation of data, and summarization of data.
- Finance: Balance and/or amount due for a billing organization.
-
The system must be well-tested. The test suites consisting of unit tests and integration tests must have a 70-80% code coverage.
-
The system must be maintainable, allowing addition of new features without major changes to existing code base.
-
The system must be intuitive to use and user-friendly.
-
The system must protect privacy so that only the authorized person can access his/her data.
-
The system must make sure users data are not lost in the event of accidents (maintain data redundancy).
-
The system must be compatible with major browsers (Chrome, Firefox, Opera, Safari, Edge, etc).
-
Each page of the system’s page should load under 2000 ms and each server response time should be under 200ms (https://developers.google.com/speed/docs/insights/Server says server response time should be under 200ms).
-
To safeguard against common security attacks, the system should:
8.1 Sanitize user inputs (both front-end and back-end) from various forms in the system 8.2 Retrieve and display user’s information (e.g first name, last name, display name) before allow user to type in password
8.3 Use SSL certificate
8.4 Show captcha if user does more than 5 failed login attempts
8.5 Deny access on unnecessary ports
8.6 Implement session management for access control
8.7 Implement inactivity timeouts.
- The system must be able to handle records of up to X MB. (currently we don’t know what’s the average file size for bills).
-
The system should be scalable (more users shouldn’t slow down the app).
-
The system should be responsive.
-
I want to be able to register an account.
-
I want to be able to log in into the system.
-
I want to be able to log out of the system.
-
I want to have a mechanism to retrieve my account in case I forget the login credentials.
-
I want to edit my user information (e.g. display name, email address, password) after I have registered for an account.
- I want my credentials to be remembered so that I don’t have to re-type them the next time I visit the website on the same machine.
-
I want to upload my records of supported formats into the system.
-
I want to be able to dictate the area where the necessary information (e.g. amount payable, date ) is positioned in an e-bill of pdf format.
-
I want to be able to dictate the area where the necessary information (e.g. amount payable, date ) is positioned in an e-statement of pdf format.
-
I want to be able to edit the extracted information after of the uploaded records in case there is any inaccuracies.
-
I want to be able to file my uploaded records by billing organizations.
-
I want the system to file my uploaded records by billing organizations automatically.
-
I want to delete records that have been uploaded.
-
I want to be able to create new billing organizations for my account if a billing organization is not selectable from a collection of predefined organizations.
-
I want to be able to remove a billing organization I created.
-
I want to download an uploaded record so that I can access it from anywhere.
-
prompt the user to dictate the area for these necessary information from the records:
a. The logo of the billing organization
b. The name of the billing organization
c. The account no/reference no
d. Date of bill
e. Due date
f. Billing period
g. Finances. -
extract these information from the uploaded record:
a. The logo of the billing organization
b. The name of the billing organization
c. The account no/reference no
d. Date of bill
e. Due date
f. Billing period
g. Finances. -
predefine major record templates so that when the user upload the records I can automatically extract the information for the user.
-
I want to be able to add new bills by forwarding my e-Bills from my email to the system.
Note: If the e-Bills can be recognized, put it in the suitable folders. Otherwise, prompt the user the next time he/she enter the system. -
I want to upload scanned records to the system.
-
I want to customize the naming mechanism that suits my needs (e.g. [company][dd-mm-yy], [company][mm-dd-yy], [dd-mm-yy][company]).
-
I want to search for specific records using keywords so that I can find the information I need conveniently.
-
I want to integrate the system with my choice of file hosting service (Dropbox, Gdrive, Box, etc) so that it’s easier for me to access my files.
-
I want to access the system from my mobile phone for accessibility reasons.
-
I want to scan records directly from my mobile phone to save me the hassle of using the scanner.
-
I want to be able to download my records as a zip file so that I don’t have to tediously select the files to download.
- Sort bills according to criteria : upload date, bill mailing date, bill due date.
-
I want to view my finances for a specific billing organization over a chosen time period (e.g. phone bills over 1 month, 3 months, 6 months, or 1 year)
-
I want to view my finances in a graphical format (e.g. bar graph, pie chart) so that I can see how much I have spent easily.
Low-priority
-
I want to view my finances for all billing organizations over a chosen time period (e.g. expenditures over 1 month, 3 months, 6 months, or 1 year)
-
I want to be able to export my statistics to xlsx format so that I feel safe that I would not lose them.
-
I want to save my statistics as PDF so that I can view them without internet connection.
-
I want to continuously register user accounts to the system to crash the database.
-
I want to be able inject SQL commands into form inputs so that I can manipulate the system database.
-
I want to commit phishing to misdirect the user to my malicious website instead of the real system.
-
I want to sniff the HTTP requests made by the user so that I can intercept sensitive data.
-
I want to run a script that will try a lot of passwords on a user account so that I can get the user’s credentials
-
I want to be able to manipulate other users’ resources in the system.
-
I want to gain access to the system by connecting to unsecured ports.
-
I want to disable javascript in my settings so that i can bypass input validation checks.
- Demographic of Interviewee
- Age
- Occupation
- Computer Proficiency
- Do you usually handle your bills or bank statements? (if no, interview will not proceed and will not be taken into consideration)
- Do you keep and organize them?
- If no,
- Why?
- Would you consider organizing your bills? (if interviewee does not want to organize, interview will not proceed)
- Would it be easier for you to handle your bills/bank statements if it was organized?
- What kind of information do you usually need from your bills/what kind of information do you easily forget or mess up?
- If yes,
- Why?
- How do you usually organize your bills or bank statements?
- Do you organize them in your computers? For instance, putting electronic copy of bills into specific folders?
- If the interviewee put his/her bills into specific folders (physical/electronic), ask him/her specifically about the structure of the folders (eg categorized by billing organization). Also how they name the file (if electronic) OR how they would name the file.
- Do you extract data out from the bills? For instance, for each bills, you record the amount due or balance in an excel file.
- If no,
- Explain our project (show UI prototype and explain) and get their opinion.
- What kind of statistics do you think would be helpful?
- Which part do you see yourself using the most? (ie uploading and viewing of files OR looking at statistics)
- What do you think about our app? Will it be useful to you?
- Main concerns when/if using the application.
- Do you have any suggestions regarding the app? Is there any additional features that you'd like?
Interview responses: 6 people
- Age range: Mostly 40-60s (target users: working adults)
- Proficiency: Basic (minimum)
- Purpose of organizing:
- Bookkeeping
- Financial planning
- Claims
- Purpose of not organizing:
- Available online anytime
- Some bills paid by company, not to be included
- Organization method:
- Different folders (eg type of bill, bill organization)
- Chronological
- Information needed:
- Date of bill
- Amount of money(bill)
- Balance(statement)
- Interest(statement)
- Due date(bill)
- Our application: Main usage most likely be statistics
- Statistics that will be useful:
- Expenses and balance
- Payment method
- Monthly spending by category
- At least 3-year worth of data
- Percentages
- Main concerns:
- Security/Privacy
- Data lost/protection
- Time-consuming
- 2 different accounts from same organization
- Suggestions:
- Include taxes and income
- Expenditure projection
- Statistics to be exportable
- Forwarding from email
- Indication/notification of bill payment/due date
- Offline version
- Custom color coding
- Manual input
- Manual break down into further categories
🦉Team Elegant Owls © 2017
📑TOC
- Introduction
- Project Work Log
- Requirement Specifications
-
Software Design Specifications
4.1 Technologies Used
4.2 System Architectural Design
4.3 Entity Relationship Diagram -
User Interface Design
5.1 User Interface Prototype
5.2 Brand Style Guide -
Usability Evaluation
6.1 Heuristic Evaluation
6.2 System Usability Scale
6.3 Think Aloud Protocol - Robustness and Efficiency Evaluation
- Security Evaluation