/pluot

Pluot is a service and web app for personal finance management.

Primary LanguageHTML

Prerequisites

  1. Polymer 2.x
  2. Google App Engine Standard SDK for Golang

Installation

  1. Pull down all the polymer dependencies with polymer install run from the webapp folder.

Deployment

To deploy to App Engine, you'll need to create a Google Cloud project.

  1. Run go run package_webapp.go from the tool folder to build the web app and copy it to the service folder.
  2. Run dev_appserver.py service/src/github.com/rltoscano/pluot/app.yaml to run a development server. The server will be started at http://localhost:8080
  3. To deploy to prod run gcloud app deploy service/src/github.com/rltoscano/pluot/app.yaml --project=$MYPROJECT where $MYPROJECT is set to whatever App Engine app you've created.

Data Model

Currency

All amounts are represented as 64-bit integers in US pennies and displayed in USD.

Txn

Financial transactions.

Properties

  • ID - int64
  • PostDate - Timestamp
  • Amount - int64
  • OriginalDisplayName - string, name of the transaction as imported
  • DisplayName - string, server-generated display friendly name of the transaction
  • UserDisplayName - string
  • Note - string
  • Category - int, system-generated category.
  • UserCategory - int, user override category.
  • Splits - int[], IDs of transactions split from this one.
  • LastUpdated - Timestamp
  • SplitSourceID - int, ID of the source transaction that this transaction was split from.

UploadEvent

Properties

  • ID - string
  • EventTime - Timestamp
  • User - string
  • Source - string
  • Start - Timestamp
  • End - Timestamp

Processes

Transaction Upload

  1. Download CSV from bank.
  2. Visit /upload.
  3. Choose appropriate parser.
  4. De-dupe any transactions.
  5. Visit /txns to see all transactions.

UI