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
Transactionmodel 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
hashworks. The implementation was challenging as theAccountinformation 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
deleteReservationbyReservation ID#106- What it does: allows the manager to
deleteReservationbyReservation ID - Justification: This feature is essential, since each
Reservationhas its ownID, and the application is not able to list all theReservations, it is impossible todeleteReservationbyIndex. Therefore, theReservation IDis 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
DeleteCommandneed to be abstracted, and inheritDeleteCommandbyDeleteCommandPrefixParser, and further inheritDeleteCommandPrefixParserbyDeleteReservationCommand. Similarly, theDeleteCommandParseralso need to be abstracted, and inherit it withDeleteReservationCommandParser.
- What it does: allows the manager to
- Enhancements to existing models:
- Added the
IDfor theReservationmodel so that the staff and manager can do operations based on theReservation ID#106
- Added the
- Enhancements to existing features:
- Updated the regex of
Phonesuch 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: