Final Report - adayton1/budgeting-app GitHub Wiki

#Final Report ##Description Users can create a budget, add categories to it, report expenses, and report income. All of these can be edited or deleted. A summary page displays the categories and budgeted amounts for the user's current budget and how much has been spent towards that amount.

###Features to Implement and their Current State:

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

    • Not yet implemented
  • Create an account

    • Users can create an account with the specified information
  • Edit your account

    • Users can edit their profile information

    • Users can change their password

  • Be able to create a budget

    • Users can create a budget

    • Users can create categories and link them to a specified budget

      • Categories know which budget they belong to, but budgets are not yet aware of what categories they have
  • Edit a budget

    • Users can edit a budget

    • Users can edit categories

  • Report expenses

    • Expenses can be reported
  • Edit expenses

    • Expenses can be edited
  • Report income

    • Income can be reported
  • Edit income

    • Income can be edited
  • Show a summary of income and expenses

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

    • A summary of the categories is shown, but not the actual amount spent

###Summary Page Summary Page

This page shows a summary of the categories the user has created - the name and budgeted amount. In the future, the total expenses for each category will also be reported for a given time frame.

###Creating a Budget Creating a budget

This page shows how a budget is created. Once a budget is created, users can create categories and link them to that budget. Budgets can also be edited. Right now a user is only allowed to have one budget.

###Creating a Category Creating a category

This page shows how a category is created. Categories are linked to a specific budget. Categories can also be edited.

###Reporting an Expense Reporting an expense

This page shows how an expense is reported. Expenses are linked to a specific category. Expenses can also be edited.

###Reporting Income Reporting income

This page shows how income is reported. Income can be edited.

##Database Schema User: { firstName: "John", lastName: "Smith", displayName: "Johnny", email: "[email protected]", username: "johnnylingo", password: "johnrocks"}

Budget: {created: "01/01/2015", name: "My Budget", type: "monthly", state: "active", notes: "Blah blah", user: 1}

Category: {created: "01/01/2015", name: "Groceries", budgetedAmount: 150, budgetId: 1, user: 1}

Income: {created: "01/01/2015", date: "01/01/2015", source: "work", amount: 10000, user: 1}

Expense: {created: "01/01/2015", date: "01/01/2015", location: "Smith's", category: "Groceries", amount: 150, user: 1}

##Future Work

  • The home page needs more color, images, and a description of the site
  • Right now the server API returns all budgets/categories/expenses/incomes, not just the ones for the user making the request. On the client side the ones not belonging to the user are filtered out. The server API should be modified to only return budgets/categories/expenses/incomes for the user making the request.
  • The user interface should be more intuitive. Rather than having options on the top bar to create categories, users should be able to create categories from the view budget page.
  • The summary page should calculate the total expenses in each category. This should take into account the current month or other specified time range.