An open API service indexing awesome lists of open source software.

https://github.com/aretecode/finance

Personal Finance Tracker in NoFlo
https://github.com/aretecode/finance

Last synced: 5 months ago
JSON representation

Personal Finance Tracker in NoFlo

Awesome Lists containing this project

README

          

[![Build Status](https://travis-ci.org/aretecode/finance.svg)](https://travis-ci.org/aretecode/finance)

[![Deploy to Heroku](https://www.herokucdn.com/deploy/button.png)](https://heroku.com/deploy)

# [Previous](https://github.com/aretecode/finance/tree/response-separation)

# Wondering
* [x] Default wiring for Components connect & disconnect? (@see component/Validate)
* [x] How to test components that do database transactions? (@see spec/)

^ both of these were caused thanks to inheriting an auto port disconnect when prev process disconnected.

* [x] Why the first test will timeout, and why they will all timeout sometimes? (Have to use a stupidly high [10 sec] timeout when testing... this was fickle.)
* [x] How to send array to inPort.pattern in xpress/Router using FlowHub [the order they are dragged] [issue425](https://github.com/noflo/noflo-ui/issues/425) [issue111](https://github.com/noflo/noflo-ui/issues/111) [issue24](https://github.com/noflo/noflo-ui/issues/14)
* [ ] Why does https://github.com/noflo/noflo-xpress/blob/master/lib/BaseRouter.coffee not list `HEAD` and `PATCH` as valid verbs?
* [ ] Where to do HTTP reqs go after Server is set up (In FlowHub)?
* [x] Where to set up Routing Server in FlowHub?
* [x] Why the pool gets destroyed when including the connection now? (module.exports are cached)
* [x] How to pass data on with no inPort? (loadbang only)
* [x] Why you can't delete projects from github on FlowHub? (there is an API, but not UI (link))
* [ ] Is # @runtime noflo-nodejs still useful?
* [ ] Why does FlowHub duplicate projects cloned into it appending `username` before `name` and give duplicate components for that project? (upload gif of it)
* [ ] Can the Component change icons with the label? Or have access to the label name?
* [ ] Would it be better to have a Connection Component attached to the piping, or get connection in each Component?
* [ ] can FlowHub only pull from Master?

# New:
* [x] rename FinanceOperation to FinanceOp
* [x] put database init/cleanup functions called in beforeAll/afterAll
* [x] merge Expense & Income entities (finance_op)
* [x] rewrite main queries for finance_op
* [x] change string id to uuid type (then to char(36))
* [x] add (done()) to tests
* [x] parse in JSON
* [ ] parse JSON body only on certain routes
* [x] simplify tests
* [x] simplify entities
* [x] move away from OOD & OOP (looking @ you src/)
* [ ] write a better SUM query for balancetrend
* [x] make it work on FlowHub
* [x] recreate FBP graphs as subgraphs in FlowHub
* [x] recreate *all* FBP graphs
* [x] example of all working in FlowHub
* [x] make it work in FlowHub
* [x] make it *all* work in FlowHub
* [x] make it work on Heroku
* [x] change multiple routers to use (FlowHub)~arrayport
* [x] could pass (req) down one pipeline, no res port (will this reduce reusability of the components atomically? yes, but it focuses code it for this one instance)
* [ ] pass DB connection down the pipe along with req?
* [x] rename `name` as `type`
* [x] change CRUD not only to better represent what it does in name (between Route and rest of the machines for that Route) but also use boolean inPorts to set the properties being set by components that (currently) extend it. (removed)
* [ ] Response could be one inPort, pass in data about which one it is
* [ ] stricter Tests when truncating afterAll() since we have a limited dataset
* [ ] refactor Database to lib/

# @TODO:
* [x] Validate
* [x] Validate.update (optional params)
* [x] use WirePattern
* [x] use WirePattern more in depth
* [x] use Group
* [x] use FloHub
* [x] use FloHub more in depth
* [x] fix this Test inconsistency (sometimes has a timeout, usually on first test?)
* [x] pass the `req` down a side port to the Response
* [x] update all properties
* [x] PATCH to PUT unless I extend lib/BaseRouter
* [x] fix PUT to POST
* [x] .fbp into .json
* [x] import .json into flowhub via github (using https://github.com/noflo/noflo-browser-app)
* [x] add .json to github via flowhub
* [x] Test methods of the src/ (FinanceOperation, Tag)
* [x] improve code clarity in FetchWithMonthYear
* [x] add Income
* [x] add Balance Reports
* [x] download flowhub graphs and run them in noflo
* [ ] convert raw queries to knexjs
* [x] change test order so it doesn't have to be run three times
* [ ] use .locals in ExpressJS?
* [ ] Logging
* [ ] Route erorr reqyest through Log
* [ ] put noflo exports in FinanceExports? Split src/ into a diff repo?
* [ ] report issue @NoFloUI duplicate project name
* [ ] change graph names to temp fix problem from ^

# After
* [ ] pass in connection to an inPort (@see components/Database)
* [x] Test with HTTP
* [x] update tags
* [ ] add Morgan as Middleware to log
* [x] send things after tags are all saved (@see components/Store)
* [ ] improve query to save if not exists (use Raw) (@see components/Store)
* [x] select only required columns
* [x] Filter null instead of returning in the map in FetchList
* [x] TODOS in non noflo `personal-finance-tracker` (moved here)
* [ ]
* [x] add Travis
* [x] use Travis
* [x] Travis badge
* [x] use Groups to send the data to Response (rather, put all in one data pipe)
* [ ] Test using noflo-tester using .fbp
* [ ] Test in FlowHub (http Component?)
* [x] call Super insteadof childConstructor
* [x] remove unnessecary port events

# Future
* [x] Change update to use query insteadof params for updating individual parts (actually, body insteadof params&query)
* [ ] add rollback & undo feature to the commit
* [ ] filter XSS in the description
* [x] static (or something) optional Error port sender
* [x] Validate could be a filter insteadof a Component (better how it is)
* [x] transform Data before going to Validator? in Create or _ (n/a)
* [x] add chaining constructor to src/Factory (removed Factory)
* [x] Test the AuthMiddlewareComponent
* [x] Test the DeleteComponent (removed)
* [x] could change CRUD to take inPort of the action and not need named Components (removed)
* [x] work with BlueBird Promises
* [ ] work with BlueBird more in depth
* [x] validate range in BalanceTrend
* [ ] write documentation?
* [ ] port for each Validate param?
* [x] multiple responses in components/Response not just failure success(pass)
* [ ] maybe https://github.com/noflo/grunt-noflo-manifest
* [ ] add all the Grunts
* [ ] use backbone

# NoFlo extension
* [ ] dig into the noflo source code & compare how it translates from PHP & if any of my extensions are applicable
* [x] ^ did a microextension (addOn)
* [x] add SendThenDisconnect()
* [x] addInOnData

# Other
* [x] rename `successful` to `success`

* A lot was learned & used from https://github.com/noflo/noflo-xpress

* Wow... if you add a repo from github to FlowHub, the first one is named `name` the second one is named `username_name`