Natalie's Project Portfolio Page
Project: LinkyTime
LinkyTime is a desktop application for NUS Computer Science students to manage their online meeting links. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 13 kLoC.
Given below are my contributions to the project.
- New Feature: Added the ability to add and delete modules.
- What it does: Allows the user to add and delete modules they may be taking at NUS.
- Justification: This feature is needed to provide a way for users to categorize their meetings by its module.
- Highlights: This is a core feature of LinkyTime.
- New Feature: Added the ability to set a meeting’s module using the module index number.
- What it does: Allows the user to assign meetings to modules via the module’s index number.
- Justification: Users would be able to assign meetings to modules quicker, without having to type the full module name each time as well. This would also prevent accidental duplicated additions of new modules due to typos from the user.
- Highlights: This feature required significant effort in ensuring the refactoring of the existing commands did not break.
- Challenges: Due to the way data is structured in LinkyTime, I had to think of the most suitable way to store and retrieve the module in the meeting info effectively. The existing
addandeditmeeting commands had to be refactored to account for the module index as well.
-
Code contributed: RepoSense link
- Project management:
- Managed releases
v1.2.0-v1.4.0(4 releases) on GitHub. - Maintained issue tracker, and ensured PRs and issues are assigned to the proper milestones and authors.
- Managed bug triaging and allocation for PE-D.
- Maintained team weekly meeting notes.
- Managed releases
- Enhancements to existing features:
- Documentation:
- User Guide:
- Developer Guide:
- Added architecture details and class diagram of the Model component (#201)
- Added explanation and implementation details of the Module class and the design considerations for it (#101)
- Added implementation details and activity diagram of the
mdeletefeature (#101) - Wrote use cases for Module (UC-008 to UC-011) (#201)
- Added manual testing steps for Module commands (#217)
- Collaborated with teammates on the DG using VSCode Live Share (#10)
- Full list of DG PRs available here
- Created demo video segments for add module, edit module, delete module, and module sort
- Team tasks:
- Setup Codecov for the team repo.
- Created a Pull Request template on the team repo to standardize the PR message body.
- Updated project’s README.md and Index/home page. (#11, #123)
- Enabled assertions. (#99)
- Community: