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: Contacts (Modified to suit FreelanceBuddy)

    • What it does: Contacts are used to store important information of Clients
    • Justification: Contacts with relevant fields are important for freelancers to keep track of important information of their client.
    • Highlights: Allows user to key in important information for their Client in a contact book, while certain fields are optional, providing flexibility.
    • Credit: Original AB-3
  • New Feature: Contact Card (Modified to suit FreelanceBuddy)

    • What it does: Allows user to view important information of their clients
    • Justification: Contact Card allows user to view all the important information at one glance
    • Highlights: Shows all keyed in details.
    • Credit: Original AB-3
    • New Feature: Events (Model)
    • What it does: Displays events that the user inputs into the application.
    • Justification: Events are a crucial part of a freelancer's life. They need to be able to keep track of their events and deadlines. The Event logging allows them to be on task and not miss any deadlines.
    • Highlights: This feature allows the user to view all their upcoming events in chronological order.
  • New Feature: Event Filter by Client

    • What it does: Allows users to filter their events by their clients
    • Justification: As freelancers have many events, they need to be able to filter their events by client to find the relevant events tagged to specific clients.
    • Highlights: Results are chronological and the user can view all their events in one place. It is case-insensitive.
  • New Feature: Event Parsers

    • What it does: Commands inputted in Events tab can be parsed.
    • Justification: Parser for events tab differs from the other tabs. Due to overlapping command words as well as different commands being parsed space, but were not exactly necessary. Hence, we included them but made them optional. We allowed user to tag clients so that they can clearly see what clients are tagged to the event.
    • Highlights: optionality of certain fields. tagging of clients.
  • New Feature: Date-Time Parser

    • What it does: Allows for wide variety of date-time parsing as well as some natural language processing date-time parsing.
    • Justification: Allows for quick CLI date-time input for user, further optimising the CLI experience.
    • Highlights: Wide variety of formats, Natural Language Date-time formats, Smart Parser that helps infer dates and times when it is not inputted in full
  • New Feature: Tab Command (Including Logic + Parser)

    • What it does: Allows user to use CLI to transition between tabs quickly
    • Justification: CLI way to naviagte between tabs
    • Highlights: fast tabbing with CLI commands.
  • New Feature: Clear Methods in All Tabs

    • What it does: Clears the respective tab entries.
    • Justification: User can use this command to clear their entries in specific tabs. Particularly useful to clear sample data for new users.
  • New Feature: UI adapted for Freelance Buddy

    • What it does: UI consistent for application theme as well as purpose.
    • Justification: Maximise the user experience as well as create a unique look to FreelanceBuddy
  • Code contributed: RepoSense link

  • Project management:

    • Set-up UG Format for Project website at the start.
    • Created issues for v1.3 for Events portion.
  • Enhancements to existing features:

    • Updated the GUI color scheme (Pull requests #126, #130)
    • Modification to existing AB-3 features to suit our product (not exactly enhancement)
  • Documentation:

    • User Guide:
    • Table of Contents
      • Including all mini table of contents
    • Added documentation for General Commands
      • clear
    • Documentation of Contacts Management section
      • add
      • delete
      • edit
      • list
      • Added documentation for some Events Managment Commands
        • filter-c
    • Documentation of entire Accepted Date-time Formats in User guide
    • Included Beginner/Advance Tiering indicators in User Guide
    • Developer Guide:
      • Modified Model to match FreelanceBuddy
      • Modified Parser Classes to match FreelanceBuddy
      • Entire Date-time Parsing Implementation.
        • All diagrams
      • Added instruction for manual testing for contacts
  • Community:

    • Link to PR reviews by me
    • Helping Group mates:
      • For events, I worked closely with Ito Tetsushi to implement the base Logic and Model of the Events portion in our application. Hence, there were many instances where we needed help from one another such as implementing some of the commands and UI portion. As we were working on the same parts, I helped Ito out with resolving some of the merge conflicts. He also helped me out with with writing test cases.
      • Because I implemented the DateTimeParser, there were some instances that my group mates were unsure on how to use it. Hence, I had to chime in ocassionally when they needed help or when they were not sure specific behaviour of the date time parser. They also provided timely feedback so that I could improve my date-time parser such as abstracting certain implementations so so that the it is for OOP.
  • Tools:

    • IntelliJ
    • Markbind