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: Added a Birthday Reminder List
    • The list displays contacts sorted by birthdays in ascending order, starting with the nearest upcoming birthday all the way through the latest birthday and then looping back to the earliest birthday.
    • The list is responsive to changes in contact details be it using add, delete or edit command. The list reorders contacts where appropriate to ensure it stays sorted as described above.
    • Birthday at present day and upcoming birthdays within 7 days are color coded and provided with personalised message.
    • This feature would allow our target user, a person who loves birthday celebrations, always wish contacts on their birthday.
    • Account for birthdays that fall on leap days by ensuring they are brought forward to 28th Feb on non leap years.
  • New Feature: Added Delete Multiple Command
    • Delete Multiple Command allows the user to delete multiple contacts with a single command by providing a start and end index.
    • This feature will allow our target user to delete contacts of the same group. Groups are usually identifiable with find by tags, upon filtering contacts of the same group the user can selectively delete those contacts.
  • Code contributed: RepoSense link

  • Project management:
    • Create and configure team repo with git hub actions, code cov and branch protection rules.
    • Create labels and milestones for tracking issues and managing deadlines.
  • Enhancements to existing features:
    • Implement additional test cases for Birthday attribute #51.
    • Implement an additional panel in UI to contain the birthday reminder list #81.
    • Increase size of result display box minimum width of application #175.
  • Documentation:
    • User Guide:
      • Specify Birthday field is optional #116.
      • Re-organise commands and features #206.
      • Elaborate on command use case #218.
    • Developer Guide:
      • Describe implementation details of birthday reminder list #93.
      • Add instructions for manual testing of all commands #204.
      • Fix UML sequence diagrams #206.
      • Add activity diagram for pin command #225.
      • Add sequence diagram for describing how birthday reminder list updates #225.
  • Community:
    • PRs reviewed (with non-trivial review comments): #74, #86, #87.
    • Contributed to forum discussions (examples: 1, 2, 3).
    • Reported bugs and suggestions for other teams in the class.