Project: Link.me

Project Overview

Link.me is a desktop client management application 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.

Summary of contributions

Features

  • New Feature: Add notes feature. PR
    • What it does: allows the user to record, view and clear notes for clients.
    • Justification: This feature improves the product significantly because it gives users the flexibility to record any type of information for clients. This means that users are no longer restricted to the fields we have provided, but can record anything they deem fit.
    • Highlights: Unlike most other commands, the note command supports 3 seperate functionalities: recording, viewing and clearing notes. The implementation was to store the desired action in the NoteCommand object, and execute the NoteCommand differently depending on the action. Furthermore, viewing notes required implementing a seperate UI window to display the notes, and also required a way to pass notes all the way from Model to UI.
  • New feature: Add gender and birthdate fields to client. PR
    • What it does: allows the user to add gender and birthdate information for each client.
    • Justification: This feature improves the product significantly because gender and age (which can be obtained from birthdate) information are particularly relevent when choosing an insurance plan. Insurance agents would likely find these additional fields useful.
    • Highlights: For gender and birthdate, it is very important to ensure the validity of user input, as we don’t want users to enter an invalid gender or invalid birthdate (e.g. 1990-02-31). This cannot be performed using regex like the other commands, and requires robust checks.

Code contributed

RepoSense link

Pull requests

Project management

  • Managed milestones v1.1, v1.2, v1.3, v1.3b and v1.4 (5 milestones) on GitHub
  • Managed releases v1.2, v1.3b and v1.4 (3 releases) on GitHub
  • Setup and maintain issue tracker on Github
  • Maintain project notes document
  • Create product demo for v1.2 and v1.3 on project notes document

Documentation:

  • User Guide:
    • Added documentation for the note feature: #46
    • Added functionalities overview table: #46
    • Proofreading and general formatting: #145
  • Developer Guide:
    • Added all user stories: #22
    • Added implementation details of the note feature: #143
    • Added implementation details of the Gender and Birthdate fields: #143
    • Added 2 sequence diagrams and updated 2 class diagrams: #143
  • Others:
    • Added initial UI mockup: #12

Community

  • Contributed to forum discussions (example: 1)
  • Reported bugs and suggestions for other teams in the class (examples: 1, 2, 3, 4, 5)