v1.2 Postmortem

Fine$$e is coming into shape - Ian Yong, 2020

Our current workflow is working well and everyone is aware of our SOPs. However, we will be making minor workflow adjustments to make the process more convenient.

Workflow changes

  • Allowed to work on upstream branches instead of forks.
    • Individuals can stick to forks if they want.
  • Investigate feasibility of UI testing. If not viable, then remove it from the testing suite.

Actionables

  • Single List Implementation
    • ModelManager: 3 filteredLists for Transactions, Incomes and Expenses respectively, FinanceTracker: 1 transactionList (Yong Ping)
    • Show the differentiation between Incomes, Expenses and Transactions in the Overview Tab (Siddarth)
  • Storage (Yong Ping)
    • 2 lists (expenses and incomes) in json data file
    • Add frequent expenses and incomes
  • Analytics (Ian and Siddarth)
    • Check if we can get a POC for using data visualisation tools with Data2Viz and then request if the library can be used (Siddarth)
    • Metrics to be displayed
      • Monthly Expenses
      • Monthly Incomes
      • Monthly Savings
      • Category expenditure within the month (To show which category the user has spent on the most for the month)
  • Set monthly budget (budget == expense limit) (Jingjing)
    • Budget class
  • Monthly saving goals (Jingjing)
  • Frequent monthly expenses and incomes (Siddarth)
    • Add a class to store frequent expenses/incomes (such frequent expenses/incomes will be in a separate list)
    • Add commands to add, edit, delete frequent expenses/incomes
    • Add a command to convert frequent expenses/incomes to actual expense/incomes
  • Check if json data reading validation is present (Jingjing)
    • Dates, amounts, etc must all be in the correct format (Throw error if someone messes with the data file)
  • Standardise transaction amount format (Wei Liang)
    • Change the type of data in Transaction from String to Currency
    • (Stretch Goal) Command: ‘$’ prefix change to depend on locale
    • Convert everything to $XX.XX format to read in input, then convert to numbers when calculating to analytics
  • Standardise date format and add validation (Wei Liang)
    • Prevent user from adding transactions which has a date that is later than the current date of entry
    • Change the type of data in Date from String to LocalDate
    • In Analytics, make use of YearMonth instead of LocalDate
  • Bring up test coverage (Ian)
    • Add suppression/exclusion for areas that are not feasible to cover
    • Aim to reach 100% mutation coverage (after suppressions), then set pitest to fail build when coverage drops below 100% - prevent regression in test coverage
  • Search transactions by field (Jingjing)
    • Edit find commands to be similar to edit commands e.g find INDEX KEYWORD