wgaffa / personal-finance Goto Github PK
View Code? Open in Web Editor NEWA personal finance project to learn Haskell
License: BSD 3-Clause "New" or "Revised" License
A personal finance project to learn Haskell
License: BSD 3-Clause "New" or "Revised" License
AccountTransaction should be more aptly name Transaction.
It is meant to hold a single entry affecting that account
Add an Account field and rename the type.
Use accounting periods as described here
In the intermediate outputs when showing what transactions currently are in memory the description is empty.
Best would probably be to show description as well (possibility would be to not show it all)
When entering transactions nothing is output until everything is done.
We can output the account to indicate what account we found, this gives
the chance to abort if the user did a mistake.
When creating a transaction all entries should be grouped by an id.
Some ideas are
See if we can create some better experience with some Terminal UI shenanigans.
Perhaps have some default shown in greyed out color for example
Use configuration file
Some possible configurations are
The file should be looked for in this order
When entering transactions we can print out the intermediate transaction and balance to the output.
This will be easier to see what you have entered and what the balance is.
When adding a new account perhaps have some sort of autocomplete so you don't need to type it perfectly everytime
I don't think State monad is needed for entering several transactions.
Think it can be done using the go pattern?
loop/recursion and accumulate a list of transactions, when the transactions balance equals zero we are done.
Able to enter a full transaction detail.
You should be able to enter several transactions until the balance becomes zero.
All transactions must be on the same day so the inputs should be
This type should be more aptly named to something like Entry or TransactionEntry or maybe even Amount.
Should be a way to check the validity or health of the database.
It would include
Improve the render api to return String instead of using IO for example.
The output is more or less like a table with columns and some separators so far, it might be good to have a Doc or Table type
and render that using Boxes.
A triage balance is just the accounts balance when listing them.
Make App a newtype and implement necessary instances for it.
Sometimes reading input the floating precision is off
I once entered 17.90 but the output was 17.89
The commands can probably be better
maybe we have a 'create' command for adding/creating accounts and transactions
personal-finance create transaction
personal-finance create account
The db-connection flag can probably be shortened as I think we'll stay with only sqlite3.
When listing transactions for an account filter on start and end date
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.