Skip to content

Latest commit

 

History

History
65 lines (42 loc) · 4.25 KB

charmaineleehc.adoc

File metadata and controls

65 lines (42 loc) · 4.25 KB

Charmaine Lee - Project Portfolio

PROJECT: CarviciM


Overview

CarviciM is a desktop car servicing management application, morphed from AddressBook - Level 4, which is used for teaching Software Engineering principles in NUS School of Computing. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC initially, before the morph.

CarviciM is for car servicing managers to manage the sheer amount car servicing jobs with convenience and ease. CarviciM allows car servicing managers to Carvicim to add jobs, close ongoing jobs, import large number of job entries, manage employees for job assignment, notify employees of jobs through email, and more.

Summary of contributions

  • Major enhancement: added the ability to send out auto-generated emails containing job details

    • What it does: Allows the user to send out auto-generated emails about the job details to all the assigned employees of the job.

    • Justification: Before this feature is implemented, a car servicing manager would typically call up employees one by one to inform them of their job details for the next day, which takes up a lot of time. With this feature, the user can so conveniently inform their employees about the job that will be doing. Moreover, the emails are auto-generated, so the user need not type out the job details themselves. This greatly speeds up administrative work done by car servicing managers.

    • Highlights: This enhancement required an in-depth analysis of design alternatives in order to pick the better choice. The implementation too was challenging as it required being able to connect to Gmail in order to send out emails to all employees assigned to the job with the specific job details as the content. Moreover, strictly adherence to coding standards was required. Adding test cases was also necessary as the code had to contain as few bugs as possible.

  • Minor enhancement: added the ability to filter list of employees by their tags

    • What it does: allows the user to enter multiple keywords and the employee list will be filtered to show only employees that have tags matching those keywords.

    • Justification: The employees can be tagged by their roles in the company (e.g. mechanic, techician, etc.). With the ability to filter the employee list by their tags, the car servicing manager can easily find the right employee for a specifc kind of job.

    • Highlights: This implementation was challenging as it required a working algorithm that can match multiple keywords to multiple tags.

  • Code contributed: [Functional code] [Test Code]

  • Other contributions:

    • Project management:

      • Managed release v1.5rc on GitHub

      • Used GitHub issues tracker to keep track of issues that arise throughout the development process

    • Documentation:

      • Updated User Guide with the features implemented (see below, under Contributions to the User Guide).

      • Updated Developer Guide with the features implemented (see below, under Contributions to the Developer Guide).

      • Made changes to other parts of both User and Developer Guide to make them more reader-friendly, such as formatting and improving the language used.

    • Community:

      • Reported bugs and suggestions for other teams in the class (example)

Contributions to the User Guide

Given below are sections I contributed to the User Guide. They showcase my ability to write documentation targeting end-users.

Contributions to the Developer Guide

Given below are sections I contributed to the Developer Guide. They showcase my ability to write technical documentation and the technical depth of my contributions to the project.