Project: BandConnect++

BandConnect++ is a desktop application that helps music producers seeking talented musicians to manage their musician contacts and form a band of their preferences. It is optimised for CLI users so that frequent tasks can be done faster by typing in commands.

Given below are my contributions to the project.

  • Code contributed: RepoSense link

  • New Feature 1: Tagging the musicians with their instruments and genres #73, #83
    • What it does: it allows the user to tag the musicians with their instruments and genres while checking the input against a list of valid instruments and genres
    • Justification: they are more specialised and less error-prone than AB3’s general tags, catering to the needs of the target users (music producers)
    • Highlights: this enhancement involves changing all layers of the application from UI to Storage and is the basis of many other features like find musicians.
    • Credits: I took the inspiration from the tag feature in AB3 and extended it to suit the needs of the target users.
  • New Feature 2: Adding musicians to a band #137, #195
    • What it does: it allows the user to add multiple musicians to a band using the indices of the musicians and the band
    • Justification: it is a common use case for music producers to add multiple musicians to a band at once and checking their suitability for the band
    • Highlights: this enhancement involves integrating the existing (refactored from Person) Musician list with the newly created Band list and requires the knowledge of both components.
    • Credits: My teammate did the initial implementation of this feature which supports adding one musician at a time. I extended it to support adding multiple musicians at once. I also refactored the code and enhanced its error handling.
  • Enhancements to existing features:
    • Enhanced the find feature to allow the user to find musicians by their tags, instruments, and genres on top of their names #94, #148
  • Team tasks contributions:
    • Set up the product website and did site-wide settings #51
    • Reviewed PRs of team members and gave constructive feedback
    • Structured and formatted the UG and DG to ensure consistency across the team members #200, #222, #224
    • Fixed bugs for other features #144, #194
    • Product-wide modifications, like GUI #140
    • Conducted post-PE-D bugs triage, classify bugs and close duplicate and irrelevant issues
    • Managed the aggregation and distribution of tasks among team members
  • Documentation:
    • User Guide #154, #200, #219, #222
      • Product introduction and overview
      • How to use the guide
      • Features: edit, tags, find, addm
      • Command Summary
      • Glossary
    • Developer Guide #203, #208, #224, #227, :
      • Features: tags, find, addm
      • Added two activity diagrams (find and addm), one sequence diagram (find), and one class diagram (tags)
      • Use cases
      • User stories
      • Planned enhancements
  • Contributions to the User Guide (Extracts):

UG3.png

  • Contributions to the Developer Guide (Extracts):

DG1.png

FindMusicianActivityDiagram.png FindMusicianSequenceDiagram.png