Project: PennyWise

PennyWise is a desktop application that empowers students with the ability to make sensible financial decisions,helping students to manage their budget. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC.

The following are my contributions to the project:

  • New Feature: Added the ability to summarise financial entries. PRs: #36, #89, #137
    • What it does: summary allow users to summarise all financial entries or monthly entries and obtain total expenses, income and balance.
    • Justification: This feature allows users to view their current budget balance and the amount they have spent/earned in the time period.
  • Feature: Edited the Tag class to have a set of valid tags and limit the number of tags assigned to each entry: PRs #63, #105
    • What it does: Allow users to a maximum of one tag to each entry and entry tags must match one of the valid tags with income and expenditure having different valid tags.
    • Justification: Having one tag to each entry makes simplifies the categorical analysis as it is reliant on the tags to create the pie chart. Having a set of valid tags ensures that users do not add too many tags and diminish the utility that a categorical analysis would provide.
    • Highlights : The implementation made use of Enums and ensure that any additional tag can be added in one step.
  • Code contributed: RepoSense link

  • Project management:
    • Co-managed releases v1.2 - v1.4 (3 releases) on GitHub with @jasonyapzx.
    • Track weekly task and ensure that the tasks are done on time.
    • PRs Reviewed by me
  • Enhancements to existing features:
    • Wrote additional tests for existing features to increase coverage from 42.32% to 50.25% (+7.93%), 56.66% to 58.92% (+2.25%), 58.28% to 62.80% (+4.52%), 62.80% to 64.62% (+1.81%) and 67.35% to 68.60% (+1.24%). PRs: #42, #63,#78, #85, #91
    • Removed traces of AB3 code that are not used. PRs: #77
    • Standardise naming conventions across the codebase. PRs: #94, #96, #109
  • Documentation:
    • User Guide:
      • Added documentation for summary command. PRs: #46
      • Added documentation for help command. PRs: #185
      • Refined language use in the user guide. PRs: #176
    • Developer Guide:
      • Added implementation details of the summary feature. PRs: #74, #167
  • Community:
    • PRs reviewed (with non-trivial review comments): #33,#45,#70, #90
    • Reported bugs and suggestions for other teams in the class. PE-D Issues Link