Project: TeachWhat!

TeachWhat! is a desktop address book application used for private tutors in managing their class. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 10 kLoC.

Given below are my contributions to the project.

Code contributed

Click here for a summary of code contributed by me!

Enhancements implemented

  1. Implemented a feature allowing users to add temporary lessons (pull-request #61), which includes
    • creating a UI representation of a lesson
    • creating the relevant models for a lesson and the abstraction of a list of lessons
    • adding logic to handle the parsing of the command
  2. Added logic to check for any conflicts between temporary lessons (pull-request #57)
    • What it does: Prevents the user from adding a lesson that clashes with an existing one.
  3. Implemented a feature that refreshes the UI to display a list of conflicting lessons (pull-request #144)
    • What it does: When the user tries to add a lesson that conflict with some existing lesson(s), the lesson list on the UI will be refreshed to show a list of such conflicting lessons.
  4. Implemented a feature to search for lessons by name and/or subject (pull-request #136)
  5. Updated a feature to search for students by name and/or tags (pull-request #141)
  6. Added persistence for lessons added (pull-request #75)

Contributions to the UG

  1. Contributed to the UG for addlesson command (pull-request #136)
    • how TeachWhat! would inform the user if the lesson added is conflicting with existing ones and what he/she can do.
  2. Added a section on the clear command (pull-request#236)
  3. Fixed typos in the findlessons and findstudents command (pull-request#235)

Contributions to the DG

  1. Added use-cases for the main user-stories, specifying the actions a user would perform to achieve the intended outcome. (pull-request #64)
  2. Added class-diagrams for the Model component, along with a brief description of the key classes and associations between them
  3. Added sequence-diagrams that explain how the addlesson command is implemented.
  4. Added instructions on how to test the saving of data in TeachWhat! (pull-request #265)

Contributions to team-based tasks

  1. Set up the team’s GitHub repository
  2. Set up code-coverage tracking on CodeCov
  3. Set up and updated the Index page of the project’s website, including
    • changing the header to TeachWhat!
    • updating the links to the Java-CI and CodeCov status-banners
    • updating the link to the project’s GitHub repository
  4. Added issues and corresponding labels for features to be implemented in Milestone v1.2

Review/mentoring contributions

  1. Helped a teammate fix a bug in the UI in pull-request #68.
  2. Occasionally fixed minor merge-conflicts encountered while merging pull-requests from teammates.
  3. Suggested the use of FXCollections.sort() to fix a bug with sorting lessons by date in the UI.
  4. Fixed styling of class-diagram for the Logic component in pull-request #261

Contributions beyond the project team

  1. Provided an alternative solution to an issue faced by another student in the iP.