Samuel Koh's Project Portfolio Page
Project: bobaBot
bobaBot is a desktop application for managing customers’ membership details. It is optimized for Command Line Interface (CLI) while retaining some benefits of the Graphical User Interface (GUI). If you are a cashier working at a bubble tea shop and can type fast, bobaBot can help you easily find and manage your customers’ membership information as compared to other GUI applications.
bobaBot contains a database of customers’ information and supports operations to add, update, delete and even find customers based on various inputs. Every entry in the database contains the customer’s name, phone number, email address, birthday month, reward points and membership tags. bobaBot is written in Java and has about 13 kLoC.
Given below are my contributions to the project.
- New Feature:
Increase
/Decrease
Command - Added the functionality for users to directly increase/ decrease a Customer’s Reward points. (Pull Requests #138, #205)- What it does: Allows the user to increase/ decrease a Customer’s Reward points without accessing the Edit Command. For example, the user choose to identify the Customer via Phone number or Email address to increase/decrease his or her Reward points. The command will only increment/ decrement the Reward points if the final value DOES NOT exceed the MAXIMUM INTEGER VALUE (2147483647)/ DOES NOT become a NEGATIVE VALUE. Or else, an appropriate error message would be thrown.
- Justification: This feature improves the product efficiency for the users (bubble tea shop cashiers), as this would be easily the most used Commands during any transaction.
Therefore, this functionality allows for quick and easy way to increment a Customer’s Reward points without accessing the
Edit
Command, which is faster to enter into the CLI. Another added side benefit is that there would not be any accidental changes to other Customer fields since we are not directly calling theEdit
Command.
- New Feature:
BirthdayMonth
Tag - Reflects whether it is currently a Customer’s birthday month. (Pull Request #146)- What it does: Automatically adds a
BDAY
tag to Customers whoseBirthdayMonth
is the current month (syncs with the local system’s month). For example, if the Customer’s birthday is in November, then from 1 November to 30 November, theBDAY
tag would be automatically added to the Customer. - Justification: This allows the users (bubble tea shop cashiers) to easily track who is eligible for any ongoing birthday promotions.
- What it does: Automatically adds a
- Code contributed: RepoSense link
- Project management:
- Enhancement to existing features: Improved the original
Edit
Command to allow users to identify Customers to edit via Phone number or Email address, instead of via Index. (Pull Requests #68, #76, #82, #205)- What it does: Allows users to identify Customers via Phone number or Email address, which are both unique identifiers for individuals, instead of using Index originally.
- Justification: This feature increases the speed at which the user (bubble tea shop cashiers) can edit the Customer’s fields. Originally, the user would have to scroll through the
entire list of Customers to find his/ her Index, then execute the
Edit
Command. With this improvement, this entire step is skipped, greatly improving the efficiency of this Command.
- Enhancement to existing features: Improved the original
Find
Command to allow users to find unique Customers via Phone number or Email address as well. (Pull Request #80)- What it does: Allows users to find Customers via Phone number or Email address, which are both unique identifiers for individuals.
- Justification: This feature ensures that only one unique Customer will be displayed after the
Find
Command has been executed, which is helpful when the user does not want to scroll through multiple Customers in the resultant list.
- Enhancement to existing features: Added appropriate colours for special Tags.
(Pull Request #146)
- What it does: Updated GUI to display appropriate colours for different membership tiers and status e.g.
GOLD
,BANNED
,BDAY
- What it does: Updated GUI to display appropriate colours for different membership tiers and status e.g.
- Documentation:
- User Guide:
- Developer Guide:
- Community: