Project: UniMate

UniMate is a desktop address book and calendar infused in one application intended for National University of Singapore (NUS) students to save group mate's contacts and sync calendars to schedule classes and group project meetings. The user interacts with it using primarily the Command Line Interface (CLI), but can choose to interact with the GUI using a mouse. Its GUI created with JavaFX, and the entire project is written in Java, and has about 25 kLoC.

Given below are my contributions to the project.

  • Add Contact Event Command

    • What it does: Facilitates the overall functionality of the calendar by adding events.
    • Justification: Facilitates the overall functionality of comparing calendars between user and contact.
    • Highlights: Maintains syntactic consistency with the "Add Event" command, ensuring that users can confidently engage with the application in a seamless and intuitive manner.
    • Credits: The command uses some methods and modified code implemented by lihongguang00 for the Calendar class.
  • Delete Contact Event Command

    • What it does: Adds an event to the personal calendar of a contact.
    • Justification: Facilitates the overall functionality of the calendar by deleting events.
    • Highlights: Maintains syntactic consistency with the "Delete Event" command, ensuring that users can confidently engage with the application in a seamless and intuitive manner.
    • Credits: The command uses some methods and modified code implemented by fallman2 and lihongguang00.
  • Storage classes

    • What it does: Manages the storage for the TaskList, Calendar and contact's Calendars.
    • Justification: Facilitates the overall functionality of the application by maintaining proper storage of data.
    • Highlights: This feature integrates with the current storage class, ensuring compatibility without disrupting the existing implementation or future iterations. The design prioritizes a non-intrusive collaboration, allowing the new functionality to coexist harmoniously with the established storage infrastructure.
    • Credits: Adapted code from AB3 addressbook's storage.
  • Code contributed: RepoSense link

  • Project management:

    • Managed releases v1.2 - v1.4 (3 releases) on GitHub
  • Documentation:

    • User Guide:
      • Added UG documentation for the features addContactEvent, deleteContactEvent and all Storage functionality.
    • Developer Guide:
      • Added use cases 8 - 11.
      • Updated PUML diagram for the storage class.
      • Added necessary test instructions and test cases needed for storage testing.
  • Community: