Yeap Yi Sheng James's Project Portfolio Page
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
- 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
- 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.
- 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.
- Implemented a feature to search for lessons by name and/or subject (pull-request #136)
- Updated a feature to search for students by name and/or tags (pull-request #141)
- Added persistence for lessons added (pull-request #75)
Contributions to the UG
- 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.
- how
- Added a section on the
clear
command (pull-request#236) - Fixed typos in the
findlessons
andfindstudents
command (pull-request#235)
Contributions to the DG
- Added use-cases for the main user-stories, specifying the actions a user would perform to achieve the intended outcome. (pull-request #64)
- Added class-diagrams for the
Model
component, along with a brief description of the key classes and associations between them - Added sequence-diagrams that explain how the
addlesson
command is implemented. - Added instructions on how to test the saving of data in TeachWhat! (pull-request #265)
Contributions to team-based tasks
- Set up the team’s GitHub repository
- Set up code-coverage tracking on CodeCov
- 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
- changing the header to
- Added issues and corresponding labels for features to be implemented in Milestone v1.2
Review/mentoring contributions
- Helped a teammate fix a bug in the UI in pull-request #68.
- Occasionally fixed minor merge-conflicts encountered while merging pull-requests from teammates.
- Suggested the use of
FXCollections.sort()
to fix a bug with sorting lessons by date in the UI. - Fixed styling of class-diagram for the Logic component in pull-request #261
Contributions beyond the project team
- Provided an alternative solution to an issue faced by another student in the iP.