Stephanie Chen's Project Portfolio Page
Introduction
This page serves to document my contributions to the project ezFoodie under NUS module CS2103T in AY21/22 semester 1.
Project: ezFoodie
ezFoodie is a desktop application that helps restaurants keep track of their ever-growing list of members. Restaurant managers and staffs can easily view and update member status (e.g. personal information, tier, reservation, transaction, etc.) to manage and analyze members. Restaurant managers and staffs interact with ezFoodie using a Command Line Interface (CLI), and has a Graphical User Interface (GUI) created with JavaFX.
It is written in Java, and has about 35 kLoC, of which I contributed about 1 kLoC.
Given below are my contributions to the project.
-
Code contributed: RepoSense link
- New Model: Created the
Transaction
model to support adding transaction details for each member. #69- What it does: stores the details of each transaction under each
member
. - Justification: This model is essential as it is one of the core features of ezFoodie.
- Highlights: This enhancement requires understanding on how
hash
works. The implementation was challenging as theAccount
information need to be hashed when it is storing in the file for the purpose of high security.
- What it does: stores the details of each transaction under each
- New Feature: Added the ability to
delete
Reservation
byReservation ID
#106- What it does: allows the manager to
delete
Reservation
byReservation ID
- Justification: This feature is essential, since each
Reservation
has its ownID
, and the application is not able to list all theReservations
, it is impossible todelete
Reservation
byIndex
. Therefore, theReservation ID
is the only attribute to identify theReservation
. - Highlights: This enhancement requires understanding on how polymorphism works and implement it so that the application will use Object-oriented programming (OOP) sufficiently. The implementation was challenging as the
DeleteCommand
need to be abstracted, and inheritDeleteCommand
byDeleteCommandPrefixParser
, and further inheritDeleteCommandPrefixParser
byDeleteReservationCommand
. Similarly, theDeleteCommandParser
also need to be abstracted, and inherit it withDeleteReservationCommandParser
.
- What it does: allows the manager to
- Enhancements to existing models:
- Added the
ID
for theReservation
model so that the staff and manager can do operations based on theReservation ID
#106
- Added the
- Enhancements to existing features:
- Updated the regex of
Phone
such that it will only accept numbers that are strictly 8 digits long, compared to the original which allowed any number at least 3 digits long. #184
- Updated the regex of
- Project management:
- Maintained the milestones
- Documentation:
- Community: