1
The Optical Receipt Management Application
Requirements Specification
Version 1.0
Garry Ledford Roberto Vieras
John Klein Charles Reed
Advisor: Professor Jeff Salvage
2
Table Of Contents
Introduction .................................................................................................................................................. 3
Purpose ......................................................................................................................................................... 3
Intended Audience ........................................................................................................................................ 3
Project Scope ................................................................................................................................................ 3
1. Document History ..................................................................................................................................... 4
2. Application Initialization / Start-up ........................................................................................................... 4
3. Application Add New Expense .................................................................................................................. 6
4. Application Add New Expense – Scan Receipt ......................................................................................... 8
5. Application Add New Expense – Manual Expense Entry .......................................................................... 8
6. Application Add New Expense – Save For Later ..................................................................................... 19
7. Saving and Synchronization .................................................................................................................... 20
8. Optical Character Recognition – Local .................................................................................................... 20
9. Application View/Modify Expense .......................................................................................................... 20
10. Application Incomplete Expenses ......................................................................................................... 26
11. Application Reports ............................................................................................................................... 28
12. Application Export ................................................................................................................................. 39
13. Application Account Management ....................................................................................................... 41
14. Application Settings .............................................................................................................................. 49
15. Application Trip ..................................................................................................................................... 51
16. Application Camera Action ................................................................................................................... 71
17. Voice Store Search ................................................................................................................................ 75
18. Online System Access ............................................................................................................................ 75
19. Online System Portal ............................................................................................................................. 76
20. Online System Profile ............................................................................................................................ 77
21. Online System Expenses ....................................................................................................................... 81
22. Online System Trips .............................................................................................................................. 82
23. Online System Report ........................................................................................................................... 84
24. Online System Export ............................................................................................................................ 85
25. Online System Help ............................................................................................................................... 86
26. Online System About ............................................................................................................................ 86
27. Online System Register ......................................................................................................................... 86
28. Online System Log in ............................................................................................................................. 87
29. Online System Log out .......................................................................................................................... 88
30. Online System Data Transfer to Mobile Device .................................................................................... 89
31. Optical Character Recognition – Remote .............................................................................................. 89
NF. Non-Functional Requirements ............................................................................................................. 90
Glossary ....................................................................................................................................................... 90
3
Introduction The requirement to track business expenses is a burden to individuals as well as corporations. Individuals must retain and organize their receipts in order to get reimbursed, while businesses must collect, aggregate, and report expenses with proof of the transactions. With the current fiscal hardship, the IRS is watching closer than ever before, making complete expense tracking essential. Currently, most individuals collect paper receipts stuffed in a wallets or purses and report their expenses upon returning to the office, hoping they haven’t lost any receipts in the process. The OpticRM Receipt Management Application acts as the catalyst in transforming antiquated manual expense tracking to the new wave of digital organization. OpticRM solves the problem of keeping paper copies of receipts by storing, categorizing and transmitting essential data and imagery through a standard camera-enabled smart phone.
Purpose This document specifies all the necessary software and hardware requirements for the OpticRM Receipt
Management Application. These requirements directly relate to the features, functionality,
performance, attributes, constraints and interfaces of the system.
For the development of this project we use the agile development process because of that there will be further revisions of this document that reflect any changes and new features being implemented.
Intended Audience The intended audience of this document is developers, tester, stockholders and end users.
Project Scope This project attempts to act as the catalyst in transforming a typical scribed financial organization to the
new wave of digital organization. The OpticRM Receipt Management Application solves the problem of
keeping paper copies of receipts with you at all times. Instead, we have copies of our receipts at the
touch of a button. This project makes use of the rise in use of smart-phones to keep up with the evolving
technology.
4
2. Document History
Version Date Author Comments
0.1 January 11,
2012
Charles Reed Initial Draft
0.2 January 26,
2012
Garry Ledford New UI for Start-up and Add Expense
0.3 January 27, 2012
Garry Ledford Charles
Reed
Added hyperlinks and updates images for Accounts, Reports, Expense Entry and Trips
0.4 January 31, 2012
Roberto Vieras
John Klein
Added OCR and Server requirements
1.0 April 27, 2012 Garry Ledford
Added updated UI and processing
2. Application Initialization / Start-up 2.1 The software executes once the application icon is pressed by the user
2.2 The software loads the main menu screen during execution (see Figure 2.A) 2.3 The software displays the following options on the main menu screen
5
Figure 2.A: The Main Menu Screen Options
2.3.1 Add New Expense (see Requirement 3)
2.3.2 View/Modify Expenses (see Requirement 9) 2.3.3 Incomplete Expenses (see Requirement 10)
2.3.4 Add New Trip (see Requirement 15)
6
2.3.5 View/Modify Trips (see Requirement 15.3) 2.3.6 Reports (see Requirement 11) 2.3.7 Export (see Requirement 12) 2.3.8 Account Management (see Requirement 13)
3. Application Add New Expense 3.1 Overview Called from the Main Menu, this function adds new expenses. The user optionally uses a built in camera
to take and save a picture of the receipt. The user manually enters or uses the optical character
recognizer (OCR) to extract receipt information and then confirms the expense details. All information is
stored locally.
3.2 The software loads the “Application Camera Action” (see Requirement 16) 3.3 The software loads the menu buttons for “Scan Receipt”, “Save receipt for later entry” and
“Manual Entry” (see Figure 3.A)
7
Figure 3.A: The Main Screen for “Add New Expense”
3.2.3.1 The user presses “Scan Receipt” (see Requirement 4) 3.2.3.2 The user presses “Manual Entry” (see Requirement 5) 3.2.3.3 The user presses “Save for Later” (see Requirement 6)
8
4. Application Add New Expense – Scan Receipt 4.1 Overview The application utilizes OCR software to convert the receipt image into text. 4.2 Based on user settings, the OCR sends the image to one of the following 4.2.1 Remote OCR server (see Requirement 31) 4.2.2 Local OCR (see Requirement 8)
5. Application Add New Expense – Manual Expense Entry 5.1 Overview Called from “Add New Expense” (see Requirement 3). This operation allows the user to manually input/edit all of the information about an expense. 5.2 The user enters/edits the data in the “Basic Information” tab (see Figure 5.A)
Figure 5.A: The “Basic Information Tab” for Adding or Editing an Expense
9
5.2.1 The user selects/edits the date by pressing the date button 5.2.1.1 The default date is set to the current date 5.2.2 The user inputs/edits the Store Name 5.2.2.1 Using auto fill, (see Figure 5.B) the user selects a previously entered store, displayed
with a name and address in a drop down box, which auto fill the “Details tab”
Figure 5.B : An Example of How Information is Auto-filled
5.2.2.1.1 The entered store name transfers to the Details tab 5.2.2.2 The software returned store information is filled out on the Details tab
10
5.2.3 The user enters/edits the Expense Subtotal 5.2.4 The user optionally enters/edits the Expense Tax 5.2.5 The user optionally enters/edits the Expense Tip/Gratuity 5.2.6 The receipt total is calculated by summing the subtotal , tax and gratuity
5.2.7 The user optionally enters/edits to override the Expense Total
5.2.8 The user selects the Account from the “Account” drop-down list
5.2.8.1 The software loads the default account if no account is selected 5.2.9 The user enters Tags by pressing the “Tags” button
Figure 5.C: The Pop-up that Displays After the “Tags” Button is Pressed
11
5.2.9.1 The software displays a pop-up with a list of all tags and an “Add New Tag” button.
(see Figure 5.C)
5.2.9.2 The user presses the “Add New Tag” button 5.2.9.2.1 The software displays a pop up with a text field for the tag name and a button “Add Tag” (see Figure 5.D)
Figure 5.D: The Pop-up that Displays After the “Add New Tag” Button is Pressed
5.2.9.2.2 The user enters the tag name 5.2.9.2.3 The user presses the “Add” button to add the Tag 5.2.9.2.4 The newly added tag now is displayed in the tag list (see Figure 5.E)
12
Figure 5.E : Proof that the User-Entered Tag was Added to the List of Tags
5.2.10 The user optionally presses the “Image Icon” next to the date button to view the picture
of the receipt.
5.2.10.1 If the user did not take a picture of the receipt, the software loads the camera.
5.2.10.1.1 The user takes a picture of the receipt
5.2.10.2 If the user did take a picture of the receipt, the software displays the picture
5.3 The user optionally enters/edits data in the Items Tab (see Figure 5.F)
13
Figure 5.F : An Example of the “Items” Tab
5.3.1 The user presses the “Add Item” button
5.3.1.1 The software displays text boxes for Item Name, Price and Quantity. (see Figure 5.G)
14
Figure 5.G : The Pop-up that Displays After the “Add Items” Button is Pressed
5.3.1.2 The user enters the Item Name, Price, Account, and Quantity 5.3.1.3 The user clicks the “Add” button 5.3.1.3.1 If any of the fields are left blank, the user is prompted to enter the missing data before continuing 5.3.1.4 The newly entered item is shown in the items tab; displaying the Item Name, Price, and Quantity (see Figure 5.H)
15
Figure 5.H : Proof that the User-Entered Item was Added to the List of Items
5.4 The user enters/edits data in the Details Tab (see Figure 5.I)
16
Figure 5.I : An Example of the “Details” Tab:
5.4.1 The user inputs/edits the Store Name 5.4.2 The user inputs/edits the Store Address 5.4.2.1 The user inputs/edits the Store Country 5.4.2.2 The user inputs/edits the Store Street 5.4.2.3 The user inputs/edits the Store City 5.4.2.4 The user inputs/edits the Store State
17
5.4.2.5 The user inputs/edits the Store Zip Code
5.4.3 The user presses the map button to load the Map Application displaying the entered
address on the map (see Figure 5.J)
Figure 5.J : An Example of the “Map” Application
5.4.4 The user inputs/edits the Store Phone Number 5.4.5 The user presses the phone button to call the entered phone number (see Figure 5.K)
18
Figure 5.K : Calling a Store Phone Number by Pressing the “Phone” Button.
5.6 The user clicks the “Save” button at the top right corner of the screen to save (call
Requirement 21)
5.6.1 If either the Details tab or the Basic tab is not completely filled out a pop-up will inform the
user that the expense will be marked incomplete unless the user enters in all of the information
19
6. Application Add New Expense – Save For Later 6.1 Overview This function allows the user to store an image of a receipt to be modified at the user’s discretion. This function marks a receipt as “Incomplete” since it is only saving the receipt’s image. 6.2 A pop-up displays and informs the user that they can go to Incomplete Expenses to find and edit their saved receipt (see Figure 6.A)
Figure 6.A : The Pop-up that Displays to Inform a User Where They can Find “Incomplete Expenses”
6.3 Call Requirement 7
20
7. Saving and Synchronization 7.1 Overview This function saves the receipt information to the local database as well as the remote database if set up. 7.2 The expense /trip is saved to the local database 7.3 When an Internet connection is established, the expense/trip data are uploaded to a remote database if the user set up a remote server in Accounts 7.4 If an Internet connection was not established then the application tries again later
8. Optical Character Recognition - Local
8.1 Overview This function is for the local optical character recognition. 8.2 The software sends the image to the local OCR service 8.3 The local OCR converts the image into text
8.4 The cleaned text is parsed pulling out the following information 8.4.1 Store name 8.4.2 Expense date 8.4.3 Expense total 8.4.4 Expense items
8.5 The local OCR service calls function for saving and synchronization (see Requirement 7)
9. Application View/Modify Expense 9.1 Overview This function displays previously entered Expenses. It also allows for the user to select and modify Expenses. 9.2 The software displays summary information for expenses within the last (Default date range) days. Where (Default date range) is a parameter that can be changed in the settings.
21
9.3 Each expense displays the following (see Figure 9.A) 9.3.1 Date
9.3.2 Store Name
9.3.3 Total Price
9.3.4 Account
9.4 Next to each line of expense information listed the following informational icons are displayed 9.4.1 The “Expense Has Image” icon
9.4.2 The “Expense Was Synchronized” icon
Figure 9.A : View/Modify Expenses Main View
22
9.5 The user optionally presses the menu button
9.5.1 The user selects a start date and an end date in order to list all of the expenses that fall within the two dates (see Figure 9.B)
Figure 9.B : View/Modify Expenses Filter View
9.5.2 The expenses qualifying the user entered date range in are displayed
9.6 The user optionally click on the expense to edit the details loading Requirement 5 but with all of the previously entered expense information in all of the existing fields 9.7 After returning from Requirement 5, the newly modified expense is displayed in the expense list with the modified information
9.8 The user presses and holds an expense to perform the following actions (see Figure 9.C)
23
Figure 9.C : View/Modify Expenses Expense Options
9.8.1 Edit the expense 9.8.2 Delete the Expense 9.8.2.1 Upon pressing the delete button, the Expense is marked for deletion
(see Figure 9.D)
9.8.2.2 The software displays the deleted receipt in the expense list with a red X to the left
24
Figure 9.D : View/Modify Expenses Marked For Deletion
9.8.2.2.1 The user presses and holds the deleted expense 9.8.2.2.1.1 The software displays a menu option “Undo Deletion of Expense” (see Figure 9.E)
25
Figure 9.E : View/Modify Expenses Deleted Receipt Options
9.8.2.2.1.2 The user presses “Undo Deletion of Expense” 9.8.2.2.1.3 The software removes the red X from the expense list item 9.8.2.2.1.4 The software removes the mark for deletion
9.9 The user enters a string into the Search bar 9.9.1 The software searches the following fields in every expense upon the user pressing the enter key on the keyboard or the search icon 9.9.1.1 Store Name 9.9.1.2 Store City 9.9.1.3 Store State
26
9.9.1.4 Account 9.9.1.5 Tag 9.9.1.6 Item Name 9.9.2 The software displays the list containing the expenses matching the search criteria
10. Application Incomplete Expenses 10.1 Overview This function lists all of the incomplete receipts. 10.2 The software displays a listing of all the incomplete receipts with the following information (see Figure 10.A)
Figure 10.A : Incomplete Expenses Main View
27
10.2.1 Date 10.2.2 Receipt Image 10.2.3 Incomplete Reason 10.3 The user clicks the receipt they would like to complete go to Requirement 5 10.4 After the user enters the information manually, the receipt is no longer displayed in the incomplete receipt listing 10.5 The user may optionally click and hold the incomplete receipt to do the following (see Figure 10.B)
Figure 10.B : Incomplete Expenses Expense Options
10.5.1 Delete the receipt
28
10.5.1.1 Upon pressing the yes button, the receipt is removed from the incomplete
receipt list
11. Application Reports 11.1 Overview This function is called by Requirement 2. This function generates different reports based on the given parameters. 11.2 The software displays the following report types (see Figure 11.A)
Figure 11.A : A List of Report Types
11.2.1 Accounts Report 11.2.2 Store Report
29
11.2.3 Monthly Report 11.3 The user selects “Accounts Report” 11.3.1 The user optionally selects a “Start Date” and an “End Date” to specify a time range for
the report (see Figure 11.B)
Figure 11.B : The Account Report “Settings” Tab
11.3.2 The software displays the following 11.3.2.1 A list showing the total amount of money associated with each account during the specified date range (see Figure 11.C)
Figure 11.C : An Example of “Tabular Data” for an Account Report
30
11.3.2.2 A pie chart showing the total amount of money associated with each account during the specified date range (see Figure 11.D)
31
Figure 11.D : An Example of “Graphical Data” for an Account report
11.4 The user selects “Store Report” 11.4.1 A pop-up displays that allows the user to specify a “Top Five” report, a
“Bottom Five” report and a “Custom” report (see Figure 11.E)
32
Figure 11.E : The Pop-up that Displays the Different “Store Report” Types
11.4.2 The user selects a “Top Five” report 11.4.2.1 The user optionally selects a “Start Date” and an “End Date” to specify a time range for the report (see Figure 11.F)
33
Figure 11.F : The Store Report “Settings” Tab
11.4.2.2 The software displays the following 11.4.2.2.1 A list showing the total amount of money associated with the Five Stores that were shopped at most frequently, during the specified date range (see Figure 11.G)
34
Figure 11.G : An Example of “Tabular Data” for a “Top Five Store Report”
11.4.2.2.2 A pie chart showing the total amount of money associated with the Five Stores that were shopped at most frequently, during the specified date range (see Figure 11.H)
35
Figure 11.H : An Example of “Graphical Data” for a “Top Five Store Report”
11.4.3 The user selects a “Bottom Five” report 11.4.3.1 The user optionally selects a “Start Date” and an “End Date” to specify a time range for the report (see Figure 11.F)
11.4.3.2 The software displays the following 11.4.3.2.1 A list showing the total amount of money associated with the Five Stores that were shopped at the least frequently, during the specified date range (see Figure 11.G)
11.4.3.2.2 A pie chart showing the total amount of money associated with the Five Stores that were shopped at the least frequently, during the specified date range (see Figure 11.H)
11.4.4 The user selects a “Custom” report
36
11.4.4.1 The user optionally selects a “Start Date” and an “End Date” to specify a time range for the report (see Figure 11.I)
Figure 11.I : The “Settings” Tab for the “Custom Store Report”
11.4.4.2 The user selects which stores they would like to run a report on 11.4.4.3 The software displays the following 11.4.4.3.1 A list showing the total amount of money associated with the user-selected stores, during the specified date range (see Figure 11.G) 11.4.4.3.2 A pie chart showing the total amount of money associated with the user-selected, during the specified date range (see Figure 11.H)
11.5 The user selects “Monthly Report”
37
11.5.1 The user optionally selects a “Start Date” and an “End Date” to specify a time range for
the report (see Figure 11.J)
Figure 11.J : The “Settings” Tab for a “Monthly Report”
11.5.2 The software displays the following 11.5.2.1 A list showing the total amount of money associated with each month, during the specified date range (see Figure 11.K)
38
Figure 11.K : The “Tabular Data” for a “Monthly Report”
11.5.2.2 A pie chart showing the total amount of money associated with each month, during the
specified date range (see Figure 11.L)
39
Figure 11.L : The “Graphical Data” for a “Monthly Report”
12. Application Export 12.1 Overview This function is called by Requirement 2. This function exports the data to another medium 12.2 The software displays the following export options (see Figure 12.A)
40
Figure 12.A : The “Export Options” Screen
12.2.1 Begin Date and End Date 12.2.1.1 The user selects the begin date and the end date 12.2.2 Account 12.2.2.1 The user selects the account 12.2.3 Tags 12.2.3.1 The user optionally selects the preexisting tags 12.2.4 Export Type
41
12.2.4.1 The user can select the following export types 12.2.4.1.1 CSV 12.2.4.1.2 TXT 12.2.5 Export To 12.2.5.1 The user opts to have the software email the data to a preselected email address 12.2.5.2 The user opts to have the software save the data to an SD card
13. Application Account Management 13.1 Overview This function adds, edits, and deletes accounts
13.2 The software displays the following options (see Figure 13.A) 13.2.1 Select Account
42
Figure 13.A : The Initial “Account Management” Menu
13.3 The User presses “Select Account” 13.3.1 A pop-up window displays the following options (see Figure 13.B)
43
Figure 13.B : The Pop-up that Displays after the “Select Account” Button is Pressed
13.3.1.1 A list of all the currently existing accounts 13.3.1.2 An “Add New Account” Button 13.3.2 The user selects an account
13.3.2.1 The pop-up window closes (go to Requirement 13.4.1)
13.3.3 The user selects the “Add New Account” Button 13.3.3.1 The user is prompted to choose an Account Name and save it (see Figure 13.C)
44
Figure 13.C : The Pop-up that Displays After the “Add New Account” Button is Pressed
13.3.3.2 The “New Account” is added to the list of Accounts that the user can choose from (see
Figure 13.D) (go to Requirement 13.3.1.1)
45
Figure 13.D : Proof that the “User-Entered Account” was Added to the List of Accounts
13.4.1 The Software displays the Following (see Figure 13.E)
46
Figure 13.E : The “Account Management” Menu After an Account was Selected by the User
13.4.1.1 The Name of the Selected Account
13.4.1.2 A “Delete Account” Button
13.4.1.3 An “Add Server” Button
13.4.1.4 A list of all the Servers, note that Servers associated with the selected account are
marked with a filled “Check-box”
13.4.2 The user selects the “Named Account” (go to Requirement 13.3.1.1) 13.4.3 The user selects the “Delete Account” Button 13.4.3.1 The Account is deleted
47
13.4.4 The user selects a “Server” 13.4.4.1 The Server becomes “checked” and linked to the currently selected account, or
“unchecked” and unlinked to the currently selected account, depending on what state
the Server was previously in
13.4.5 The user “hold clicks” a Server 13.4.5.1 A Pop-up displays asking the user if they would like to delete the Server (see Figure 13.F)
Figure 13.F : The Click and Hold Server Menu
13.4.5.2 The user opts to delete the Server 13.4.5.3 The server is deleted 13.4.6 The User selects the “Add Server Button” 13.4.6.1 A pop-up displays prompting the user to enter the following (see Figure 13.G)
48
Figure 13.G : The Pop-up that Displays After the “Add Server Button” is pressed
13.4.6.1.1 A Server Name 13.4.6.1.2 A Host Name 13.4.6.1.3 A User Name 13.4.6.1.4 A Password 13.4.6.1.5 The user enters the required information and presses the “save button” 13.4.6.2 The newly entered Server is added to a visible list of all the Servers (Requirement
13.4.1.4)
49
14. Application Settings
14.1 Overview This function applies settings related to the application
14.2 The software displays the following settings
Figure 14.A : Main Settings Page
14.2.1 Default Date Range (see Figure 14.A) 14.2.1.1 The “Default Date Range” determines which expenses displayed in view modify. Receipts falling in between the current date minus the default date range and the current date are displayed in view modify. 14.2.1.2 The user clicks the default date range 14.2.1.2.1 The user enters the number of days 14.2.2 Sync When (see Figure 14.A)
50
14.2.2.1 “Sync When” is a 3 stage slider that determines whether or not the software tries to sync with the remote database and if so on what type of connections. Some users disable this to prevent from using up their data. Other users only allow sync to work when connected to WiFi to prevent data usage. 14.2.2.2 The user slides the slider to the left to indicate “sync” is off 14.2.2.3 The user slides the slider to the middle to indicate that “sync” is set to “sync at all times” (Data connection and WiFi) 14.2.2.4 The user slides the slider to the right to indicate that “sync” is set to “Wifi Only: and only sync with the remote data base when a Wifi network is available. 14.2.3 Receipt Cutoff Age (see Figure 14.A) 14.2.3.1 This is the number of days that a receipt remains on the local database. This is used to prevent the user from filling up their local disc. 14.2.3.2 The user clicks “receipt cutoff age” 14.2.3.2.1 The user enters/edits the number of days
14.2.4 Plug-ins (see Figure 14.A)
14.2.4.1 The software displays a list of all available plug-ins
14.2.4.1.1 The software displays Local OCR
14.2.4.1.1.1 The user clicks the Local OCR button
14.2.4.1.1.2 The software installs the Local OCR
14.2.5 Remote or Local OCR (see Figure 14.A)
14.2.5.1 The user selects the radio button for the Remote OCR
14.2.5.1.1 The software uses the Remote OCR for all OCR requests
14.2.5.2 The user selects the radio button for the Local OCR
14.2.5.2.1 The software uses the Local OCR for all OCR requests
51
14.2.5.2.2 If the Local OCR plug-in is not installed a notification pops up stating
“Download the Local OCR in the Plug-ins section”
15. Application Trip
15.1 Overview This function adds and edits trip information
15.2 Add New Trip This function is called when the user presses the “Add Trip” button from the main menu 15.2.1 The software loads the activity for adding a new trip 15.2.2 The user enters the trip information on the basic tab (see Figure 15.A)
Figure 15.A : The “Basic Information” Tab of the Trip Application
52
15.2.2.1 The user clicks the date button and selects the date of the trip (see Figure 15.B)
Figure 15.B : Selecting a Trip Date
15.2.2.2 The user enters the trip name in the trip name text box 15.2.2.3 By defaults the software loads the 0 miles until locations are added 15.2.2.4 The user presses the “Tolls” button to add/view tolls (see Figure 15.C)
53
Figure 15.C : Viewing Trip Tolls
15.2.2.4.1 The user presses the “Add Toll” button (see Figure 15.D)
54
Figure 15.D : Adding New Toll
15.2.2.4.1.1 The user enters the toll amount 15.2.2.4.1.2 The user presses “Confirm” to add the entered toll to the list of tolls 15.2.2.4.2 The user views the list of all entered tolls (see Figure 15.E)
55
Figure 15.E : Viewing All Tolls
15.2.2.4.2.1 The user optionally presses and holds to edit or delete the toll 15.2.2.4.2.2 The user presses edit toll (go to Requirement 15.2.2.4.1.1) 15.2.2.4.2.3 The user presses delete toll 15.2.2.4.2.4 The software removes the toll from the toll list 15.2.2.5 The user presses the account list drop-down to select the account for the trip 15.2.3 The user enters the trip information on the Route Tab (see Figure 15.F)
56
Figure 15.F : The “Route” Tab of the Trip Application
15.2.3.1 The user presses the “My Locations” button (see Figure 15.G)
Figure 15.G : “My Locations” Button
57
15.2.3.1.1 The software loads the list of all entered “My Locations” (see Figure 15.H).
If the user has never entered any My Locations (go to Requirement 15.2.3.1.4)
Figure 15.H : My Locations List
15.2.3.1.2 The user selects a “My Location” from their “My Locations” list 15.2.3.1.3 The “My Location” selected is added to the location list on the Route Tab 15.2.3.1.4 If the user has never entered any “My Locations”, the software loads a “Add My
Location” pop-up 15.2.3.1.4.1 The user enters the following information in the “Add My Location” pop-up to create
a new “My Location”.
15.2.3.1.4.1.1 Name
15.2.3.1.4.1.2 Street
58
15.2.3.1.4.1.3 City
15.2.3.1.4.1.4 State
15.2.3.1.4.2 The user presses the “Confirm” button to save the new “My Location”
15.2.3.1.4.2.1 The new “My Location” is added to the location list on the Route Tab
15.2.3.2 The user presses the “Current Location” button (see Figure 15.I)
Figure 15.I : “Current Location” Button
15.2.3.2.1 The software temporarily puts a “Current Location” stub in the location list on
the Route tab and displays “Acquiring Current Location” (see Figure 15.J)
59
Figure 15.J : The “Acquiring Current Location” Notification
15.2.3.2.2 The software attempts to acquire the current location of the device
15.2.3.2.2.1 If the current location is acquired, the software loads the address into the
location list on the Route tab and displays “Current Location Acquired” (see Figure
15.K)
60
Figure 15.K : The Notification that Displays After the Current Location was Acquired
15.2.3.2.2.2 If the current location is not acquired due to GPS or data not being enabled on the
smart-phone, the software loads the settings page and displays a notification stating
“No Network Connection Enabled, Please Enable a Network Connection”
(see Figure 15.L)
61
Figure 15.L : The Notification that Displays if the Current Location Could Not be Acquired
15.2.3.2.2.3 If the current location is not acquired due to lack of GPS response, the software
displays a notification stating “GPS could not acquire current location”
15.2.3.3 The user presses the “Recent Locations” button (see Figure 15.M)
Figure 15.M : “Recent Locations” Button
62
15.2.3.3.1 The software displays a pop-up with a list of previously entered locations
15.2.3.3.2 The user presses a location from the previously enter locations list
15.2.3.3.3 The software loads the address into the location list on the Route tab
15.2.3.4 The user presses the “Add Location” button (see Figure 15.N)
Figure 15.N: “Add Location” Button
15.2.3.4.1 The software displays a pop-up displaying the following fields (see Figure 15.O)
63
Figure 15.O : The Pop-up that Displays After the “Add Location” Button is Pressed
15.2.3.4.1.1 Street
15.2.3.4.1.2 City
15.2.3.4.1.3 State
15.2.3.4.2 The user enters the address into the displayed fields
15.2.3.4.3 The user presses the “Confirm” button
15.2.3.4.4 The software verifies that the entered address is valid with Google Maps
15.2.3.4.4.1 If the address is valid, the address is added the location list on the Route tab (see
Figure 15.P)
64
Figure 15.P : The “Route” Tab of the Trip Application After Two Locations Were Added to the Route
15.2.3.4.4.2 If the address is not valid, a notification displays stating “Error: Could Not Find Address”
(see Figure 15.Q)
65
Figure 15.Q : The “Invalid Address” Notification
15.2.3.5 The user presses and holds a location in the location list to display a menu
15.2.3.5.1 The user presses the delete menu option
15.2.3.5.2 The location is removed from the location list on the Route tab
15.2.4 The user views the locations on the Map tab
66
15.2.4.1 The software loads all of the locations on the displayed map with their
associated index to the list displayed next to each point (see Figure 15.R)
Figure 15.R: The Route Locations, Indexed and Displayed on a Map
15.2.5 The software calculates the miles traveled given the list of locations on the Route tab
(see Figure 15.S)
67
Figure 15.S : The “Calculating Miles Travelled” Notification
15.2.5.1 The newly calculated miles are displayed on the Basic tab (see Figure 15.T)
68
Figure 15.T : The Basic Tab, Including a Calculated Value for “Miles Traveled”
15.2.6 The user presses the save button
15.2.6.1 The software saves all of the trip information. (see Requirement 7)
15.3 View/Modify Trips
This function displays all previously entered trips. The user edits and deletes trip in this function.
15.3.1 The software displays summary information for all trips displaying the following
(see Figure 15.T)
69
Figure 15.T : View/Modify Trips Main View
15.3.1.1 Trip Name
15.3.1.2 Date 15.3.1.3 Miles Traveled 15.3.2 The user presses a trip to edit the trip, go to Requirement 15.2.1
15.3.3 The user presses and holds to display the following options (see Figure 15.Q)
70
Figure 15.Q : View/Modify Trips Main View
15.3.3.1 Edit Trip, go to Requirement 15.2.1
15.3.3.2 Delete Trip
15.3.3.3 The user presses delete trip
15.3.3.3.1 The trip is marked for deletion
15.3.4 The user enters a string into the Search bar 15.3.4.1 The software searches the following fields in every trip upon the user pressing the enter key on the keyboard or the search icon
15.3.4.1.1 Trip Name
71
15.3.4.1.2 Trip Locations 15.3.4.2 The software displays the list containing the trip matching the search criteria
16. Application Camera Action 16.1 Overview This function loads the custom camera view for easy user entry of receipt image capturing. 16.2 The software loads the camera application (see Figure 16.A) 16.2.1 The software loads buttons label “Cancel”, “Take Picture”, “No Image” 16.2.1.1 User selects “Cancel” 16.2.1.1.1 The software returns to the previous state 16.2.1.2 User selects “Take Picture” 16.2.1.2.1 The software loads the confirmation state (see requirement 16.3) 16.2.1.3 User selects “No Image” 16.2.1.3.1 The software loads manual expense entry state (see requirement 5)
72
Figure 16.A : The Camera Application Used to Take a Picture of a Receipt
16.3 Image Confirmation
16.3.1 The software loads buttons labeled “Cancel”, “Add Part“ and “Ok” (see Figure 16.B)
73
Figure 16.B : The Menu that Displays After a Picture is Taken of a Receipt
16.3.1.1 User selects “Cancel” 16.3.1.1.1 The software returns to the calling function 16.3.1.2 User selects “Add Part” 16.3.1.2.1 The software loads the next state (see Requirement 16.4) 16.3.1.3 User select “Ok” 16.3.1.3.1 The software loads the next state (see requirement 3.3)
74
16.4 Add Part
16.4.1 The software displays the following (see Figure 16.C)
16.4.1.1 Transparent overlay of the bottom portion of the previous image
16.4.1.2 Displays the following button layout “Cancel”, “Take Picture”, “Skip”
Figure 16.C : Add Part
16.4.2 User selects “Cancel”
16.4.2.1 The software returns to the previous state
16.4.3 User selects “Take Picture”
75
16.4.3.1 The software changes the buttons selection (see requirement 16.3)
16.4.4 User selects “Skip”
16.4.4.1 The software displays next state (see requirement 3.3)
17. Voice Store Search 17.1 Overview This function makes adding an expense easier for the user. The user speaks the store and location into
the smart-phone microphone. The software uses voice to text to translate and finds the store and the
location.
17.2 The user says the store name followed by the city and state 17.3 The software translates and searches for the store 17.4 The software displays the store, city, and state 17.5 The user confirms the returned store, city, and state 17.5.1 The software returns to the calling function with the store information 17.6 The user optionally denies the returned store and is returned to the calling function
18. Online System Access 18.1 Overview This function allows the user to create an online account so that user expenses stored on the phone are synchronized to a remote database. 18.2 The user loads an Internet browser and loads the URL www.opticreceiptmanagement.com 18.3 The website displays several pages with a standardized menu bar (Figure 18.A and
Figure 18.B)
76
Figure 18.A : Menu Bar (Logged Out State)
Figure 18.B : Menu Bar (Logged In State)
18.3.1 Portal (see Requirement 19) 18.3.2 Profile (If currently logged in) (see Requirement 20) 18.3.3 Expenses (If currently logged in) 18.3.4 Trips (If currently logged in) 18.3.5 Reports (If currently logged in) 18.3.6 Export (If currently logged in) 18.3.7 Help 18.3.8 About 18.3.9 Register (If currently logged out) 18.3.10 Log in (If currently logged out) 18.3.11 Log out (If currently logged in)
19. Online System Portal 19.1 Overview This function relays important and summary information to the user about system wide changes, news, or alerts. 19.2 News (see Figure 19.A) 19.2.1 Version release notices 19.2.2 Version change lists
77
19.2.3 Upcoming Features 19.2.4 Important maintenance alerts 19.3 Summary of profile information if logged in.
Figure 19.A : Portal Page
20. Online System Profile 20.1 Overview This function relays important account specific alerts, modifying user information, managing associated devices, and viewing activity logs. 20.2 The menu on the left gives a list of sub-pages 20.2.1 Alerts (Default) 20.2.2 Change Account Info 20.2.3 Associated Devices 20.2.4 Activity Logs 20.3 The user selects the Alerts section (see Figure 20.A)
78
Figure 20.A : Profile - Alerts Page
20.3.1 The panel shows any pending alerts for the account 20.4 The user selects the Change Account Info section (see Figure 20.B)
Figure 20.B : Profile - Change Account Info Page
20.4.1 The web-page displays the following 20.4.1.1 A current password field
79
20.4.1.2 A new password field 20.4.1.3 A repeat new password field 20.4.1.4 A new email field 20.4.1.5 A repeat new email field 20.4.1.6 A submit button 20.4.1.7 A cancel button 20.4.2 The user enters their current password 20.4.3 The user enters their new password (if changing) 20.4.4 The user enters their new password again (if changing) 20.4.5 The user enters their new email (if changing) 20.4.6 The user enters their new email again (if changing) 20.4.7 The user presses Submit 20.4.8 The user presses Cancel 20.5 The user selects the Associated Devices section (see Figure 20.C)
Figure 20.C : Profile - Associated Devices Page
80
20.5.1 The web-page displays the following 20.5.1.1 A list where each item has the following 20.5.1.1.1 The general name of the device (make and model) 20.5.1.1.2 The ID of the device 20.5.1.1.3 The count of items pending sync from the server to the device 20.5.1.1.4 A button to display a list of items pending sync to the device 20.5.1.1.5 A button to disassociate the device with the web account 20.5.1.2 A button to generate a 1 time password for safer device association 20.5.2 The user presses the button to display a list of items pending sync to the device (see
Figure 20.D)
20.5.2.1 A modal panel (div) overlays the page
Figure 20.D : Profile - Associated Devices Page - Modal Overlay
20.5.3 The user presses the button to disassociate the device 20.5.4 The user presses the button to generate a 1 time password (see Figure 20.E) 20.5.4.1 A modal panel (div) overlays the page
81
Figure 20.E : Profile - Change Account Info - One Time Password Generation Modal Overlay
20.5.4.1.1 The temporary password is displayed at the center of the panel 20.5.4.1.2 The OK button is located at the bottom of the panel 20.6 The user selects the Activity Logs section 20.6.1 The web-page displays a list of recent actions and sync events. (see Figure 20.F)
Figure 20.F : Profile - Activity Logs
21. Online System Expenses 21.1 Overview This function displays stored expenses given specific filtering criteria 21.2 Filtering criteria available (see Figure 21.A)
21.2.1 Date Range
82
21.2.2 Accounts 21.2.3 Tag(s) 21.2.4 Store Chain(s) 21.2.5 Store Location(s) 21.3 Each expense entry displays the following (see Figure 21.A)
Figure 21.A : The Expenses Page
21.3.1 Date 21.3.2 Store Name 21.3.3 Total Price 21.3.4 Account
22. Online System Trips 22.1 Overview This function displays stored trips given specific filtering criteria 22.2 Filtering criteria available (see Figure 22.A) 22.2.1 Date Range 22.2.2 Trip Name 22.2.3 Mile Range
83
22.2.4 Presence of Tolls 22.3 Each trip entry displays the following (see Figure 22.A)
Figure 22.A : The Trips Page
22.3.1 Trip Name
22.3.2 Date
22.3.3 Miles Traveled
22.3.4 Tolls Total
22.3.5 More Information button/link
22.4 More information is visible under each entry if the entry is expanded (see Figure 22.B)
22.4.1 List of each location in the trip
22.4.2 List of each toll in the trip
84
Figure 22.B : Expandable Information
23. Online System Report
23.1 Overview
This function generates different reports given specific filtering criteria
23.2 Filtering Criteria Available (see Figure 23.A)
Figure 23.A : Creating Reports
23.2.1 Accounts
23.2.2 Stores
23.2.3 Months
23.2.4 Date Range
23.2.5 Tags
85
23.3 The website displays Reports in the Following Formats
23.3.1 Table
23.3.2 Graph
24. Online System Export 24.1 Overview This function exports the data in another format for user download. 24.2 The website displays a page with the following export options (see Figure 24.A)
Figure 24.A : The Export Page
24.2.1 Begin Date and End Date 24.2.1.1 The user selects the begin date and end date 24.2.2 Accounts 24.2.2.1 The user selects the account 24.2.3 Tags 24.2.3.1 The user optionally selects from tags used on existing expenses 24.2.4 Export Type 24.2.4.1 CSV 24.2.4.2 TXT 24.2.5 Export button/link
86
24.2.5.1 The user clicks the export button 24.2.5.2 A download dialog opens
25. Online System Help 25.1 Overview This function displays an instruction text with the possible inclusion of images for assisting the user to the proper use of the application. (see Figure 25.A)
Figure 25.A : The Help Page
26. Online System About 26.1 Overview This function displays general information about the project and those involved. (see Figure 26.A)
Figure 26.A : The About Page
27. Online System Register 27.1 Overview This function creates new online accounts for the user 27.2 The website displays a page with the following fields (see Figure 27.A) 27.2.1 User name
87
27.2.2 Password 27.2.3 Confirm Password 27.2.4 Email 27.2.5 Confirm Email
Figure 27.A : The Register Page
27.3 The user enters a user name 27.4 The user enters a password 27.5 The user re-enters the same password 27.6 The user enters their e-mail address 27.7 The user re-enters the same e-mail address 27.8 The user clicks the submit button 27.9 The website displays the Alerts sub-page of the Profile page with information on how to link device to the account (Requirement 20.3)
28. Online System Log in 28.1 Overview This function is responsible for user log in into the online system 28.2 The website displays a page with the following (see Figure 28.A)
88
Figure 28.A : Login Page
28.2.1 A user name field 28.2.2 A password field 28.2.3 A Submit button 28.3 The user enters their user name 28.4 The user enters their password 28.5 The user clicks “submit” 28.6 The website displays the Alerts sub-page of the Profile page
29. Online System Log out 29.1 The website displays a page with the following (see Figure 29.A)
Figure 29.A : Log-out Confirmation Page
29.1.1 A button to confirm log out 29.1.2 A button to cancel log out
89
30. Online System Data Transfer to Mobile Device 30.1 Overview This function is for the transfer of data from the server to the device. 30.2 The server stores the notification information in a list for device pull. 30.3 The server sends push notifications every X time up to Y times to devices that “data is available.” 30.4 The server removes notifications from the queue that are older than Z time.
31. Optical Character Recognition - Remote
31.1 Overview This function is for the remote optical character recognition. 31.2 The software sends the image is sent to remote service 31.3 Once a connection is established the image is sent to the remote OCR server 31.4 The remote OCR converts the image into text 31.5 The text is parsed pulling out the following information
31.5.1 Store name
31.5.2 Expense date
31.5.3 Expense total
31.5.4 Expense items
31.6 The parsed information is saved to the server’s database
31.7 The server sends notification to the phone (see Requirement 30)
90
NF. Non-Functional Requirements
NF.1 The software runs on Android 2.3.3 and greater NF.2 The smart-phone has on board memory or SD card NF.3 The smart-phone has a built in camera with auto-focus
Glossary Expense - money spent on something; this may or may not include a receipt image
Trip - a journey through a set of locations; typically used to get miles traveled for reimbursement OCR - optical character recognition or recognizer Tags - a link between multiple expenses or trips; commonly used for searching Connection - an Internet connection that links the phone to the server Local - any component listed as “local” means on the phone Remote - any component listed as “remote” means on the server Synchronized - when the phone sends/receives data from/to the server causing the phone to have the most up to date data Incomplete Expense - an expense that falls into the following categories; 1) the user took a picture of the receipt but selected “Save for Later” 2) the user did not completely fill out all of the expenses information Clean - In the context of ‘cleaned text’ this means text that has gone through a process that formats and corrects spelling, common OCR mistakes and invalid characters. Parse - the process of analyzing text information based on set of grammar rules and pulling out
necessary information