Give clarity in your bank expenses.
Generate report from csv
./expenses \
--csv=testdata/transactions.csv \
--yaml=testdata/transactiontypes.yaml \
--period=3y
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
Boekdatum Rekeningnummer Bedrag Debet / Credit Naam tegenrekening Tegenrekening Code Omschrijving Saldo na boeking- ETL project structure
- Extract, Transform + unit tests
- Reports:
3mfor 3 months,2yfor 2 years
- report: all untyped transactions
- CLI
- linting
- Seperate report and untyped (+ cli commands)
- show transactions per type
- rename: type -> category?
- 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
-
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?
- provide api with Gin
- support duckdb as backend