Project: CONNECTIONS

CONNECTIONS is a desktop app adapted from AddressBook - Level 3 for managing contacts and keeping track of birthdays. It is optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI) that is created with JavaFX. It is written in Java and has about 10 KLOC.

Given below are my contributions to the project.

  • Code contributed: RepoSense link

  • New Feature Added the ability to add tags to a contact without replacement
    • What it does: allows the user to add a tag to a contact without typing in all the existing tags
    • Justification: This feature improves the product significantly because a user will often want to add a new tag to an existing contact and should not need to input all the existing tags that contact previously had to do this action.
  • New Feature Added the ability for users to export their current view as a mailing list
    • What it does: allows the user to construct a mailing list to contact multiple people based on their filtered address book
    • Justification: inviting people to events would require contacting multiple people with the same message, instead of sending individual messages, the user can just export all the contacts at once and use that to contact them
    • Credits: Uses OpenCSV to create the CSV files
    • Credits: Inspired by LUMINUS allowing Instructors to export CSV file of students details
  • Testing
    • Wrote test cases for handling tag command
    • Wrote test cases for handling mailingList command
    • Wrote test cases for handling Tag command
  • Documentation:
    • User Guide:
      • Did cosmetic and grammatical tweaks to existing documentation of features: #192
    • Developer Guide:
      • Added user stories for versions 1.1 and 1.2 (Pull requests #13, #35)
      • Product scope for version 1.2 (Pull request #39)
      • Added implementation details of the mailingList feature.
    • Typesetting:
      • Typesetted User guide, developer guide and profile pages for PDF conversion #213
  • Tools:
    • Integrated a third party library (OpenCSV) to the project (#91,
    • Improved TestUtils by adding the ability to create different AddressBook states for testing (#52)
  • Community:
    • Reported bugs and suggestions for other teams in the class (1, 2, 3)
    • PRs reviewed (with non-trivial review comments): #42, #53