Yang Yuzhao'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 2.1 kLoC.
Given below are my contributions to the project.
-
Code contributed: RepoSense link
-
New Feature: Added the ability to
addTransactionbyMember ID#93, #90, #73.-
What it does: Allows the staff and manager to
addTransactionto a specified member, identified by hisMember ID. -
Justification: The staff and manager should be able to add a new
Tranasctionto ezFoodie when it is made by a member at the restaurant. -
Highlights: This feature requires an understanding on how inheritance and polymorphism in OOP is used, since
AddMembercommand andAddTransactioncommand share the same command wordadd. In the first implementation,AddMembercommand andAddTransactioncommand both inherit fromAddCommand, and the same for twoParserclasses of these two commands.AddCommandare parsed byAddCommandPrefixParserfirst to distinguish between two commands before any further actions. This obeys the original code structure.
-
-
New Feature: Added the ability to
showMemberdetails byMember IDin a separate pop-up window #102 (The Java class is namedViewCommand, while the command is namedshowto fit the command naming in our UG.).-
What it does: Allows the staff and manager to
showa specificMember’s details that are not shown in main window, such asTransactionandReservation. The member is identified by hisMember ID. -
Justification: It is too long and tedious if all information is shown in
MainWindowand is not user-friendly. Moreover, viewing aMember’s details is most probably a one time action in daily restaurant routine. Hence,MainWindowshould remain open, and a separate pop-up window would be a good choice for staff and managers toshowa specificMember’sTransactionandReservationdetails when they want to. -
Highlights: This feature requires an understanding on full stack integration and object references in Java.
MemberViewWindowis a new pop-up window and hence it should be a separate stage in JavaFX.ModelandCommandResultare changed according to include a boolean value, indicating whetherMemberViewWindowshould be displayed or hidden. Since the feature uses the samefilterMemberListmethod asFindCommanddue to abstraction and encapsulation, a deep copy ofupdatedMemberListis used forMemberViewWindowusage only, so that when the user asks for a specificMember’s details, the deep copy is updated instead and the copiedupdatedMemberListshown inMemberViewWindowwill not affect theMemberListPanel(which uses the originalupdatedMemberListand refers to all members stored in ezFoodie) shown inMainWindow.
-
-
New Feature: Added the ability to view
summaryof data stored in ezFoodie in a separate pop-up window. #111-
What it does: Allows managers to view
summaryof totalMemberexisting in ezFoodie as well as time-series statistics ofTransactiondata (i.e. aggregate number and amount of transactions recorded in ezFoodie in past 1/3/6 months). -
Justification: This a manger-restricted function. Managers should have the ability to view the summary of essential statistics to get an understanding of how well the restaurant is performing. This information should not be visible in
MainWindowas permission is required to viewsummary. Moreover, it may be too troublesome for managers to type anotherlistcommand to get back to viewMemberListPanelafter viewingsummary. Hence, a pop-up window is a good choice forsummary. -
Highlights: This feature requires an understanding on full stack integration. User needs to log-in as a manager first before it can perform view
summaryaction in ezFoodie.SummaryWindowis a new pop-up window and hence it should be a separate stage in JavaFX.ModelandCommandResultare changed according to include a boolean value, indicating whetherSummaryWindowshould be displayed or hidden.
-
- Enhancements to existing features:
- Updated the
helpfeature to abstractHelpBoxfromHelpWindowfor further abstraction(OOP). #200 - Updated the
helpfeature for a prettier GUI ofHelpWindowby modifying layouts, fonts and colors used. #200 - Updated the
summaryfeature to abstractSummaryBoxfromSummaryWindowfor further abstraction(OOP). #200 - Updated the
ReservationPanelinsummaryfeature to sort the reservations of a specific member in correct order #200 - Updated the
MainWindowlayout for a prettier GUI. #200
- Updated the
- Project management:
- Maintained the issues, milestones and projects
- Managed releases
v1.2.1,v1.3,v1.4(releases), and largely contributed to wrap-up ofv1.3before the project demo and pitch.
- Documentation:
- Community: