Skip to content

Dirc/expenses

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Expenses

Give clarity in your bank expenses.

Run

Generate report from csv

./expenses \
  --csv=testdata/transactions.csv \
  --yaml=testdata/transactiontypes.yaml \
  --period=3y

Development setup

go mod init
go mod tidy

go test ./... -v
golangci-lint run # Install golangci-lint from https://golangci-lint.run/usage/install

go build -ldflags="-X 'main.Version=$(git describe --tags --always)'" -o expenses cmd/main.go

CSV Columns

Boekdatum	Rekeningnummer	Bedrag	Debet / Credit	Naam tegenrekening	Tegenrekening	Code	Omschrijving	Saldo na boeking

ToDo

V2.0

  • ETL project structure
  • Extract, Transform + unit tests
  • Reports: 3m for 3 months, 2y for 2 years

v2.1

  • report: all untyped transactions
  • CLI
  • linting

v2.2

  • Seperate report and untyped (+ cli commands)
  • show transactions per type
  • rename: type -> category?

future ideas

  • Load to sqlite (or duckdb?) -> nice, but so far the data is small enough to generate on the fly
  • incremental updates -> idem
  • UI
  • Variable csv columns

MVP (old)

  • add column "transactionType" e.g. boodschappen, vakantie, vasteLasten, fun

  • create db connection in main and use db as input for other funcs. (as in dev.go createTable)

  • make generateTransactionType more general

    • general for loop sql
    • struct as input
  • unit tests

    • create-db
    • transactionTypes
  • print total amount per transactionType

  • print pretty with padding

  • define multiple transaction structs

  • run as cli

    • init
    • load transactionTypes (from yaml?)
  • transactionTypesTotal:

    • add time: "from" till "when" the data is captured
    • add column for expenses per month
  • printUnknown: print table for all unknown

  • store struct in seperate table?

    • method to add/rm search items
  • make importing csv more general

    • input: csv, list of columns?

nice to haves

  • provide api with Gin
  • support duckdb as backend

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages