Project: AddressBook π (Abπ)

AddressBook pi (Abπ) is a 360° all-rounded desktop app for managing contacts, optimized for use via a Command Line Interface (CLI). Abπ is catered towards fast-typers and individuals who want an organized address book with key features including efficient filtering of contacts based on various attributes (name, email, tags, etc.), copying of all emails in the address book and a memo section that allows you to note down notable details about a person.

The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 9k LoC.

Summary of contributions

  • Code contributed: RepoSense link

  • Features and Enhancements implemented:
    • Copyemails command (PR #65):
      • What it does: Allows the user to copy all emails in a filtered list to clipboard.
      • Justification: This feature allows the user to quickly contact a specific list of contacts in their address book (such as sending out invites to friends for a party), significantly cutting down the time required to manually type in all email addresses.
    • Revamp the User Interface – Person Display Panel (PR #173)
      • What it does: Displays detailed information about a contact.
      • Justification: Lengthy text inside a Person Card gets cut-off, hence a scrollable panel to display the details of a person will allow users to view the full details of a person.
      • Highlights: Due to the implementation of “predictive display” where the display will automatically update on several commands, this resulted in several bugs. Debugging this feature was difficult, as there were a lot of bugs involving undoes and redoes not updating the display properly. In addition, designing this feature was difficult as it required an interaction between logic (commands updating the display), model (person object to be displayed), and the UI itself.
    • View command (PR #188)
      • What it does: Manually updates the Person Display Panel
      • This command goes hand in hand with the previous feature.
  • Documentation:
    • User Guide:
      • Added documentation for copyemails and view commands (PR #40, #190)
      • Added several images to illustrate command usage and UI (PR #294)
    • Developer Guide:
      • Added implementation details of the Person Display Panel (PR #307)
  • Contributions to team-based tasks:
    • Enabled assertions for team repo.
    • Main code quality checker and debugger.
    • Worked on the Abπ demo video.
  • Community: