Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

User Journey

  • 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".

Account creation

  • 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

Budgeting

  • 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

Co-Budgeting

  • 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

Budget Audit Arch Diagram

Budget audit arch diagram

SERVER SCHEMA

learn more about the schema here

Request Path

Here is an exampe of how a request for vault backup manifests (metadata) is handled

image

Vault Management

Budget Audit vault managemt

About

The application layer server for the Budget Audit project

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages