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:
GitHubProfile
class 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
SOCket
to be stored, allowing users to easily retrieve the information needed to find the contact on GitHub - Highlights:
VALIDATION_REGEX
ensures 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:
Language
class 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
SOCket
to 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:
undo
andredo
commands #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
SOCket
to allow for a simple implementation of the undo/redo functionality - Credits: {This feature was implemented as proposed in AddressBook-Level3}
- New Feature:
Project
class 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_REGEX
andisValid*
methods for fields ensure validity of inputs stored inProject
instance (does not guarantee thatProjectRepoHost
orProjectRepoName
exist, only that they are valid);Project
instances are stored in an additional list in thesocket.json
data file, with its own copies of thePerson
instances that are members of theProject
; references to thePerson
instances are restored upon reading in thesocket.json
data file - Credits: {-}
- New Feature:
deletepj
command 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:
JUnit
tests 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
Person
class with new fields utilising newly added classes, modify behavior to allow fields to be empty #76 - Updated
edit
command to allowLanguage
instances to be added cumulatively, instead of being replaced by new instances #82 - Converted link in
HelpWindow
shown byhelp
command 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
,equals
inName
to enhance duplicate detection forPerson
instances #146 - Updated
VALIDATION_REGEX
inTag
to limit length #147
- Updated
- Documentation:
- User Guide:
- Added documentation for the features
add
andedit
#44 - Did minor tweaks to existing documentation #44
- Added documentation for the features
undo
andredo
#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
/redo
and credit proposed implementation inAB-3
#106 - Updated existing UML diagrams to reflect changes in implementation of
Model
andStorage
architectures, current implementation ofundo
andredo
, as well as changes from code refactoring #164 - Added introduction, documentation for implementation of
Project
feature #184 - Added use case
UC21
#184 - Added UML sequence diagram to show how updates are made to the associated
Project
object when updates are made toPerson
objects #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
,Phone
andLanguage
fields, as well as enhancements adding overdue checks forProjectDeadline
andProjectMeeting
, and enhancements to allow multipleProjectMeeting
fields for aProject
#249, #269
- User Guide:
- Community: