- P - Persona 1
- F - Persona 2
- The system - persona's device using budget audit
- vault - can be shared or private. Stores budgeting information
- vaults participants - each entry represents an association between a user and a vault
- Concept - A real world and concrete idea that represents the user's abstract needs (accounts) in a budget. This allows user's vendor - Account associations to persist across budgets, i.e., a concrete concept like "Commute", allows the system to understand user specific transaction names ie "Work commute" and "Pick child".
-
P opens the application for the first time.
-
P Starts sign in process.
-
P enters the bio details
-
The system registers a new user with supabase
-
On successful registration system calls signup trigger
-
Signup trigger creates a new private vault locally
-
Signup trigger creates a new vaults participants field associating supabase id (user identity) with the private vault
-
P creates a budget [ie.,
monthly budget] -
P creates categories within the budget [i.e.,
Food,Transport] within the budget -
P creates accounts within each category [i.e., Food (Groceries, takeout)]
-
For each account, P associates the account with a Concept
-
P saves their budget configuration.
-
The system saves the configuration locally
-
The system encrypts everything in the private vault using the private key
-
The system uploads the document to bucket
-
On successful upload, the system uploads the metadata
-
P wants to analyze their trasactions against their budget
-
P enters their bank trasaction statement PDF
-
P chooses the financial inst from a list of supported
-
The system requests all parse information for the bank (including older information for backward compatibility)
-
The system follows regex instructions and attempts parsing using all the instructions, stopping incase one is successful
-
The system extracts specifically money out transactions
-
The system caches instructions to reduce reliance on online connectivity
-
The system uses a fuzzy search to index all the vendors in the financial documents
-
The system checks to see if any accounts have been previously associated with the vendors
-
The system allows the user to create associations for all the transactions (transactions under the hood are tied to concrete concepts). This step is required by the system.
-
The system also presents the transactions that it has very positively identified.
-
The system allows the user to perform operations such as split transaction (in case one verndor was used to fulfill different accounts), Ignore transactions (to avoid outliers), to re-associate incase a wrong association was made.
-
Once P is comfortable, the user chooses to analyze thier spending against their budget
-
The system stores their information in their private vault
-
The system encrypts the private vault
-
The system uploads the encrypted information and its metadata
-
P can now see analysis of his spending!
-
Later on, P moves to a new place, his budget is completely unusable. he needs a new one.
-
P is creating the accounts, but he realizes that the system suggests concepts related to the account.
-
The system makes the suggestion mostly using fuzzy matching.
-
P chooses concepts most closely matching his needs, but sometimes no concepts match the account as well.
-
P saves the new budget.
-
The system saves and encrypts
-
The system then uploads
-
The system updates concepts accordingly.
-
P decides to analyze their new paycheck
-
The system relies on concepts to retain vendor - account relationships in the new transactions
-
P goes through less hell creating associations
-
P intends to budget with their close friend F
-
P starts the shared budget
-
The system initializes a new shared vault that only P is a part of
-
The system generates a new DEK for the vault
-
P sends F and invite link
-
F accepts
-
F's system authenticates them to accept invite
-
F's system shares its public key via the server
-
P's system uses F's public key to wrap the vaults DEK
-
F's system uses their private key to unwrap the DEK
-
Both systems now have a DEK that can decrypt the shared vault
-
Budgets created in the shared vault are accessible by both F and P
Here is an exampe of how a request for vault backup manifests (metadata) is handled

