For review & will be basis of new roadmap
- Current application is fully usable for importing, categorizing & exporting transactions
- Extensible rules engine
- Import & Export
- User can create & edit categorization rules
- Transactions that will be affected by create / edit rule are displayed.
- Transaction table (display) with:
- a variety of filters.
- REST API for all current functionality
- Wrappers around MongoDB native driver functions which make db queries easier to write.
Current: There is no authentication. The app is intended to be used with client and server running on local machine and data locally or in MongoDB Atlas.
New: Implement authentication.
Current: UI works well for klequis.
New: Get feedback from other people and make improvements as needed.
Current: Little attention has been given to how the application looks.
New:
- A color scheme that leaves the user feeling a little happier. (It is currently too dark & moody).
- Better & consistant spacing.
Current: Categories are typed in. There is no list of existing categories.
New:
- User defined list of categories.
- 2 level hierarchical as currently expressed in the UI.
- List management UI.
- Category1 & Category2 in create/edit rule will desplay values from list.
Current: Functionality to find and return potential duplicates is already implemented on the server.
New: UI to present and allow resolution of duplicates.
Current: The user must put the data files (.csv) in the server/data directory & then run import by inputting a url in the browser's address bar.
New: Create a UI to select files with data to import & an Import button for the user to click on.
Current: The set of files to import from must contain all transaction history for all accounts. Import wipes all transaction data currently in the database, replaces with new from files and re-runs rules.
New: Import will examine each file the user chooses to import and:
- identify and import only new transactions.
- produce a conflict / duplicate report if any are found.
When import completes a page will be displayed to the user with the following for each account:
- account id
- number of transactions before import
- number of transactions imported
- new total number of transactions
- any problems encountered.
Current: Amazon purchases show on credit-card statements which do not show what was purchased.
New: A purchase history report can be downloaded from Amazon. This file is significanly different from all other accounts. An additional dedicated import routine may be needed. The current structure of accounts should be able to accomodate Amazon history.
Current: The current UI for rule conflicts is in CriteriaResults. It shows which rules will be overwritten by the new or existing rule currently being edited/created by the user. The information show is not sufficient to make a 100% certain decision.
New: Improve the UI to enable the user to make a more informed decision.
Current: Criteria are focused on text (beginsWith, contains, etc). Only equals works with numbers and is doing a string comparison, not a number comparison.
New:
- Add operators:
- greater than (>)
- less than (<)
- less than or equal to (<=)
- greater than or equal to (>=)
- does not equal (<>)
- UI should use existing information of data type and present an appropriate sub-list of all operators.
Current: All transactions in the db are loaded at the same time and the UI gets very slow with 1,000 transactions or more. Current test set is 2230 transactions and is usable but annoyingly slow. It has been confirmed that the slowness is cause by browser rendering the large table.
New: Implement a virtual window solution.
Current: Accounts and column maps must be typed into MongoDB.
New: A UI/form for creating an account with colum mappings.
Current: Setting-up the app is not difficult for a developer but could not be done by a non-developer.
New: Automate
- db creation locally & on MongoDB Atlas.
- Instance of client & server that can serve multiple users.
- Deployment of client and server to dedicated location on user's behalf.
- Option to run client & server locally.
Question: If the user wanted to keep their data private what is required. E.g.,
- Have Private Money create and manage a MongoDB for them with encrypted data only the user can see (ala Signal), OR
- Create for the user their own MonoDB Atlas account that the developers/managers of Private Money have no knowledge of.
- Option to use Plaid API for data retrieval.
- A mobile version. Klequis would never use the app on his phone or other mobile device, so didn't design for it.
- Reporting: Currently, the app exports categorized transactions to .csv which can then be manipulated in Excel. This works for me, but there are a number (likely > 5 and < 10) reports that a user would want to have. The queries for these reports are not difficult and can be added to the API. Charts can be created using a visualtion tool such as D3.