GithubHelp home page GithubHelp logo

xiphe / budgetbudget Goto Github PK

View Code? Open in Web Editor NEW
92.0 11.0 7.0 6.89 MB

๐Ÿงฎ make financial decisions with confidence

Home Page: https://budgetbudget.app

License: GNU General Public License v3.0

TypeScript 89.60% HTML 0.36% JavaScript 1.11% CSS 1.66% AppleScript 0.16% SCSS 7.11%
budgeting budgetmanager envelope-budget macos-app electron-app moneymoney typescript reactjs moneymoney-transactions envelope-budgeting

budgetbudget's Introduction

BudgetBudget

ย 

gain confidence in financial decisions
by planning monthly budgets for MoneyMoney transactions

ย 

How to use

  1. Go to the BudgetBudget download page
  2. Download the latest version
  3. Open the .dmg file in your downloads folder
  4. Drag the Application into your Applications folder
  5. Start the App
  6. Follow the instructions
  7. Value ๐Ÿค‘

Contributing

You're really welcome to submit Pull Requests and Issues.

Please keep in mind that i'm building this app in my free time and don't plan to monetize it.
That means all help is really welcome but it might take some time for me to respond to issues or review PRs.

Run the app in development mode

All of the following assume that you're working on a recent version of MacOS and have NodeJS installed.

Run the following in your terminal:

# check out the source-code
git clone [email protected]:Xiphe/budgetbudget.git
cd budgetbudget

# install dependencies
npm install

# start the app in development mode
npm start

Screenshot

screenshot_1

License

BudgetBudget - work with monthly budgets alongside moneymoney Copyright (C) 2020 Hannes Diercks

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

budgetbudget's People

Contributors

dependabot[bot] avatar drexlma avatar leo-benz avatar xiphe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

budgetbudget's Issues

Refresh MM data

When working with budgets I want to have a button/menu-entry to manually refresh the data from MM. So that my latest transactions and category changes show up.

bank accounts in MM that only display the last 90 days of transactions

copied from #38 (comment) by @fazzer4x

Currently BB is set to budget forward, basically to forecast expenses and generate savings. The challenge that arises has to do with bank accounts in MM that only display the last 90 days of transactions. Take ING for example.

Should BB ever want to have features such as charts or budgeting averages:

will BB save transactions from MM and create a local working copy database?
or
should BB only pull all available transactions and go from there?

The automated release is failing ๐Ÿšจ

๐Ÿšจ The automated release from the alpha branch failed. ๐Ÿšจ

I recommend you give this issue a high priority, so other packages depending on you could benefit from your bug fixes and new features.

You can find below the list of errors reported by semantic-release. Each one of them has to be resolved in order to automatically publish your package. Iโ€™m sure you can resolve this ๐Ÿ’ช.

Errors are usually caused by a misconfiguration or an authentication problem. With each error reported below you will find explanation and guidance to help you to resolve it.

Once all the errors are resolved, semantic-release will release your package the next time you push a commit to the alpha branch. You can also manually restart the failed CI job that runs semantic-release.

If you are not sure how to resolve this, here is some links that can help you:

If those donโ€™t help, or if this issue is reporting something you think isnโ€™t right, you can always ask the humans behind semantic-release.


Cannot push to the Git repository.

semantic-release cannot push the version tag to the branch alpha on the remote Git repository with URL https://[secure]@github.com/Xiphe/budgetbudget.git.

This can be caused by:


Good luck with your project โœจ

Your semantic-release bot ๐Ÿ“ฆ๐Ÿš€

"unsaved changes" warning on close

Currently it's really easy to accidentally discard a unsaved budget. There should be a warning when the budget is about to be closed without saving

Contribution docs

For people that want to run the app from source locally or want to contribute there should be docs on how to setup the app and get it running.

Add initial balance setting

Assuming that most accounts will not come with 100% history

Maybe even auto-calculate it on budget creation

Build the app

requires:

  • build script that works at least locally
  • upload build artifact to github releases

error messages when opening an existing budget

when opening a previously saved budget, following errors are displayed in the terminal.

[start:electron] [56663:0420/220440.268553:ERROR:gles2_cmd_decoder.cc(18903)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoCreateAndTexStorage2DSharedImageINTERNAL: invalid mailbox name
[start:electron] [56663:0420/220440.268752:ERROR:gles2_cmd_decoder.cc(18924)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoBeginSharedImageAccessCHROMIUM: bound texture is not a shared image
[start:electron] [56663:0420/220440.268849:ERROR:gles2_cmd_decoder.cc(13814)] [.DisplayCompositor]GL ERROR :GL_INVALID_VALUE : glScheduleCALayerCHROMIUM: unsupported texture format
[start:electron] [56663:0420/220450.025253:ERROR:gles2_cmd_decoder.cc(18953)] [.DisplayCompositor]GL ERROR :GL_INVALID_OPERATION : DoEndSharedImageAccessCHROMIUM: bound texture is not a shared image

Add alpha warning

Since I will make the alpha publicly available for everyone I want to add a banner saying

  • this is a alpha use at own risk
  • it wont update by itself see [github releases]
  • if you encounter bugs or have feedback please submit them [github issues]

Use startDate for leftmost month in budget view scroll

Currently it is possible to scroll left infinitely. This actually makes no sense since there will not be transactions before that point (hence the name "startDate").

If there is a finite, defined left point then I can use https://react-window.now.sh/ for layouting and jumping to specific entries.

I'd also add an additional leftmost card that says "hey you configured the budget to start here, go to preferences (link) to change this".

Support simple calculations in BudgetInput

The reactive interface that updates all values as I type has one downside.

When I want to zero-out a category or the "to Budget" amount I would normally update the value and add/substract the amount while calculating it in the head. Now that the amount changes while I type this sets off my calculation and I need to know the correct amount before I start typing.

Also the calculator feature of YNAB is cool and helpful to change numbers on the fly.

The Idea is to evaluate simple math +-*/ in the budget input. And while one of these chars is in the input do not reactively update everything else.

Create FAQ

There already are some recurring topics and I want to document these

Migrate to uuid ID for categories and accounts

The upcoming version of MoneyMoney will provide a category export (ref #39).
It will also support getting transactions from accounts that don't have a accountNumber (like Offline/Cash accounts).

Both fixes are using a new uuid format for ids that is not compatible with the account numbers and category ids currently being used in .budget files.

Question is: Should I try to provide a migration for budget-files? Or would it be OK if we throw away our previous files and start fresh?

Recent budgets

App should be aware of recently opened files

  • welcome view should offer opening a recent file or to create a new one

Next/Prev month is not loaded when scrolling at bottom of budget

Given I have a budget with lots of categories

And I scroll (probably > 100vh) vertically
And I scroll horizontally to the next or previous month

Then I expect the month to be loaded immediately

But the month is not loaded at all.
And I need to scroll up in order to have it loaded

Cover main user flows with integration tests

In order to not accidentally ship bugs, the core functionality should be tested before each release:

  • create a new budget
  • import some transactions
  • insert some budget values
  • numbers are as expected

Auto-Assign budget values (Quick Actions)

As suggested by @jeifour it would be helpful when:

  • Budget (or remove) money to/from a category so that its remaining funds become zero
  • Budget (or remove) money to/from a category so that the global money "to budget" becomes zero
  • Budget the same amount to a category as the month before
  • Budget as much to a category as was spent in it the month before

Error on creating a new budget

on Alpha 7

[start:electron] Error occurred in handler for 'MM_EXPORT_ACCOUNTS': Error: Unexpectedly got string as icon
[start:electron]     at /Users/User/dev/bb-test/budgetbudget/main/moneymoney/handlers.ts:29:13
[start:electron]     at Array.map (<anonymous>)
[start:electron]     at base64Icons (/Users/User/dev/bb-test/budgetbudget/main/moneymoney/handlers.ts:21:15)
[start:electron]     at Object.<anonymous> (/Users/User/dev/bb-test/budgetbudget/main/moneymoney/handlers.ts:74:14)
[start:electron]     at step (/Users/User/dev/bb-test/budgetbudget/main/moneymoney/handlers.ts:44:23)
[start:electron]     at Object.next (/Users/User/dev/bb-test/budgetbudget/main/moneymoney/handlers.ts:25:53)
[start:electron]     at fulfilled (/Users/User/dev/bb-test/budgetbudget/main/moneymoney/handlers.ts:16:58)
[start:electron] npm run start:electron exited with code 0

MoneyMoney category export

Currently MoneyMoney does not have an API that exposes all categories and their meta-data.

Due to this, BB is extracting the categories from imported transactions.
Which has a few downsides:

  • unused categories can not be shown
  • order is not stable and changes whenever the oder of transactions change
  • meta-data such as budget, currency can not be used
  • category groups are derived from category name and therefore their ID is unknown.

I asked the MoneyMoney developer what he thinks of adding a category export API and am currently waiting for his response.

Document Income categories setting

To me it wasn't quite obvious, what the goal of this page is.
After playing around and creating a budget, I understand that one should select the primary income category from money money.

Bildschirmfoto 2020-04-20 um 21 44 40

Questions remain such as:

  • how does the field "available in 0/1/2/3 months" work?
  • what if I do not have a fixed income and/or it's weekly, biweekly, etc.?
  • do I only select my primary income category or should I select all of them?

Edit menu

Copy/Paste/Select does not work yet

which is annoying

Setup integration tests

In order to not accidentally ship bugs there should be a ready-to-use installation that can end-to-end test the application

More fluid onboarding wizzard

The current onboarding is only presenting all settings.

I want to give more context/explanation for the settings and also guide through a few gotchas that require MoneyMoney adjustments

Support custom root categories

Given I have two budgets (private and freelancing)
And I want both of them to have different category trees

Then I expect to be able to setup MM categories like this

 โ”ฌ Private
 โ”” โ”ฌ Cat 1
   โ”œ ...
   โ”” Cat 99
 โ”ฌ Freelancing
 โ”” โ”ฌ Cat A
   โ”œ ...
   โ”” Cat Z
 - Shared

And I expect the category tree in my private budget to look like

- Cat 1
- ...
- Cat 99
- Shared

And I expect the category tree in my freelancing budget to look like

- Cat A
- ...
- Cat Z
- Shared

In order to achieve this, BB needs a "root category" setting where I would select the "Private" category group and the "Shared" category as root categories for my private budget and the "Freelancing" group + "Shared" category for the freelancing budget.

Add currency setting

Currently budgets are prepared to handle multiple currencies while I have no concept of how this could be handled in UI.

The simplest solution currently appears to allow only one currency per budget file and provide a setting for that

Show year

Currently the year is not displayed in the UI. Seems relevant.

Make category-groups collapsable

in the budget-view, I want to collapse a group of budgets and only see their totals.

I expect the collapsed state to be persisted within the budget so that I do not need to re-close groups whenever I open a budget.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.