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
This type should be more aptly named to something like Entry or TransactionEntry or maybe even Amount.
When creating a transaction all entries should be grouped by an id.
Some ideas are
Use configuration file
Some possible configurations are
The file should be looked for in this order
When adding a new account perhaps have some sort of autocomplete so you don't need to type it perfectly everytime
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.
See if we can create some better experience with some Terminal UI shenanigans.
Perhaps have some default shown in greyed out color for example
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)
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
Use accounting periods as described here
When listing transactions for an account filter on start and end date
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.
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.
Sometimes reading input the floating precision is off
I once entered 17.90 but the output was 17.89
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.
A triage balance is just the accounts balance when listing them.
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.
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.
Should be a way to check the validity or health of the database.
It would include
Make App a newtype and implement necessary instances for it.
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.