Nguyen's Project Portfolio Page
Project: NetworkBook
NetworkBook is a desktop contact book application. It aims to help computing students and professionals from NUS to network with each other. The user interacts with it using a CLI, and it has a GUI created with JavaFX.
Given below are my contributions to the project.
-
New Feature: Add an email to a person. The command adds the new email to the target person’s current list of emails. The email regex ensures that
@
is present, and at least one.
is present in the domain part. Pull request: #86 -
New Feature: Add a link to a person. The link regex accommodates for links that consist of domain, and optionally pathname and query parameters, while ensuring that the provided link conforms to most of the URL standards (which suggests the URL’s invalidity). Pull request: #88
-
Enhancement to an existing feature: Edit a person’s details. Any contact details are editable. The edit feature makes effective use of the
UniqueList
class to ensure the validity of the indices and for duplicate checking. Pull request: #122 -
New Feature: Open a contact’s link from the app. The feature allows the user to easily to open a contact link with the
open
command. Pull request: #152 -
New Feature: Open a window for a new email to a contact’s email address. The feature allows the user to easily start sending an email to a contact with the
email
command. Pull request: #161 -
Design implementation: Generalised
UniquePersonList
toUniqueList
, which is also used in the implementation of many fields of thePerson
class, including phone, email, link, course, specialisation and tag. Pull request: #79 -
Code refactoring: Refactored the entire code base, changing the package name from
seedu.address
tonetworkbook
. This involves exhaustive changes in class names and test case names. Pull request: #77 -
Bug fix: Ensured that any kind of malformed JSON and lack of write permission in the data file, preference file, config file and log file do not cause the application to crash upon launch. Pull requests: #235 #237
-
Code contributed: RepoSense link
- Project management:
- Managed all releases
v1.1
,v1.2
,v1.3
,v1.4
on GitHub. - Created all milestones and sub-milestones,
v1.1
,v1.2
,v1.2b
,v1.3
,v1.3b
,v1.4
,v1.4b
.
- Managed all releases
- Documentation:
- User Guide:
- Developer Guide:
- Added user stories, use cases and non-functional requirements for features related to accessibility. Pull request: #24
- Added a glossary to define relevant terms used in the Developer Guide.
- Added documentation on the implementation the edit feature. Pull request: #138 and the one below
- Refined documentation on the model package. Pull request: #238
- Added documentation on the implementation of filter feature. Pull request: #297
- Updated planned enhancements. Pull requests: #248, #289
- Updated all use cases to follow current implementation. Pull request: #287
- Updated manual testing section. Pull request: #293
- Community:
- Conducted team weekly meetings.
- Ensured that team members follow the internal deadlines.
- Conducted thorough review of team’s dynamics in
v1.2
postmortem meeting to ensure everyone is on track, upon late work submissions inv1.2
.
- Conducted thorough review of team’s dynamics in
- Reviews on major PRs (with changes in functional code): #82, #85, #87, #94, #97, #141, #167, #142, #166, #145, #178, #146, #160, #165, #269
- Completed teammate’s task when he could not finish in time: #95
- Produce bug reports for PE-D: #256 #258 #272 #276 #282
- Produce bug reports for team T08-1: repo link
- Tools:
- Set up team member’s privileges in the repository.
- Set up github pages for pages deployment.
- Added JavaCI and Codecov for pull request checks. Added branch protection rules.