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: Filter by Company
- What it does: Filters the contacts by company instead of name of contacts
- Justification: In case freelancers forget the name of client, but they remember the company name
- Highlights: Similar to filter by name
New Feature: Edit events
- What it does: Edit events using any parameter
- Justification: In case freelancers need to reschedule or adjust event details
- Highlights: Allows editing set of clients (that exists in contacts), but once it edits, it no longer validates whether clients exist or not.
New Feature: Edit finance
- What it does: Edit finance using any parameter
- Justification: In case freelancers made a mistake manually and need to readjust the values/client linked
- Highlights: Edit is able to differentiate between commission and expense (i.e., you can remove a client from expense but not commission with edit command)
New Feature: Tabs
- What it does: Allows users to navigate between tabs
- Justification: Collaborating all the 3 different components into one app for easy access for freelancers.
- Looks cleaner than putting all 3 sections in one screen.
- Highlights: Allows using the
tab
command implemented by @dloh2236 to navigate the tabs instead of clicking them.
Code contributed: RepoSense link
Project management:
- Check for code quality throughout the project
- Managed releases
v1.2
, v1.3
(2 releases) on GitHub
Enhancements to existing features:
- For the edit method in finance, able to edit for both commissions and expense even though they have different compulsory requirements
- Refactor the tab command to make use of a Tab object
- Implemented 2 new books,
financebook.json
and eventsbook.json
besides the addressbook.json
.
Documentation:
- User Guide:
Edit
commands for events and finance filter-n
and filter-c
commands for contacts - Adding hyperlinks
- Standardize formatting and error messages for the whole UG as much as possible
- Images for all
filter
commands - Data storage
- Developer Guide:
- Add tab change implementation
- Update storage UML diagram
- Add test cases for storage
- Add instruction for manual testing for Storage
Community:
- PR reviews for group mates
- Contributed to forum discussions (examples: 1, 2, 3)
- Helping group mates
- Every week or so I checked the whole code to see if theres anything that can be improved or needs refactoring.
- Communicate often with my team to clarify any doubts or issues
Tools:
- Intellij
- GitHub
- PlantUML
- MarkBind