Nguyen Minh Tuan's Project Portfolio Page
Project: CinternS
CinternS is a desktop app for managing internship applications, optimised for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI).
Given below are my contributions to the project.
- New Feature:
undo
andredo
commands- What it does: Allows users to restore the previous state after using a command that changes the state (e.g. add, edit, interview, etc.) and reapply the change after undoing it.
- Justification: The rationale for this enhancement is that with quite a number of new commands that we have added, it is likely that new users may make mistakes while using the app even with the help of the user guide. One mistake can cause a significant change (e.g. clear), so this feature prevents such unfortunate mistakes, while making it much more convenient for users to use the app.
- Highlights: Since this enhancement affected many of the existing and future commands, it required a good understanding of all components, especially the model. As new classes were added and existing commands and model had to be changed, it was important to make sure all existing features worked properly, with the help of relevant tests.
- Credits: The idea of adding
VersionedApplicationBook
was largely inspired by the one proposed in the developer guide of address-book-level-3.
- New Feature: Status field for applications
- What it does: Allows users to add a status with a new application and edit existing status of their application as they progress through the application process.
- Justification: The rationale for this enhancement is that when the number of applications become large, it is hard to remember the progress of every single one. Having a status field that is displayed clearly on the GUI allows the users to quickly find out the progress and update if necessary as they scroll down the list. This feature also aids the
stats
feature, as it provides the necessary statuses for a quick summary of current applications for users. - Highlights: We decided on this enhancement quite late compared to the other enhancements. As such, this caused significant changes in various other components, including model, command, parser and UI. Many of the tests had to be updated as they failed as status was added. The UI implementation was slightly challenging as the status tag must appear in the right place with the right colours.
- Credits: The design of status was inspired by the existing tags in address-book-level-3, with added colours and repositioning.
-
Code contributed: RepoSense link
- Project management:
- Managed issues and pull requests on the repository. Closed issues/PRs and linked PRs to the right issues when necessary.
- Enhancements to existing features:
- Documentation:
- User Guide:
- Updated quick start and command summary sections (PR #38)
- Added documentation for undo and redo commands (PR #128)
- Added documentation for status field (PR #128)
- Updated documentation to fix minor issues with formatting and consistency (PR #197)
- Added user stories, use cases and manual testing instructions for the features that were implemented by me. (PR#211)
- Developer Guide:
- User Guide:
- Community:
- Tools:
- Integrated Codecov to the team repo