Skip to the content.

Zi Yi - Project Portfolio Page

Project: CafeCRTL


Overview

CaféCTRL is a software engineering project for CS2113. The user interacts with the application through CLI. It has around 6 kLoC, and it is done in a team of 5.

Value Proposition

CaféCRTL aims to optimize managing of inventory and cash flow in a restaurant. Our CLI platform empowers Café proprietors to streamline inventory and menu management.


Summary of Contributions

Code Contribution

Follow here to see code written by me

Enhancements implemented

Feature

  1. Edit Price
    Function: Allow user to edit price of the dish on the menu Command Format: edit_price dish/DISH_INDEX price/NEW_PRICE
    Error Handling: This command is able to detect several wrong command formats and output specific error message.
  2. Help
    Function: Print out a list of commands and their usages to the user
    Extra info: This feature requires constant updating whenever a new feature is added.

  3. Encoding & Decoding of Pantry Stock Storage File
    Error Handling: This command will still check for the validity of each argument, and skip the particular ingredient if any of the arguments is not valid.

Enhancements

  1. Storage
    Relevant PR
    • Read and learned from the storage system in addressbook level 3 and adopted it in our project.
    • Implemented Encoder.java, Decoder.java and Storage.java with skeleton methods for my teammates to implement.
  2. Parser
    Created Parser.java for other teammates to use. Implemented ParserUtil interface to reduce coupling of Parser.java and CafeCRTL.java.
  3. Messages & ErrorMessages
    Created classes to store all messages to the user as static constant.
  4. Parser Regex
    Relevant PR
    • Learned Pattern and Matcher API by referring to addressbook and online documentations.
    • Created regex COMMAND_ARGUMENT_FORMAT, ADD_ARGUMENT_STRING, LIST_INGREDIENT_ARGUMENT_STRING, DELETE_ARGUMENT_STRING and EDIT_PRICE_ARGUMENT_STRING.
    • Created a skeleton method body of prepare_add method using pattern and matcher, and added some basic explanations on how to use them.

Contributions to UG

UserGuide

Individual Task

  1. Edit price, Help

Team-based Task

  1. Table of Contents
  2. Introduction
  3. Known Issues
  4. Glossary

Contributions to DG

DeveloperGuide

Individual Task

  1. Parser component
  2. Edit Price
  3. Help
  4. Future Enhancements

Team-based Task

  1. Acknowledgement
  2. Setting up, getting started
  3. Product Scope
  4. Non-Functional Requirements
  5. Glossary
  6. Manual testing guide

Other Contributions to Team-based Task

  1. Maintaining issue tracker with Dexter by labeling issues
  2. Approving and merging PRs
  3. Checking coding standard for most of the classes (PR #351)
  4. Reminding team members to use github effectively (although some of my reminders were ignored :”)
    • I encouraged my team members to report bugs using issue tracker on Github instead of using Telegram. (e.g., #323)
  5. Testing of features done my other team members

Review/Mentoring Contributions

  1. Reviewed and approved 52 PRs in total. Some examples of PR reviewed: #167, #106, #57, #96
  2. Shared my opinions in Telegram group.
  3. Read and compile important information on course website.

Contributions beyond the Project Team

  1. Posted 9 posts in the forum. Examples of forum posts: #37, #19, #31
  2. Reviews on PR from other teams: T18-1, F11-3