Project: NUSocials

NUSocials is a desktop address book application for university students who like to maintain a professional contact list. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC.

Given below are my contributions to the project.

  • Updated the UI to display the tags added
    • Used JavaFX Hboxes to create rudimentary tags for testing purposes before the final tag UI was designed
  • New Feature: Added the ability to view all contact entries.
    • What it does: allows the user to view a list of all contacts in the stored in the database.
    • Justification: This feature improves the product significantly because a user can view all their contacts and choose which ones to tag or delete.
    • Highlights: This enhancement required an analysis of the UI design layout to find the best possible way to display the result.
  • Feature Enhancement: Added the ability to find contact entries by tags
    • What it does: allows the user search for a contact entry in the list according to tags.
    • Justification: Users may have very large lists of contacts and may want to filter them by a certain tag. We should allow them to do this using by extending the find command for tags
    • Highlights: This enhancement offers both ‘AND’ and ‘OR’ search for the fields searched for. The implementation was challenging as it required good knowledge of java predicates and functional programming.
  • New Feature: Added the ability to find events
    • What it does: allows the user search for an event in the list according to the event details
    • Justification: Users may have very large lists of upcoming events and may want to look for a specific one. We should allow them to do this using a find event command
  • Code contributed: RepoSense link

  • Documentation:
    • User Guide:
      • Added documentation for find, find -s, find -e
      • Added documentation for the list feature
    • Developer Guide:
      • Contributed to user stories, usecases, non-functional requirements and glossary
      • Added implementation for find contacts including its class diagram
      • Added implementation for find events