Lee Yong Ler's Project Portfolio Page
Project: SoC InternApply
SoC InternApply - SoC InternApply helps CS students to track internship applications they are interested in. It is optimised for users who prefer CLI and have a lot of company applications and their associated tasks to keep track of. 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: Link to my code contribution
Enhancements to existing features:
- Extension of normal
TagtoPriorityTagandApplicationStatusTag. This aids in adding more information for the applications.- I made changes in
Tag.java,PriorityTag.java,PriorityTagType.java,ApplicationStatusTag.javaandApplicationStatusTagType.java. - It is complete as required by our application as the important information about an application is captured by the
ApplicationStatusTagandPriorityTag. If user wants to add more information, they can do so with the normalTag. - Changes include inheritance, error messages, enumerations as well as checking of input values based on enum values, which are used in many other places such as the parsers and storage.
- I made changes in
Findcommand such that it can find applications based onName,JobTitle,Tag,ApplicationStatusTagandPriorityTag.- Most of the changes is in
FindCommandParser.java,StringUtil.javaandFindCommand.java. - The feature is complete in a way that it offers users great flexibility in filtering applications based on the important criteria.
- Initially it was hard to implement as the mechanism of the original
Findcommand was hard to trace, I looked through the code all the way toLogicManager. After understanding it, I had to code additional checks for the parser since it is different based on the ones used in theAddcommand.
- Most of the changes is in
Contributions to the UG:
Addcommand for the newPriorityTagandApplicationStatusTag.Findcommand.
Other than these 2 features which I was involved in creating, I also helped to do these across the whole UG:
- Change the UG based on Ms. Dara (CS2101 tutor)’s recommendation
- Rewrite many confusing statements so that they are more user-friendly, where non-tech people could understand the UG
- Make the command summary more readable
- Fix typos and grammar mistakes
- Added notes and cautions for the user so that they know it is an intended behaviour
Contributions to the DG:
- Updated UI component to suit our product
Findcommand details, design considerations, uml diagrams and manual testing section- Added use cases of the product for all features
- Drafted the effort section
- Fixed typos and grammar error across whole DG
Contributions to team-based tasks:
- Setting up the GitHub team org/repo
- Setting up tools e.g., GitHub, Gradle
- Maintaining the issue tracker
- Release management
- Updating user/developer docs that are not specific to a feature e.g. making it more user-friendly and bug-free
- Guide the team through project deliverables and give working suggestions during team meetings (more towards first half of tp when the team is still unsure of what to do)
- Lead the initial project draft submission and direction
Review/mentoring contributions:
- Link to reviewed PRs
- Also helped teammates during team meeting about possible bugs in the features as well as provide links that might be useful (issue regarding environment variables and also sorting based on Java enum).
Contributions beyond the project team:
- Shared Intellij shortcut tip in the forum. Link
- Helped to spot bugs from other teams during the demo PE.