Chia Yu Hong's Project Portfolio Page
Project: SOCket
SOCket is a desktop application for NUS Software Engineering Students to manage the contact information of their peers and professors. 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:
GitHubProfileclass to represent the GitHub username of aPerson#74- What it does: Stores the GitHub username of a
Person, and validates the input - Justification: Allows the GitHub username of contacts in
SOCketto be stored, allowing users to easily retrieve the information needed to find the contact on GitHub - Highlights:
VALIDATION_REGEXensures the validity of any input stored as aGitHubProfile(does not guarantee that it exists, only that it is valid) - Credits: {Input validation based on form validation from Join GitHub}
- What it does: Stores the GitHub username of a
- New Feature:
Languageclass to represent proficiency in a programming language of aPerson#75- What it does: Stores the programming languages a
Person, and validates the input - Justification: Allows the programming language proficiencies of contacts in
SOCketto be stored, allowing users to easily view the proficiencies of a contact - Highlights: Simple input validation using
VALIDATION_REGEX(does not guarantee existence of input as a programming language) - Credits: {-}
- What it does: Stores the programming languages a
- New Feature:
undoandredocommands #99- What it does: Allows users to undo/redo changes
- Justification: Users are able to revert/restore unintended changes to
SOCket - Highlights: Stores the states of
SOCketto allow for a simple implementation of the undo/redo functionality - Credits: {This feature was implemented as proposed in AddressBook-Level3}
- New Feature:
Projectclass to represent a project (in collaboration with @dillongoh) #130- What it does: Allows users to store information about a project, including details regarding the project repository, deadline, and members
- Justification: Users are able to easily manage and retrieve information regarding the project
- Highlights:
VALIDATION_REGEXandisValid*methods for fields ensure validity of inputs stored inProjectinstance (does not guarantee thatProjectRepoHostorProjectRepoNameexist, only that they are valid);Projectinstances are stored in an additional list in thesocket.jsondata file, with its own copies of thePersoninstances that are members of theProject; references to thePersoninstances are restored upon reading in thesocket.jsondata file - Credits: {-}
- New Feature:
deletepjcommand to delete existing projects #150- What it does: Allows users to delete existing projects
- Justification: Users are able to remove finished projects from
SOCket - Highlights:
JUnittests to test command functionality - Credits: {-}
-
Code contributed: RepoSense link
- Project management:
- Set up the GitHub team organization/repository
- Set up and helped maintain the issue tracker
- Set up GitHub Projects to manage User Stories
- Updated README.md to match project #43
- Updated index.md to match project #174
- Set up milestones for v1.1, v1.2, v1.2b, v1.3, v1.3b, v1.4
- Closed milestones v1.1, v1.2, v1.2b, v1.3, v1.3b, v1.4
- Managed release of v1.2.1, v1.3.0, v1.4.0
- Enhancements to existing features:
- Updated
Personclass with new fields utilising newly added classes, modify behavior to allow fields to be empty #76 - Updated
editcommand to allowLanguageinstances to be added cumulatively, instead of being replaced by new instances #82 - Converted link in
HelpWindowshown byhelpcommand into a Hyperlink to allow users to more easily access the user guide #103 - Refactored code to remove references to
AB-3#116 - Updated
VALIDATION_REGEX,equalsinNameto enhance duplicate detection forPersoninstances #146 - Updated
VALIDATION_REGEXinTagto limit length #147
- Updated
- Documentation:
- User Guide:
- Added documentation for the features
addandedit#44 - Did minor tweaks to existing documentation #44
- Added documentation for the features
undoandredo#104 - Added “Introduction”, “About this User Guide” sections, split “Features” into “General Commands”, “Contact Commands” and “Project Commands” #177
- Added documentation for the features
- Developer Guide:
- Added documentation for target user profile, value proposition, user stories #53
- Added use cases
UC01,UC02,UC09#54 - Updated glossary #55
- Updated non-functional requirements #56, #184
- Updated implementation of
undo/redoand credit proposed implementation inAB-3#106 - Updated existing UML diagrams to reflect changes in implementation of
ModelandStoragearchitectures, current implementation ofundoandredo, as well as changes from code refactoring #164 - Added introduction, documentation for implementation of
Projectfeature #184 - Added use case
UC21#184 - Added UML sequence diagram to show how updates are made to the associated
Projectobject when updates are made toPersonobjects #184 - Updated “Appendix: Instructions for manual testing” with instructions for testing
add,edit,deletepj, Saving data #191 - Added “Appendix: Planned Enhancements” with planned enhancements to validation for
Name,PhoneandLanguagefields, as well as enhancements adding overdue checks forProjectDeadlineandProjectMeeting, and enhancements to allow multipleProjectMeetingfields for aProject#249, #269
- User Guide:
- Community: