Project: Jobby

Jobby is a desktop application used for managing your job applications and associated organization and recruiter contacts.

Given below are my contributions to the project.

  • New Feature: Command Autocompletion (PR #63)

    • This allows users to autocomplete their commands, just like command terminals or programming IDEs, such as by pressing TAB, and even undo when you BACKSPACE.

    • Like an IDE, it does a subsequence match, so typing -dsp then TAB can select --description, allowing for fast disambiguation from another similar term like --descending.

    • Rationale: It allows for faster command input, and reduces command syntax memorization.

    • Implementation: The internal implementation is written completely from scratch to support our custom formats - more information available in the Developer Guide.

    • UI: The autocompletion UI is adapted from @floralvikings’s AutoCompleteTextBox.java. The reference text box only has a barebones context menu, but significant enhancements has been made to the styling and behavior to improve readability and UX (like partial term highlighting and undo support), which can be seen when using Jobby.

  • Code contributed: RepoSense link

  • Project management:

    • Configuring the Issue Tracker Tags and Milestones for the project.
    • Setting up GitHub Actions for the project, including Java CI, CodeCov, GitHub Pages, PR Checks.
    • Managed releases v1.2 and v1.3.
    • Styling the website for optimal readability and print formatting, including:

      • Styling headers with improved spacing, typography and color for increased readability.

      • Tweaking the page-break rules for different elements, such as preventing page breaks on crucial boxes or enforcing page breaks immediately after certain headers.

      • Styling custom unified UG elements, like the following:

        • :trophy: How to perform a task :information_source: An info pill :warning: A warning pill :warning: A danger pill
        • Organization Recruiter Job Application
        • Beginner Intermediate Expert

  • Enhancements to existing features:

    • Revamped the parameter syntax to use a prefix of --param.
      • This allows for improved autocompletion UX as compared to param/, since we can immediately determine if the user intends to type a parameter based on the first character.
      • It is also much less likely to clash with an existing user input.

    • Swapped out random ID generation with an implementation to derive IDs from an input name.
      • This allows for improved UX when editing details that require an ID, combined with autocomplete integration.
      • e.g., google-sg-a8b3fe can be derived from an input of Google SG.

  • Documentation:

    • User Guide:
      • Added a structured command syntax introduction, and instructions to interpret command formats.
      • Added usage guides for command autocompletion.
      • Styling the website for improved overall readability and automated print formatting (see above in Project Management).

    • Developer Guide:
      • Integrated explanations of how “Autocomplete classes” work in the context of the Logic package.
      • Updated how AppParser (formerly AddressBookParser) operates in the context of our app, since we now dynamically look up details and also support autocompletion.
      • Added a complete high-level explanation of Jobby’s internal autocomplete implementation.
      • Added use cases for autocompletion.

  • Community:

    • Detailed PR Reviews (e.g., #32, #34, #39, #69, #183)
    • Forum contributions (e.g., #30, #103)
    • Reported bugs and suggestions for other teams (e.g., during PE-D)