Nicholas Russell Saerang's Project Portfolio Page
Project: JerylFypManager
JerylFypManager is a desktop application catered to professors to manage and track the progress for students’ final year project (FYP), as well as serving as a platform for professors to provide feedback on their students’ progress. 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. This project is based on AddressBook - Level 3.
Given below are my contributions to the project.
- Enhancements to existing features:
- Redefine equality on
Student
.- Rationale: Checking whether a student is a duplicate of another one must be determined on their student ID instead of name since there can be multiple individuals with the exact same name. The previous implementation checks on their name instead of their student ID.
- Support friendlier syntaxes.
- Rationale: Adding a student and adding a deadline has an overlapping command word
add
, likewise for deleting. As such, the previous implementation changes the command word to accept strictlyadd-s
andadd-d
. However, it would be better to accept any spaces betweenadd
and the flags,-s
or-d
, as well as providing a default choice if the flag is not specified.
- Rationale: Adding a student and adding a deadline has an overlapping command word
- Extend
HelpCommand
to handle various commands.- Rationale: With more commands being added, it would be harder to maintain the help command since another new class must be added. Instead, I modified
HelpCommandParser
to create differentHelpCommand
instances. This approach will keepHelpCommand
as its own class but with extended functionalities that do not need to increase the number of classes needed.
- Rationale: With more commands being added, it would be harder to maintain the help command since another new class must be added. Instead, I modified
- Enhance deadline parser to accept multiple datetime formats.
- Improve code quality on
EditCommand
.- Rationale: Used the Facade design pattern such that
EditCommandParser
does not accessEditCommand.EditStudentDescriptor
directly but rather use what has been provided in theModel
interface.
- Rationale: Used the Facade design pattern such that
- Major UI changes, such as the splitting of the FYP list into uncompleted and completed list.
- Redefine equality on
- New Feature:
- Add student command - A feature to add a student to FypManager along with the particular details.
-
Code contributed: I personally contributed around 4 KLoC to FypManager, the RepoSense link can be found here.
- Project management:
- Created team organization, setup team repository, CodeCov, and GitHub Actions workflow.
- Oversaw overall integration of features, especially on lint checks.
- Renamed all packages to match FypManager, i.e.
seedu.address
tojeryl.fyp
. - Managed the release of
v1.2
,v1.3
,v1.3.1
,v1.3.2
, andv1.4
on GitHub by doing JAR release test. - Approved PRs and merging them.
- Set up milestones on GitHub (v1.2, v1.2b, v1.3, v1.3b, v1.4, v1.4b).
- Set up preliminary meeting minutes, such as post PE-D pre-triaging report.
- Initiated Zoom meetings for team meeting, hosted them, and conduct debug sessions.
- Contributed to more than 50 PR review comments as shown on this dashboard.
- Documentation:
- User Guide:
- Added introduction, GUI overview and glossary.
- Refactor numberings on the Features section.
- Added details on adding a students FYP.
- Added details on sorting the FYP list.
- Developer Guide:
- Synced glossary with User Guide.
- Added Use Case UC01 - Adding FYP.
- Resolve issues in user stories.
- Updated class diagrams for UI.
- Added AddStudentCommand implementation.
- User Guide:
- Community:
- Reported significant number of bugs in other team’s software product during the practical exam dry run as shown here.
- Authored some helpful posts to help peers, such as how to fix a non-deterministic CodeCov issue.
- Tools:
- Used SceneBuilder extensively to refactor the UI.