Xing Yu's Project Portfolio Page
Project: ArtBuddy
ArtBuddy (AB) a desktop application that helps commission-based artists manage their customers, commissions, and artworks easily. Written in Java, ArtBuddy is primarily optimised for use via a Command Line Interface (CLI), but also comes with a GUI created using JavaFX.
Given below are my contributions to the project.
- Key Contribution: Implemented the
addcus#67,sortcus#106 andallcom#140 command- What it does:
addcusallows the user to create a new customer entry.sortcusallows the user to sort the customer list by several comparators.allcomallows the user to view all commissions across all customer entries.
- Highlights:
- Implementing the
addcuscommand involved implementing theCustomermodel and adaptingAddCustomerCommandParserto accept optional arguments. - Implementing
sortcusinvolved wrapping theFilteredListof all customers in aSortedListand accepting one of severalComparatorcomparators. - Implementing
allcomrequired careful consideration of the design for allowing us to switch between one of several commission lists when the selected customer changes, ensuring that the GUI is updated appropriately.
- Implementing the
- What it does:
- Key Contribution: Improved the design of various components
- Implemented global commissions list to support commission-level operations across different customers #140
- Improved the image loading and storing implementation #122
- Improved implementation of
Commission#82 #83.- Stored the customer’s reference within each
Commissionso we do not need to update the customer field for every commission each time the customer changes.
- Stored the customer’s reference within each
- Documentation:
- Contributions to team-based tasks:
- Enable assertions #112
- Implementing basic customer and commissions tab pane #69
- Implemented basic Observer pattern that is used by various UI elements #69
- Helped to rename product from
AddressBooktoArtBuddyacross the codebase. - Added tests for various commands e.g.
ListCommissionCommand,AddCustomerCommand,SortCustomerCommand,AllCommissionCommand
- Review/mentoring contributions:
- Reviewed and provided useful feedback and suggestions in various PRs:
- Reported bugs and suggestions for other teams in the class
- Code contributed: RepoSense link