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.

  • New Feature: FindAny
    • What it does:
      • FindAny is a command that allows users to apply an ‘OR’ filter with the search terms they have provided.
    • Justification:
      • “OR” search retrieves records that include either terms searched for. Using OR broadens a search and thus returns more results. This way, users will be able to filter contacts with greater flexibility.
  • New Attribute: Birthday
    • What it does:
      • The birthday attribute records the date of birth of a contact.
    • Justification:
      • Our target audience is people who love celebrating birthdays. It is natural for them to want to keep a record of the birthdays of their contacts. This way, they will never miss a birthday.
  • Code contributed: RepoSense link

  • Project management:
    • Set up Github Pages.
    • Created and assigned issues for milestone v1.3.
  • Enhancements to existing features:
    • Redefine equality amongst contacts.
      • Previously, equality between two contacts hinged on the fact that they had the same name. Since people can have friends with the same name but unique phone numbers, I changed CONNECTIONS to check for phone numbers instead to raise possible duplicate contacts.
    • Revamp Find
      • Find (‘AND’-search) and FindAny (‘OR’-search) can be applied names and/or tags.
      • Case Sensitivity to search (Find/FindAny).
        • Users can now opt for case-sensitive searches on Tags using the c/ flag.
    • Wrote unit and integration tests for existing features.
      • Increase coverage from 72.15% to 72.59% (+0.43%). (Pull request #49)
      • Increase coverage from 75.01% to 72.14% (+0.14%). (Pull request #69)
      • Increase coverage from 73.69% to 74.31% (+0.62%). (Pull request #86)
      • Increase coverage from 74.31% to 74.52% (+0.20%). (Pull request #101)
      • Increase coverage from 70.83% to 71.15% (+0.32%). (Pull request #201)
  • Documentation:
    • User Guide:
      • Documented Upcoming Birthdays, find as well as findAny. (Pull request #95, #173)
    • Developer Guide:
      • Documented Use Cases, Non-functional requirements and Glossary. (Pull request #19)
      • Documented find and findAny. (Pull request #101)
      • Added sequence diagrams for find and findAny. (Pull request #223)
      • Added activity diagram for delete. (Pull request #223)
    • Polished User & Developer Guide. (Pull request #205)
  • Community:
    • Reported 37 bugs and suggestions for other teams in class.
      • You can find the entire log here
    • Contributed to forum [discussion].(https://github.com/nus-cs2103-AY2122S1/forum/issues/135):
    • PRs reviewed with non-trivial comments: (Some examples: 1, 2, 3)