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 and UniqueAppointmentList 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, and AppointmentStatus were created.
  • Testing for Client class: Created tests for Client class; created testing utilities such as ClientBuilder, TypicalClients (Pull requests #131, #297).

  • Refactor Gender representation from String to Enum: Changed the representation of gender from using String to Enum (Pull request #159).
    • The enhancement also included a process to convert the gender to a String representation for display purposes.
  • 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

  • Reviewed pull requests including #55, #85, #161.

  • Contributed to documentation for other teammates and fixed typos .

    • Through pull requests including #286, #305.

    • Through informal communication channels such as Telegram.

Contributions beyond the project team