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. It has about 14 kLoC.

Given below are my contributions to the project.

  • Key Contribution: Added the Commission model #68
    • What it does:
      • Created classes for Commissions and its attributes.
      • Integrated them with Storage.
      • Added all initial Commission CRUD methods to AddressBook and ModelManager to act as the initial convenient interface to use for all commission-related commands.
      • Integrated the Commission list into the UI.
    • Justification:
      • This was a prerequisite to all commission-related commands that we wanted to implement.
    • Highlights:
      • This enhancement was one of the first code-related PRs and required working with three components (Ui, Model, Storage). It ended up being quite huge and challenging, requiring a good understanding of many components to implement it without breaking existing abstractions.
  • New feature: Added Commission Commands [CRUD]
    • Added editcom #109
    • Added delcom #68
    • Added opencom #91
    • What it does: Adds read, update and delete functionality for commissions.
    • Justification: Commissions are a core feature of our application and hence all its CRUD functionality are necessary for our product.
  • Code contributed: RepoSense link

  • Project management:
    • Set up the GitHub team org/repo and tools such as CodeCov and Gradle
    • Set up the GitHub issue tracker and migrated all user stories to it
  • Enhancements to existing features:
    • Added ability to select customer on click #68
    • Modified Tag to allow spaces #78
    • Changed product icon #85
    • Renamed edit command to editcus #109
    • Modified sample data generator to include default commissions and iterations (#139, #142)
    • Added tests for Commission, delcom, opencom, editcom (#96, #99, #101, #105, #109)
  • Documentation:
    • User Guide:
    • Developer Guide:
      • Added implementation details of the Commission model #119
      • Added implementation details of the delcom feature #134
      • Added list of user stories #55
  • Community: