Project: LinkMeIn

LinkMeIn - Is a desktop address book application used to track student’s job applications to companies. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about ~10 kLoC.

Given below are my contributions to the project.

Code contributed:

The code that I have contributed can be found in this RepoSense link

Enhancements implemented:

Duplicate checking algorithm for the add and edit command

What it does:
The duplicate checking algorithm checks if the company that the user is trying to add or edit is already present in the company list. If the company is already present in the company list, a specific error message will be raised to the user, informing them of the corrective action they need to take.

Justification:
This feature was implemented to inform the user of an accidental duplicate company that they tried to add or edit. The associated error message covers 4 different cases, each of which guides the user towards a specific corrective action. These cases are filtered list view, original list view, partial match and complete match of fields.

Input validation method for all fields

What it does:

  • Company name, recruiter name, role, phone number, email, application status and priority fields are validated to ensure that they are not empty and that they follow the correct regex.
  • Implemented specific REGEX to ensure that the phone number and email fields are in the correct format.

Justification:
Input validation allows us to validate duplicates, while allowing the user to see whatever they typed. This allows for flexibility in the user interface, while ensuring that the user does not enter invalid inputs.

Test cases for the duplicate checking algorithm
Added close to 990 lines of test cases for the duplicate checking algorithm and the input validation fields to ensure behaviour was as expected.

General

Bug Fixes:

  • Fixed a bug where the duplicate detection algorithm gave a wrong output
  • Fixed a bug where Software Engineer 2 and Software Engineer were considered equals
  • Sequence diagrams and Activity Diagrams bug fixes

Team Contributions:

Forum Enthusiast

  • Resolved other classmate’s code related issues (examples: #104, #154, #170, #249)
  • Resolved a bug in the JavaFX tutorial regarding a JavaFX MAC-OS dependency issue. Recommended a modification to build gradle to solve the issue #159
  • Questions asked in the forum (examples: #434, #339, #411, #336)

PE-D Testing

Contributions to the UG:

The following sections from the UG were contributed by me:

  1. Features:
    • Duplicate detection algorithm: Added description, examples for the various errors that can arise
  2. Added FAQ:
    • Added questions 1 and 2 to the FAQ section.
  3. Introduction section
    • Added a section on the motivation behind LinkMeIn
    • Quick summary of features
  4. Code block text size re-adjustment
    • Adjusted the code block text size to be smaller for better readability.

Contributions to the DG:

The following sections from the DG were contributed by me:

  • Added activity & sequence diagrams for the duplicate checking algorithm
  • Planned enhancements
    • Remove the alphanumeric checks for the company name, recruiter name and role fields
    • Expanding acceptance for phone number field
  • Effort section