Nikhil'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.
Summary of Contributions
Code contributed
Enhancements implemented
- Student Functionality
- Added support for optional prefixes in
Student
- What it does
- All prefixes except for
Name
andPhone
are optional.
- All prefixes except for
- Justification
- The user does not need to know the address or email of every student.
- (Pull requests #71)
- What it does
- Command Shortcuts
- What it does
- Provides support for shortcut command words.
- Justification
- This makes typing faster, instead of typing
addstudent
, the user can simply useas
.
- This makes typing faster, instead of typing
- (Pull requests #145)
- What it does
- 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)
- What it does
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.