Wern's Project Portfolio Page
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:
- How to perform a task An info pill A warning pill 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.
- This allows for improved autocompletion UX as compared to
- 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 ofGoogle SG
.
- Revamped the parameter syntax to use a prefix of
-
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
(formerlyAddressBookParser
) 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.
- Integrated explanations of how “Autocomplete classes” work in the context of the
- User Guide:
-
Community: