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.

Summary of Contributions

Code contributed

tP Code Dashboard

Enhancements implemented

  • Student Functionality
    • What it does
      • Allows user to Add/Delete/Edit a Student.
    • (Pull requests #71 and #146)
  • Added support for optional prefixes in Student
    • What it does
      • All prefixes except for Name and Phone are optional.
    • Justification
      • The user does not need to know the address or email of every student.
    • (Pull requests #71)
  • Command Shortcuts
    • What it does
      • Provides support for shortcut command words.
    • Justification
      • This makes typing faster, instead of typing addstudent, the user can simply use as.
    • (Pull requests #145)
  • Help Page
    • What it does
      • Displays a table with the description, command word, command shortcut for each command.
      • A hyperlink to TeachWhat! user guide.
    • Justification
      • It makes it easier for the user to refer to command words and their functionality using the table instead of opening the user guide.
      • The user can simply click on the hyperlink to open it instead of copying it. This saves the user time.
    • (Pull requests #158)

Contributions to the UG

  • Created the initial format and draft of the user guide on our Team’s shared google docs.
  • Added the command shortcuts to user guide.
  • Updated the user guide to use consistent wording.

Contributions to the DG

  • Added functionality and use-cases for AddStudent command.
  • Added Sequence Diagram for AddStudent command.
  • Updated Logic Component section
  • Updated Architecture Sequence Diagram
  • Added testcase examples for deleting a student
  • Added Help feature and class diagram
  • Added Command Shortcuts

Contributions to team-based tasks

  • Created and assigned tasks to milestones 1.3 and 1.4
  • Created 1.3.1 release and uploaded its jar file

Review/mentoring contributions

  • Made multiple good suggestions when reviewing pull requests such as #92
  • Debated with james during a weekly meeting about how command shortcuts were to be implemented and justified my use of Fallthroughs over creating a list to hold all the command words for every command because we decided to not implement user specified keybinds.
  • Spotted bugs made that were not caught such as #249 and #73 and provided suggestions to fix them.