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:
addcus
allows the user to create a new customer entry.sortcus
allows the user to sort the customer list by several comparators.allcom
allows the user to view all commissions across all customer entries.
- Highlights:
- Implementing the
addcus
command involved implementing theCustomer
model and adaptingAddCustomerCommandParser
to accept optional arguments. - Implementing
sortcus
involved wrapping theFilteredList
of all customers in aSortedList
and accepting one of severalComparator
comparators. - Implementing
allcom
required 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
Commission
so 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
AddressBook
toArtBuddy
across 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