Project: Link.me

Project Overview

Link.me is a desktop client managing book application aimed for insurance agents to manage their contacts. The basic Link.me codebase is adapted from AddressBook Level 3, an address book app created under the Seedu Initiative. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 14 kLoC.

Contribution Summary

  • New Feature 1: Added the ability to schedule meeting. Commit, PR
    • What it does: allows user to schedule meetings with specific clients.
    • Justification: This feature improves the product significantly because it now includes an entirely new aspect – meeting scheduling into the application.
    • Highlights: This command required a separate list to store meetings. Allowing list displays for the person and the meeting in order of time was mildly tricky. A separate UI component also had to be made and maintained.
  • New Feature 2: Added the ability to unschedule meeting. Commit, PR
    • What it does: allows user to unschedule meetings with specific clients.
    • Justification: This feature is the counterpart of the previous feature.
    • Highlights: This feature needs to edit the meeting list set up on the previous feature, allow parsing for both index numbers and other particular options, and execute different operations depending on the input option.
  • New Feature 3: Added a notification function. Commit, PR
    • What it does: reminds the user of upcoming birthdays and meetings.
    • Justification: This feature allows users to be reminds of important events without having to go through the entire list of information.
    • Highlights: This feature required a separate window to be displayed, which had to be able to contain all the information and notices, which can amount to a lot when there are a large number of clients
  • Enhancements to existing features:
    • Did most of the GUI changes from AB-3 to the current version, including integrating of the meeting list, arranged the current layout, and other beautifications, including insurance plan tags.
  • Other code contributions:
    • Fully wrote and maintained JUnit tests for new features implemented on my part.
    • Came up with the input syntax for combining multiple features into one command.
    • Drafted the OOP implementation framework for notification and notes windows.
    • Created the GUI interface of the notification and notes windows.
  • Code contributed: RepoSense link , Pull requests, Commits

  • Documentation:
    • User Guide:
      • Added the layout introduction section.
      • Drafted the functionality overview.
      • Added documentation for the features schedule, unschedule, and notif.
    • Developer Guide:
      • Added implementation details of the schedule, unschedule and notif feature.
      • Drafted multiple new UML diagrams and maintained the original UML diagrams.
      • Drafted three use cases: adding a person, editing a person, and filtering by tag.
      • Maintained documentation quality on the DG.
    • Other Documents:
  • Team Tasks:
    • Came up with the meeting aspect of the application
    • Designed and created the product icon.
    • Maintained the issue tracker
    • Managed releases v1.3 (1 release) on GitHub
  • Community: