-
Notifications
You must be signed in to change notification settings - Fork 1
3. Requirement Specifications
Non-functional requirements are requirements across the system
-
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 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)
-
The system must be able to handle bill or statement documents of up to X MB. (currently we don’t know what’s the average file size for bills)
-
The system must safeguard against the most common vulnerability attacks performed by penetration tests. (requires research)
-
Inactivity timeouts? (Functional)
-
The system should be scalable (more users shouldn’t slow down the app)
-
The system should be responsive
-
user can upload several bills at one time to save time
-
the system must be able to handle pdf file format
-
the system should be able to handle jpeg format
-
the system should be able to additional image formats not defined under supported formats. (png, gif, bmp)
-
Data requirements e.g. size, volatility, persistency etc.,
-
Environment requirements e.g. technical environment in which system would operate or need to be compatible with
-
Accessibility, Capacity, Compliance with regulations, Documentation, Disaster recovery,
-
Efficiency, Extensibility, Fault tolerance, Interoperability, Maintainability, Privacy, Portability, Quality, Reliability, Response time, Robustness, Scalability, Security, Stability, Testability, and more...
-
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 documents of supported formats into the system.
-
I want to be able to manually dictate the area where a member of set of predefined fields (e.g. amount payable, date ) is positioned on a scanned bill in pdf format.
-
I want to be able to manually dictate the area where a member of a set of predefined fields (e.g. balance, date ) is positioned on a scanned bank statement in pdf format.
-
I want to be able to extract a predefined set of information from a scanned bank statement in pdf format
-
I want to be able to extract a predefined set of information from a scanned bill in pdf format.
-
I want to be able to file my uploaded documents by billing organizations.
-
I want the system to file my uploaded by billing organizations automatically.
-
I want to be able to optionally edit the automatically extracted information after uploading a scanned document in pdf format.
-
I want to delete documents 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 rename a billing organization I created.
-
I want to be able to remove a billing organization I created.
-
I want to download an uploaded document so that I can access it from anywhere.
-
I want to recognize (or prompt from the user for) the logo from the documents.
-
I want to recognize (or prompt from the user for) the name of billing organization from the documents.
-
I want to recognize (or prompt from the user for) the logo from the documents.
-
I want to recognize (or prompt from the user for) account no from the documents (not sure if every bill has a bill no OR reference no. Even if they have, it might not be obvious to the user) (Have a list of bill reference no.? -> Kenan’s POSB)
-
I want to recognize (or prompt from the user for) the logo from the documents.
-
I want to recognize date of bills
-
I want to recognize due date of bills
-
I want to recognize billing period of bills
-
I want to recognize amount due for bills
-
I want to recognize balance amount stated on bank statements
-
I want to predefine major bill templates so that when the user upload the documents 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 documents 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 documents 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 documents directly from my mobile phone to save me the hassle of using the scanner.
-
I want to be able to download my documents together with their folders as a zip file so that I don’t have to tediously select the files to download.
-
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.
-
Viewing bills: as thumbnails, as titles
-
Sort bills according to criteria : upload date, bill mailing date, bill due date.
-
User should be able to reassign filed bills to different categories.
-
I want to use a bot to automatically register a lot of user accounts on billorg to crash the database.
-
I want to be able inject sql queries into form inputs so that I can manipulate billorg database.
-
I want to be able to deny other users from accessing billorg by continuously sending http requests to billorg server.
-
I want to sniff the HTTP requests made by the user so that I can retrieve sensitive data
-
I want to be able to steal a user’s personal information(credit card numbers, name, address) by pretending to be billorg.
-
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 gain access to billorg’s database manipulating business logic by using unprotected javascript found in client source code.
-
I want to gain access to billorg server connecting to unsecured ports.
-
I want to disable javascript in my settings so that i can bypass input validation checks Duplicate input sanitation both on client and server
🦉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