Timothy Chua'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.
- New Feature: Added the ability to add templates.
- What it does: Allows the user to insert new email templates.
- Justification: This feature improves convenience, allowing which users use to prepare and reuse future email templates. Thus, increasing the speed of users can construct and send out emails to customers.
- Highlights:
- This enhancement affects the mail command by storing up drafts of future emails.
- Templates added allow for
\n
characters, allowing for greater email template customization.
- New Feature: Added the ability to delete templates.
- What it does: Allows the user to remove an existing email template.
- Justification: This feature enables users to delete and remove any of their created templates, for example when no longer relevant or when incorrect fields were inputted.
- New Feature: Added an edit template command
- What it does: Allows the user to edit an existing email template.
- Justification: This feature enables users to amend, correct or improve upon their already created templates. Removes the need for users to delete and create a new template just to change certain fields.
- New Feature: Added the ability to see all templates.
- What it does: Allows the user to view all email template in system.
- Justification: Enables users at a glance, view all existing templates.
- New Feature: Added the filter and find templates based on subject header.
- What it does: Allows the user to view only email template of interest containing specified word.
- Justification: Enables users quickly find specific types of templates to employ in mailing, editing or deleting.
- New Feature: Added the ability to construct an email to send on the desktop’s mailing application.
- What it does: Allows the user to create a new email containing the details of an existing job and template.
- Justification: This feature allows users to quickly generate emails for customers of jobs in a single line of text rather than slowly opening the mail application, creating a new email, and keying in manually the required of the client, and other information.
- Highlights:
- This enhancement has the ability to extract a job’s client email, template subject header and body text.
- Credit: 2ality for reuse of urlEncode.
-
Code contributed: RepoSense link
- Project management:
- Managed group coordination and communication on Telegram.
- Managed the timelines and issues of most GitHub milestones.
- Managed the allocation, tagging and linkage of most GitHub issues.
- Managed the allocation and update of GitHub project board.
- Managed reviewing and merging of some PRs.
- Manage quality control of code, documentation and diagrams.
- Enhancements to existing features:
- Updated the JSON Storage component for Jobs, Products and Templates (Pull requests #164).
- Updated the default generated JSON with MyCRM data (Pull requests #87).
- Updated the
help
command with hyperlink / clickable URL. (Pull requests #87). - Added more sample data to
SampleDataUtil
. (Pull requests #197, #87). - Wrote additional tests for existing features to increase coverage from 53.92% to 57.32% (Pull requests #164).
- Documentation:
- User Guide:
- Developer Guide:
- Community: