Home - adayton1/budgeting-app GitHub Wiki

budgeting-app

Idea: Tracking a budget in a spreadsheet has never worked for me. First of all, it’s not accessible enough and it’s not easy to adjust. I want to create a web and eventually a mobile app that allows people to build/adjust a custom budget, and be able to record income/expenses on the go. The target audience is individuals and families as opposed to businesses, so it should be simple and easy to use.

Features:

  • Be able to test out all functionality without creating an account

  • Create an account

    • Users can create an account

    • The account should store minimal information about the person: username, password, name, email

  • Edit your account

    • Change password, name, email
  • Be able to create a budget

    • Create new spending categories

      • Ex. Rent, Groceries, Entertainment, etc.
    • Add existing categories

    • Users can create several budgets and they can select which one to use for a particular month or year

  • Edit a budget

    • Edit categories

    • Add new categories

    • Remove categories

  • Report expenses

    • Enter date, location, category, how paid for

    • Take a photo of a receipt and link it with an expenditure

  • Edit expenses

  • Report income

    • Enter date, source, category
  • Edit income

  • Be able to record assets - savings, checking, credit, cash

    • Not linked to actual accounts

    • Show only balance and transactions - can compare with your actual accounts (essentially like a checkbook)

    • Expenses/Income should be subtracted from/added to these assets

  • Show a summary of the monthly budget and totals in each category so far

  • Store a history of expected vs actual expenses/income so users can track how they are doing over an extended period of time

  • Daily budget

  • Weekly budget

  • Yearly budget

  • One-time budget (such as books, tuition)

  • Can translate easily between daily, weekly, monthly, yearly budgets

Subset of Features to Implement:

  • Be able to test out all functionality without creating an account

  • Create an account

    • Users can create an account

    • The account should store minimal information about the person: username, password, name, email

  • Edit your account

    • Change password, name, email
  • Be able to create a budget

    • Create new categories with the amount the user specifies

    • Add existing categories

  • Edit a budget

    • Edit categories

    • Add new categories

    • Remove categories

  • Report expenses

    • Enter date, location, category, how paid for

    • Be able to take a photo of a receipt

  • Edit expenses

  • Report income

    • Enter date, source, category
  • Edit income

  • Show a summary of income and expenses

  • Show a summary of the monthly budget and totals in each category so far

Architecture:

MEAN stack

Possibly use MySQL instead of MongoDB after we determine how to store the data and the operations to be performed on the data.