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
add
Transaction
byMember ID
#93, #90, #73.-
What it does: Allows the staff and manager to
add
Transaction
to a specified member, identified by hisMember ID
. -
Justification: The staff and manager should be able to add a new
Tranasction
to 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
AddMember
command andAddTransaction
command share the same command wordadd
. In the first implementation,AddMember
command andAddTransaction
command both inherit fromAddCommand
, and the same for twoParser
classes of these two commands.AddCommand
are parsed byAddCommandPrefixParser
first to distinguish between two commands before any further actions. This obeys the original code structure.
-
-
New Feature: Added the ability to
show
Member
details byMember ID
in a separate pop-up window #102 (The Java class is namedViewCommand
, while the command is namedshow
to fit the command naming in our UG.).-
What it does: Allows the staff and manager to
show
a specificMember
’s details that are not shown in main window, such asTransaction
andReservation
. The member is identified by hisMember ID
. -
Justification: It is too long and tedious if all information is shown in
MainWindow
and is not user-friendly. Moreover, viewing aMember
’s details is most probably a one time action in daily restaurant routine. Hence,MainWindow
should remain open, and a separate pop-up window would be a good choice for staff and managers toshow
a specificMember
’sTransaction
andReservation
details when they want to. -
Highlights: This feature requires an understanding on full stack integration and object references in Java.
MemberViewWindow
is a new pop-up window and hence it should be a separate stage in JavaFX.Model
andCommandResult
are changed according to include a boolean value, indicating whetherMemberViewWindow
should be displayed or hidden. Since the feature uses the samefilterMemberList
method asFindCommand
due to abstraction and encapsulation, a deep copy ofupdatedMemberList
is used forMemberViewWindow
usage only, so that when the user asks for a specificMember
’s details, the deep copy is updated instead and the copiedupdatedMemberList
shown inMemberViewWindow
will not affect theMemberListPanel
(which uses the originalupdatedMemberList
and refers to all members stored in ezFoodie) shown inMainWindow
.
-
-
New Feature: Added the ability to view
summary
of data stored in ezFoodie in a separate pop-up window. #111-
What it does: Allows managers to view
summary
of totalMember
existing in ezFoodie as well as time-series statistics ofTransaction
data (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
MainWindow
as permission is required to viewsummary
. Moreover, it may be too troublesome for managers to type anotherlist
command to get back to viewMemberListPanel
after 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
summary
action in ezFoodie.SummaryWindow
is a new pop-up window and hence it should be a separate stage in JavaFX.Model
andCommandResult
are changed according to include a boolean value, indicating whetherSummaryWindow
should be displayed or hidden.
-
- Enhancements to existing features:
- Updated the
help
feature to abstractHelpBox
fromHelpWindow
for further abstraction(OOP). #200 - Updated the
help
feature for a prettier GUI ofHelpWindow
by modifying layouts, fonts and colors used. #200 - Updated the
summary
feature to abstractSummaryBox
fromSummaryWindow
for further abstraction(OOP). #200 - Updated the
ReservationPanel
insummary
feature to sort the reservations of a specific member in correct order #200 - Updated the
MainWindow
layout 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.3
before the project demo and pitch.
- Documentation:
- Community: