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,deleteContactandlistContactcommands.- 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
addContactcommand 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
listContactcommand to be able to list unhidden or all contacts in the list.- Justification: Since there are hidden clients in the list, normal
listContactonly 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
deleteContactcommand 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
hideContactandundoHideContactcommand to Contact part of MyCRM:- What it does: Allows users to hide unused contacts in MyCRM. Users can type
undoHideContactto 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
findJobcommand 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
findcommand, and more keyword types are allowed infindJobinstead 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
addressBooktoMyCRM. - 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,undoHideContactandlistContact. - Added use cases for all contact command features:
addContact,editContact,deleteContact,findContact,hideContact,undoHideContactandlistContact.
(Please scroll down to see contact command features part.) - Added Instructions for manual testing for all contact command features:
addContact,editContact,deleteContact,findContact,hideContact,undoHideContactandlistContact.
- Added implementation details for all
contact command features:
- Community: