Shen Yi Hong's Project Portfolio Page
Project: CLIMods
CLIMods
is a native desktop application for NUS students to explore, manage and plan academic
modules that they are interested in taking. Power users of the command line/terminal will be able to
plan and manage their modules much faster than doing it on nusmods.com.
Given below are my contributions to the project.
- New Feature: Added the ability to find modules using keywords.
- What it does: Allow users to find modules offered by NUS using keywords
- Justification: This feature improves the product significantly because a user can easily search for a module using keywords without needing to know the exact module code.
- Highlights: This feature allows for valid regex expressions to be used as keywords. Additionally, it also employs a simple sorting heuristics to rank the results based on relevance for a better user experience.
- New Feature: Added a history command that allows the user to navigate to previous commands
using
<Up>/<Down>
arrow keys- What it does: Keeps track of a command history and allow users to traverse through the command history using arrow keys.
- Justification: The features improves the user experience as a user can easily reuse previous commands without having to type it all over again.
- Highlights: It required a careful consideration for various designs that are implemented in
popular shells. Inspired by the
zsh
design, the command history does not keep consecutive duplicate commands to reduce clutter.
-
Code contributed: RepoSense link
- Project management:
- Managed releases
v1.2
-v1.4
(3 releases) on GitHub - Maintained milestone issues
- Plan out tasks for each milestone sprints (
v1.2
->v1.4
)
- Managed releases
- Enhancements to existing features:
- Integrate the command history with existing
CommandBox
- Contributed to the design of
CliMods
UI components
- Integrate the command history with existing
- Documentation:
- User Guide:
- Added simple visual demonstration for commands
- Contributed to the
find
command documentation
- Developer Guide:
- Added implementation details of the command history feature.
- Updated UML diagram for the Logic component
- User Guide:
- Community:
- Tools:
- Integrated a third party library (swagger-codegen/openapi-generator) to the project (#45)