Mingyu's Project Portfolio Page
Project: CodeContact
CodeContact is a desktop address book solution for Software Engineering companies. 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.
- New Feature 1:
Undo
nRedo
- What it does:
Allows users to undo and redo their command easily. - Justification:
This feature enhances user experience by allowing effortless reversal of previous actions, providing convenience in scenarios where unintended changes are made. - Highlights:
The undo and redo feature is unlimited, allowing users to revert all the way to their first or last command using the simpleundo
orredo
command, ensuring ease of use. - Credits:
Inspired by the AB-3 developer guide, this feature employs a pointer to change the address book at each undo or redo command. Additional validation checks were added for CodeContact’s complexity.
- What it does:
- New Feature 2:
Adding roles
- What it does:
Allows users to add different roles. - Justification:
This feature minimizes risks associated with incorrect role assignments by allowing explicit definition and addition of developer or client roles. It ensures a standardized set of role names, reducing the chance of mislabeling and improving searchability within CodeContact. - Highlights:
The feature provides separate commands (add-developer-role and add-client-role) for adding developers and clients, adding clarity to the role assignment process. A pre-added list of roles for clients and developers facilitates user adoption, and validation checks prevent the addition of repeated roles. - Credits: N.A.
- What it does:
- New Feature 3:
Deleting roles
- What it does:
Allows users to delete different roles. - Justification:
This CodeContact feature is crucial for user data management, enabling users to refine and update the list of roles. Deleting roles is essential for maintaining a clean and relevant role structure, empowering users to adapt roles to evolving needs and ensuring accuracy in the address book. - Highlights:
Separate commands (delete-developer-role and delete-client-role) cater to the unique needs of deleting developers and clients. To prevent accidental deletion when roles are in use, the feature checks for active developers and clients before deletion. Users cannot delete pre-added roles from CodeContact. - Credits: N.A.
- What it does:
- Enhancements to existing features:
-
Code contributed: RepoSense link
- Project management(team-based tasks contributions):
- Managed releases
v1.1
-v1.4
(4 releases) on GitHub - Managed issues creating and some assigning throughout the milestones
- Managed the collaboration document and product demo submissions for tutorial
- Managed releases
- Documentation Contributions:
- User Guide Contributions:
- Removed traces of AB-3: #50
- Added documentation for the features
undo
,redo
,add-role
anddelete-role
: #160 - Did cosmetic tweaks to existing documentation of features
list
: #160 - Wrote the content for
tutorial
: #162 - Modified and content and UI pictures for
Quick Start
: #162 - Wrote the content for
Navigating the GUI
andFormat
: #242
- Developer Guide Contributions:
- User Guide Contributions:
- Community (Review/mentoring contributions):
- Reported bugs and suggestions for other teams in the cohort
- Reported bugs and suggestions for other teams in the cohort