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:
      • Added documentation for the features mail, addTemplate, deleteTemplate, editTemplate, listTemplate, findTemplate, printReport and exportReport: #123, #112, #111, #41.
      • Did cosmetic tweaks to existing documentation of features exit, help and clear: #112.
    • Developer Guide:
      • Added documentation for the features mail, addTemplate, deleteTemplate, editTemplate, listTemplate, findTemplate, help and update “Launch and shutdown” and “Saving data”.
      • Updated documentation of model components #192, #80.
  • Community: