dlebech / otb Goto Github PK
View Code? Open in Web Editor NEWParsing bank transactions in the browser only
Home Page: https://otb.hirobo.dev
License: MIT License
Parsing bank transactions in the browser only
Home Page: https://otb.hirobo.dev
License: MIT License
When adding transactions from e.g. an Excel sheet (.xlsx), the app throws and error and puts the add transactions page into an unrecoverable state. Add an error message to the page rather than fail spectacularly.
When doing text search on e.g. page 2, and there is only a page 1, it doesn't automatically switch back anymore. This used to work of course :-)
With many years of data in different CSV files, it becomes difficult to manually keep track of duplicates. It would be nice to be warned about duplicates when uploading new transactions.
If the imported transactions do not have properly chosen column specifications (like if we don't know what the amount field is, then bad things happen. So it would be nice to have a little bit of validation checks when importing the transactions.
It is easy to forget to check that everything looks ok before pressing that big Save button :-)
Got an error from the currency today when trying to use DKK as base currency instead of SEK. "Rates for 2018-06-30 do not exist". Curious.
I think this happens when there are two currencies and it needs to load all the currencies before starting to draw the graphs.
Perhaps it could make an initial render of the charts without currency conversions, just so something happens rather than the spinning logo.
This could potentially turn into a larger overhaul where we store historic currencies or conversions in the redux store, since these really shouldn't change over time.
This is actually a bit frustrating. When re-categorizing a lot of transactions, it is necessary to first click on edit and then on the dropdown. It would be nice if it focused automatically
This becomes pretty useful pretty quick :-)
When an item is refunded, the original expense is still the only thing showing up in expenses overview. This leads to an incorrect view of expenses.
Discovered because Danish bank statement had weird characters for æøå. It's because their CSV output is in latin1 instead of utf-8 👍 👎
There is a null
exception which is silently ignore in production.
Add a date-format dropdown box when importing transaction data to aid moment-js in parsing the dates correctly. For example, a date like 31.01.2018
does not work currently
It looks like the classifier sometimes picks up on a date in the transaction description and uses this to classify. This leads to some weird results
One of the main appeals of Off The Books was the idea of managing multiple accounts across currencies.
A step one for this could be to add an account name and currency field to keep track of multiple accounts. That's a good start...
The problem with currencies is really getting reliable exchange rates without using some limiting API and without making requests to remote servers, exposing the IP address and thereby going against the principles of Off the Books.
If an API is needed for fetching exchange rates, perhaps a Lambda or Cloud function could be used as a proxy to the API to ensure some kind of privacy.
This is a general pattern for remotely fetched information btw, but let's not digress :-)
Perhaps this dataset is a good starting point.
All pagination pages are kept intact when show only uncategorized is marked.
There is a whitelist for the parts of the state to store in the localstorage in the browser. This whitelist is ignored when downloading data, leading to both the "edit" and "search" states being downloaded. This is unnecessary.
It's annoying to have to go to the manage data page for this
When selecting a category, it will sometimes be overwritten if the reducer is in the middle of guessing categories for all transactions.
I.e. it is a timing issue.
Also, if the category does not change between guesses, don't update it.
It would be nice if the sorting stays intact between page loads. Could probably be implemented on the transactions reducer...
It seems that if a transaction is already in a group, it cannot be re-assigned to a new group. This is probably good, but it is inconvenient if an existing group is being amended with a new transaction.
Let's say we have Transaction A, B, C, D. A and B are already grouped.
For most people, tax is probably not part of a bank transaction list. Rather, the income shown on a bank statement is the income with taxes already subtracted.
In some cases (e.g. for business owners), the tax might be manually paid, or the tax could show up for another reason.
This is a problem, because if the tax is counted as an expense, it will probably dwarf all other expenses in a given month, and it's not very relevant since tax is not something that can be controlled.
Ignoring the tax transaction is not a good solution, because it potentially creates and income skew. For example, if the income is $10, and tax is $4, ignoring the transaction will make it look like the income is $10 (which is wrong) and including the transaction will create an expense of $4 (which can be kind-of misleading).
Ideally we would want to see a single positive entry in the charts of $6 which is the absolute income after taxes are subtracted.
The tax problem essentially be modelled as a negative refund so solving #85 will also help in solving this issue.
Initial filtering options should just include transactions without categories
This must have been a side-effect of the recent changes.... I should probably consider adding more tests 😬
Need some way to mass-approve category guesses. It quickly becomes tedious to approve each transaction individually, even if it only needs to be done once.
When restoring the data, account information is not restored. Ouch.
If the same transaction, with the same amount and same day appear on multiple accounts, "skip duplicates" will ignore it.
Potential solution: Use the account ID when determining the duplicate.
This kind of duplicate should happen so rarely that it might not be worth it to do this though. Instead, maybe just show number of rows skipped, so it's obvious to the user.
Related to #55
This could be a bit nicer.
Presets:
Updates a date select. This feels like something I've done before :D
Seems to be a pretty important category...
Consider adding an "online services" category for stuff like DNS and domains, just to keep it simple.
Also consider adding "alcohol" category under food & drink. The liquor store as a concept is probably not that uncommon
Also consider "cinema/theater/concert" as a category for entertainment.
This is probably due to the recent change in dates. Needs investigation.
When unselecting "round amounts" checkbox, "full amount" disappears from the tooltip over the amount, but the amount itself does not change. Perhaps it should...
The currencies returned by the euro foreign exchange does not include weekends. This is usually not a problem, because most transactions fall on weekdays anyway (because those are bank days). Still, it would be nice to support this.
Initially, should probably just use Friday's exchange rate for the weekend.
There seems to be a problem with income. It doesn't show positive transactions properly. Investigate
Filtering by date is already supported on charts, so it should be pretty straightforward to also implement it on the transactions page.
The bundle size is currently 1.2MB during development. It can probably be reduced a bit with better code-splitting.
Yep, that seems to be a thing.
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.