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
- 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. - 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. - 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
- 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
andStorage.java
with skeleton methods for my teammates to implement.
- Parser
CreatedParser.java
for other teammates to use. Implemented ParserUtil interface to reduce coupling of Parser.java and CafeCRTL.java. - Messages & ErrorMessages
Created classes to store all messages to the user as static constant. - Parser Regex
Relevant PR
- Learned
Pattern
andMatcher
API by referring to addressbook and online documentations. - Created regex
COMMAND_ARGUMENT_FORMAT
,ADD_ARGUMENT_STRING
,LIST_INGREDIENT_ARGUMENT_STRING
,DELETE_ARGUMENT_STRING
andEDIT_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.
- Learned
Contributions to UG
Individual Task
- Edit price, Help
Team-based Task
- Table of Contents
- Introduction
- Known Issues
- Glossary
Contributions to DG
Individual Task
- Parser component
- Edit Price
- Help
- Future Enhancements
Team-based Task
- Acknowledgement
- Setting up, getting started
- Product Scope
- Non-Functional Requirements
- Glossary
- Manual testing guide
Other Contributions to Team-based Task
- Maintaining issue tracker with Dexter by labeling issues
- Approving and merging PRs
- Checking coding standard for most of the classes (PR #351)
- 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)
- Testing of features done my other team members
Review/Mentoring Contributions
- Reviewed and approved 52 PRs in total. Some examples of PR reviewed: #167, #106, #57, #96
- Shared my opinions in Telegram group.
- Read and compile important information on course website.