Roadmap - GeeF/BudgetFirst GitHub Wiki

v0.1

  • Vertical slice: Should describe and replicate how to get started, up to building a distributable executable
  • Basic architecture
  • Clear documentation on how to deal with numbers and precision
  • WPF presentation project

v0.2

Accounts:

  • Add accounts
  • Remove accounts
  • Add transaction (date, payee?, budget category, note, amount in/out)
  • Remove transaction
  • Add transfer
  • Remove transfer
  • Update/modify?

Budget:

  • Initialise budget (name, currency, ...)
  • Add budget category
  • Remove budget category
  • Set budgeted amount in category for specific month
  • Group categories

General:

  • Save/load to/from file (non-corruptible)
  • Autosave after every action?

unsorted

Global:

  • Undo/redo
  • Save settings

Sync:

  • Define folder-based sync
  • Handle replication (update, recalculate, threading?)

Currencies:

  • Support different currencies (name, number of decimals, what else?)

I18N/L11N:

  • Allow user to select locale (try to preselect his OS settings?)
  • Allow user to select language (is independent of locale!)
  • Translations
  • Number format. Must handle entering any formatted number and interpret it correctly. Must output formatted number

UI:

  • Define common look & feel, mockups etc.
  • Calendar
  • Calculator
  • Scientific calculator/simple formula editor? (+17*3,32 + 5 * (81,90 + 8,20, + 11,30) + 164/5)

Account:

  • Search in transactions
  • Mark transactions as cleared (or some other term. charged? confirmed?)
  • Reconcile accounts
  • Payees?
  • Validity check for transactions
  • Handle entering positive or negative numbers automatically with brief hint (i.e. I enter +1800€ in expenses, should move to income and highlight?)
  • Option on an account to have it automatically clear new transactions (e.g. for cash)
  • Split transactions
  • Merge transactions
  • Extract from split transaction (create new transaction out of sub-transaction), also for entire groups
  • Define recurring expenses with granular intervals (every n [days | weeks | months | years]; starting at X)
  • If I enter a new recurring expense/transaction that starts in the past, automatically add the corresponding transactions but highlight them
  • Allow for even more control (e.g. "every month for the first 8 months in a year"; "every month until ...")
  • Move all past, uncleared transactions to new date
  • Allow to define historic transactions (i.e. transactions before the account was added to the application, i.e. where the initial balance was defined)
  • Should/must not have an effect on budgeting
  • Available for reporting
  • Handle debt and repayment
  • Tag transactions (custom tags); Show tags

Budget:

  • Search in budget
  • Calculate not yet budgeted amount
  • Allow to adjust budgeting period?
  • Show recurring expenses in budget of next months/cycles
  • Saving goals
  • Hints
  • Saving goals
  • recurring expenses
  • average spending
  • Save templates, default budget, copy budget values
  • Save notes in category and in budget for each month and category
  • Sort categories
  • Carry negative budget over to next month
  • Merge categories

Reports:

  • Net wealth

Import:

  • Transactions from CSV
  • Remember mappings
  • Remember column order (offer previously used order of columns and try to autodetect)
  • YNAB data

Export:

  • Transactions
  • Budget
  • Everything?

Security:

  • Optional encryption (AES 256?)
  • Optional encryption for sync
  • Optional allow to save password in local settings file
  • obviously, hash and encrypt that (decryption key for that should be considered well known, i.e. possible attack surface!)

Desktop

  • Mac version
  • GTK#? version (Linux)

Mobile:

  • Android version
  • iOS version
  • Simple variant: enter expenses, sync, check budget
  • Tablet version (nice to have, gold plating) (iOS, Android)
  • Windows Phone version?

unclear

  • Tracking of money that is not available for spending except for a very specific purpose/category (i.e. taxes)
  • Reason: save money for taxes every ear, get final statement later, difference in saved and final statement must either be taken from somewhere (if final > saved/spent), or is free to be removed (final < saved/spent).
  • This also works for saving towards stuff with a fuzzy final cost.
  • You might even pay for it in increments over the year (e.g. taxes: every quarter a quarter of the rough estimate)