HangZelin's Project Portfolio Page
Project: MyCRM
MyCRM is a desktop application for managing client contacts, repair job statuses, and product information that has been optimised for use via a Command Line Interface (CLI) while maintaining the benefits of a Graphical User Interface (GUI). If you type quickly, MyCRM can complete customer relationship management tasks faster than traditional GUI applications.
Given below are my contributions to the project.
- Enhancements to existing features: Modified old contacts in AddressBook to
addContact
,editContact
,findContact
,deleteContact
andlistContact
commands.- What it does: Allows users to make basic operations in contact part of MyCRM.
- Justification: These add, edit, find etc. commands are now viewed as only a part of commands in MyCRM system, and served as commands specific towards contact part in MyCRM. Besides, a contact is no longer viewed as normal friends in addressBook, but a cooperation partner, so information given should be working official.
- Credits: These modifications follow the design pattern in AddressBook.
- Enhancements to existing features: Enhanced
addContact
command to support optional fields.- What it does: Allows users to enter partial information of a client.
- Justification: A client may consider his own privacy issue, thus MyCRM should allow a client to conceal part of his/her information.
- Enhancements to existing features: Enhanced
listContact
command to be able to list unhidden or all contacts in the list.- Justification: Since there are hidden clients in the list, normal
listContact
only support viewing unhidden contacts in the list. Therefore, a different listContact command is needed if a user requires to see all contacts in the list.
- Justification: Since there are hidden clients in the list, normal
- Enhancements to existing features: Enhanced
deleteContact
command to disable deletion of a contact if it is already linked to a job.- Justification: It is not reasonable if a user requires to delete a client in MyCRM when the job
linked to this client has not been completed yet.
- Justification: It is not reasonable if a user requires to delete a client in MyCRM when the job
linked to this client has not been completed yet.
- New Features: Added
hideContact
andundoHideContact
command to Contact part of MyCRM:- What it does: Allows users to hide unused contacts in MyCRM. Users can type
undoHideContact
to set this client back to not hidden state. A hidden contact will have a new tag hidden, indicating that this client is currently unused, and not visible in the normal contact list. - Justification: This feature improves the MyCRM’s efficiency when accessing clients because a user can prevent himself/herself getting distracted by unused clients. They can also set hidden clients back to visible easily with these two commands.
- Highlights: This enhancement affect the visibility of contact list. It requires further changes in other contact commands if users want to view this contact or make operations upon it.
- What it does: Allows users to hide unused contacts in MyCRM. Users can type
- New Features: Added
findJob
command to Job part.- What it does: Allows users to find certain jobs via a job’s description, client name, product name linked to it or completion status.
- Justification: This feature improves the MyCRM’s efficiency when accessing jobs. Users can easily locate jobs they hope to seek in the list.
- Credits: This new feature follows the design pattern of AddressBook’s
find
command, and more keyword types are allowed infindJob
instead of only the name of a job.
- Enhancements in Tests:
-
Code contributed: RepoSense link
- Project management:
- Set up the GitHub team org/repo for T14-3.
- Set up CodeCov report for team repo.
- General code enhancement:
- Rename product from
addressBook
toMyCRM
. - Change product icon to
MyCRM
.
- Rename product from
- Managed reviewing and merging of most PRs.
- Managed code quality review.
- Managed releases
v1.2.1
(1 release) on GitHub
- Documentation:
- Set up MyCRM Product Website.
- Update README to link to MyCRM project
- User Guide:
- Added documentation for contacts features:
addContact
: adds a new client’s contact into MyCRM.editContact
: edits a current client’s contact info.deleteContact
: deletes a client’s contact.findContact
: finds all contacts matches keyword given.listContact
: lists unhidden contacts or all contacts.hideContact
: hides a currently not being used contact info.undoHideContact
: undoes hiding a contact operation.
- Did cosmetic tweaks to Quick Start part command examples.
- Added documentation for contacts features:
- Developer Guide:
- Added implementation details for all
contact command features:
addContact
,editContact
,deleteContact
,findContact
,hideContact
,undoHideContact
andlistContact
. - Added use cases for all contact command features:
addContact
,editContact
,deleteContact
,findContact
,hideContact
,undoHideContact
andlistContact
.
(Please scroll down to see contact command features part.) - Added Instructions for manual testing for all contact command features:
addContact
,editContact
,deleteContact
,findContact
,hideContact
,undoHideContact
andlistContact
.
- Added implementation details for all
contact command features:
- Community: