Toh Zhen Yu, Nicholas's Project Portfolio Page
Project: HairStyleX
HairstyleX helps managers for budding neighborhood hair salons to manage clients, hairdressers, and appointments. It is optimized for CLI users so that frequent tasks can be done faster by typing in commands. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 20 kLoC.
Given below are my contributions to the project.
Summary of Contributions
Code contributed
Access my RepoSense link to view the code that I have contributed.
Enhancements implemented
- Create Appointment and UniqueAppointmentList class: Designed and created
Appointment
andUniqueAppointmentList
classes to be used in HairStyleX (Pull request #89, #93, #97).- What it does: Defines the blueprint and rules of creating appointments in HairStyleX.
- Justification: These classes are fundamental to the entire project, since they define an interaction between a client and hairdresser, and other attributes an appointment should have.
- Highlights:
- Careful consideration of good OOP design was made when creating these classes. The Appointment class was made to be immutable; encapsulating classes for various attributes such as
AppointmentDate
,AppointmentTime
, andAppointmentStatus
were created.
- Careful consideration of good OOP design was made when creating these classes. The Appointment class was made to be immutable; encapsulating classes for various attributes such as
-
Testing for Client class: Created tests for
Client
class; created testing utilities such asClientBuilder
,TypicalClients
(Pull requests #131, #297). - Refactor Gender representation from String to Enum: Changed the representation of gender from using
String
toEnum
(Pull request #159).- The enhancement also included a process to convert the gender to a
String
representation for display purposes.
- The enhancement also included a process to convert the gender to a
-
Added feature to prevent clashing appointments: Added checks to the “add appointment” process such that no client or hairdresser can be involved in simultaneous appointments (Pull requests #178, #198, #301).
- Testing for Appointment class: Created tests for
Appointment
class, including extensive testing for the clash-avoidance feature (Pull requests #210, #322, #331).
Contributions to the User Guide
- Responsible for the section on appointments.
- Provided a detailed guide supplemented with screenshots and examples for relevant commands including
add_appt
,edit_appt
,delete_appt
,filter_appt
.
Contributions to the Developer Guide
- Responsible for the section on implementation of the appointment feature.
- Added a detailed sequence diagram representing the process involved in validating and executing an “add appointment” command.
- Proposed future improvements which improve the runtime performance of HairStyleX.
- Contributed the appendix section on effort.
Contributions to the team-based tasks
- Maintained the majority of issue trackers and projects.
Review/mentoring contributions
-
Contributed to documentation for other teammates and fixed typos .
Contributions beyond the project team
- Reported 13 bugs in group T-17-3’s tP during mock PE.