Project: CohortConnect

CohortConnect - CohortConnect is an advanced desktop address book which facilitates networking among Computer Science (CS) students. It is optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI).

Given below are my contributions to the project.

New Features

  • Telegram and Github Class:
    • Pull requests #54 and #88
    • What it does: Allows user to store the Telegram handle and Github username of people.
    • Justification: Provides convenience when looking to connect with any of the existing contacts without having to source for ways to communicate and understand.
    • Highlights: The implementation was rather challenging as it required simultaneous changes to occur in the Model and Logic component.
  • Optional Fields:
    • Pull requests #56
    • What it does: Allows user to store the Github usernames of people in their contacts.
    • Justification: This feature allows for greater convenience since people might not be comfortable giving away their phone number, email or address. This enhancement also makes adding new contacts so much easier.
    • Highlights: This enhancement was simple to implement by tweaking existing code.
  • Favorite Command:
    • Pull requests #127
    • What it does: Allows user to favorite an existing contact.
    • Justification: Allow users to sort out contacts that are important to them, such as their family and friends.
    • Highlights: The implementation was rather challenging as it required simultaneous changes to occur in the Model and Logic component.
  • Unfavorite Command:
    • Pull requests #131
    • What it does: Allows user to unfavorite an existing contact.
    • Justification: Allow users to sort out contacts that are no longer important to them.
    • Highlights: The implementation was rather challenging as it required simultaneous changes to occur in the Model and Logic component.

Test Cases Written

Wrote test cases for the following classes

  • LogicManagerTest (Pull requests #54, #88), CommandTestUtil (Pull requests #54, #88, #232)
  • PersonTest (Pull requests #54, #88, #125, #135, #262, #279)
  • TelegramTest (Pull requests #54), GithubTest (Pull requests #88)
  • JsonAdaptedPersonTest (Pull requests #54, #88, #125)
  • AddCommandTest (Pull requests #127, #131, #279)
  • AddCommandParserTest (Pull requests #54, #88, #228, #232)
  • EditCommandParserTest (Pull requests #88, #232, #125)
  • FavoriteCommandTest, UnfavoriteCommandTest (Pull requests #135, #259, #279)
  • FavoriteCommandParserTest, UnfavoriteCommandParserTest (Pull requests #135, #279)
  • IsFavouritePredicateTest (Pull requests #135, #279)
  • AddressBookParserTest (Pull requests #232, #259, #262, #279)
  • AppParametersTest, ExportCommandParserTest, ImportCommandParserTest, ShowCommandParserTest (Pull requests #232)
  • ParserUtilTest (Pull requests #232, #262)
  • CommandResultTest (Pull requests #259), UserPrefsTest (Pull requests #262)
  • UniquePersonListTest (Pull requests #262, #279)
  • ConfigTest, GuiSettingsTest, LogsCenterTest, MessagesTest (Pull requests #273)
  • StorageManagerTest (Pull requests #273, #279)

Documentation

  • User Guide:
    • Added the documentation for the features add, edit, fav and unfav. (Pull request #157, #217, #252)
  • Developer Guide:
    • Added implementation details of Telegram, Optional Fields, Github, Favorite command and Unfavorite command. (Pull request #113, #218, #321)

Code contributed: RepoSense link