Project: Fine$$e

Overview

Fine$$e is a desktop finance tracker that allows tertiary students to better manage their finances, cultivating good financial habits such as saving. It is optimised for CLI users so that expenses and income can be tracked efficiently by typing in commands. It is written in Java, and has a GUI created with JavaFX.

Summary of Contributions

  • New feature: Embedded user guide within the application.
    • What it does: Allows the user to view the user guide from within the application.
    • Justification: The barriers to entry of using Fine$$e are high for new users as they are required to learn the various commands available. By embedding the user guide within the application, it allows users to quickly look up Fine$$e’s features and their corresponding commands. This leads to a much better user experience.
    • Highlights: JavaFX’s WebView component was used to display the user guide. Unfortunately, it does not adhere too closely to modern browser standards, resulting in certain pages not being rendered correctly. In order to ensure that the user experience is smooth, the decision to only allow users to access pages in the domain https://ay2021s1-cs2103t-w16-3.github.io/tp/ was made. Should the user attempt to navigate to an external site, the following page is shown instead: No external site page
  • New feature: Added command history.
    • What it does: Allows the user to cycle through their 50 most recent inputs via the ↑ and ↓ arrow keys.
    • Justification: Almost all modern command line interfaces support the scrolling through of previously typed commands. The addition of this feature allows users who are experienced with command line interfaces to be more efficent when using Fine$$e.
    • Highlights: This feature necessitated the implementation of a stack with a maximum capacity so as not to run out of memory. Once the stack is full, the bottom-most element of the stack is evicted. The underlying data structure that backs the stack is a doubly linked list.
  • Code contributed: RepoSense link

  • Project management:
    • Updated GitHub Pages to display meeting minutes and Gantt chart.
  • Enhancements to existing features:
    • Refactored the user interface to be more extensible. (Pull request #161)
    • Updated the user interface to be resizable and scalable. (Pull requests #174, #226)
  • Documentation:
    • User Guide (Pull requests #179, #235):
      • Updated user guide to give an overview of the various tabs in Fine$$e.
      • Added section on command history.
    • Developer Guide (Pull requests #141, #318):
      • Added implementation details for tab switching.
      • Added implementation details for command history.
      • Added implementation details for data integrity safeguards.
      • Updated design details for UI component.
  • Community:
  • Tools:
    • Added Git pre-push hook to enforce code quality. (Pull request #7)
    • Updated GitHub Pages build process to use jekyll-spaceship for greater control over site formatting. (Pull request #18)