Project: FreelanceBuddy

Overview: FreelanceBuddy is a powerful and efficient Command Line Interface (CLI) optimised app designed for freelancers. It's a one-stop solution for freelancers, helping them manage multiple clients, track project statuses, and stay on top of their financial reports.

Given below are my contributions to the project.

  • New Feature: Finance UI

    • What it does: Displays the finances that the users input into FreelanceBuddy
    • Justification: Tracking and managing finances is one of the most important aspects of a freelancer's job. Our aim was to provide a clean and simple interface, so that freelancers are able to easily view all their finances.
    • Highlights: The finances are color coded based on their type. Expenses are given a red font while commissions are given a green font. This helped to provide a more intuitive overview of the finances.
  • New Feature: Adding a new commission

    • What it does: Adds a new commission to the Finance Tab
    • Justification: Tracking of commissions is essential to a freelancer. This feature was essential in ensuring that our app was tailored to freelancers.
    • Highlights: In FreelanceBuddy, our commissions objects help capture the most important aspects of a commission, the client, amount, description and time due.
  • New Feature: Filter by client name

    • What it does: Filters all the finances by client name
    • Justification: We expect full time freelancers to have many clients, hence there will be a need for them to filter all the finances by the client name.
    • Highlights: Provides users with a clear breakdown of their finances by client.
  • New Feature: Filter by time frame

    • What it does: Filters all the finances by the given time frame
    • Justification: Freelancers will want to view all the finances that they have in a given time frame. For example, they might want to view all the finances they had over the past month.
    • Highlights: Provides users with a clear overview of their finances within a given timeframe.
  • New Feature: Summary command

    • What it does: Provides a summary of the finances for a given client
    • Justification: It is often difficult for freelancers to accurately gauge whether a client is worth their time. Hence, we felt that it would be beneficial for us to provide a simple command that will help provide a quick overview of a client's finances.
    • Highlights: Provides the user with a comprehensive breakdown, showing a total profit/loss, and the totals for commission and expenses respectively.
  • Code contributed: RepoSense link

  • Project management:

    • Made the labels for tagging
    • Helped to set up and close milestones v1.1, v1.2, v1.2b and v1.4
  • Enhancements to existing features:

    • Add ParseCommandHandler
      • What it does: Helps to manage which parser is used for each tab
      • Justification: We have three separate tabs, and the tabs have some overlapping commands. For example filter-n should have a different response depending on if the user is in the Finance or Events tab.
  • Documentation:

    • User Guide:
      • Added documentation for the following features: add-c, filter-c, filter-t, summary
      • Added the Finance Tab section in the Command Summary
      • Helped standardise the ordering of commands throughout the UG
    • Developer Guide:
      • Updated the Acknowledgements section
      • Updated the Logic section to match FreelanceBuddy
      • Added the Filtering Lists section to Implementation
      • Added points 1-3 in the Planned Enhancements section
      • Added the Appendix: Effort section
      • Added some Use cases for Finance
      • Added the Manual Test cases for list, add-c, add-e and edit for Finance
  • Community:

    • PR reviews for group mates
    • Helping group mates:
      • After I implemented the ParseCommandHandler, there were instances where my group mates were unsure of how to use it. I stepped in and helped them when they encountered problems with it. They also provided me with feedback on how I could improve the ParseCommandHandler.
  • Tools:

    • Intellij
    • MarkBind