Project: PennyWise

PennyWise is a desktop application that empowers students with the ability to make informed financial decisions, by providing a graphical analysis of their financial activities. 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.

Given below are my contributions to the project.

  • New Feature: Added the ability to view expense and income entries in a pie chart, sorted by categories via a command. (PRs: #66)
    • Justification: This feature improves the product significantly because a user can easily get a snapshot of their budget based on how their spend and earn.
    • Highlights: This enhancement was a key feature of our app, greatly improving usability of our app. It affects existing commands and commands to be added in the future. The implementation required changes to existing commands, namely the ViewCommand.
  • New Feature: Added ability to toggle between Expenses and Income entries tabs. ( PRs: #31)
    • Highlights: Created UI for Expenses and Income entries Tab and linked logic of the two entry tabs. Made it reusable such that each tab is a component.
  • Feature Improved the UI of the application
    • Improve the appearance of the app to be more intuitive and aligned with our UI mock-up ( PRs: #31)
  • Code contributed: RepoSense link

  • Project management:
    • Managed the milestones of v1.1 to v1.2 by creating issues, tags and assigning to teammates
  • Enhancements to existing features:
    • Fix bugs of Amount class by standardising formatted string and parsing it as double.
  • Documentation:
    • User Guide:
      • Added documentation for the table of contents and introduction. ( PRs #12)
      • Add stories for each command for context. ( PRs:#164)
    • Developer Guide: (PRs:#68)
      • Updated class diagram and description for UI component.
      • Added implementation for pie chart feature.
      • Added user stories of the application.
  • Community:
    • PRs reviewed (with non-trivial review comments): #44 , #63 , #64
    • Contributed to forum discussions (examples: 1 , 2 , 3)
    • Reported bugs and suggestions for other teams in the class ( examples: 1)