Wei Yutong's Project Portfolio Page
Project: Pawbook
Pawbook is a desktop application for dog school managers to facilitate their bookkeeping of puppies and dogs in the school, optimized for use via a Command Line Interface (CLI) which caters to fast-typers who prefer to use a keyboard. You can navigate the application with ease and execute instructions by typing text-based commands in the command box provided.
Given below are my contributions to the project.
- New Feature: Enrol Command
- Implemented the Enrol Command that allows users to enrol specified dogs into specified programs using the respective Dog IDs and Program IDs.
- In the process, I implemented
EnrolCommand
,ProgramRegistrationCommand
andEnrolDropCommandParser
. - After my teammate Shaelyn implemented
DropCommand
, we realized that there were a lot of overlaps betweenEnrolCommand
andDropCommand
, hence I abstracted out the common parts intoProgramRegistrationCommand
to improve code quality by reducing duplicate code. - Adds Dog IDs into the respective Programs, identifies whether dogs were already previously enrolled.
- Supports batch enrolment, i.e. enrolling one dog into multiple programs and multiple dogs into one program.
- Code Refactoring: Renamed
Person
toOwner
on a project wide scale- This kicked off our feature where we support multiple entities instead of just storing
Person
as the only one. - In the process, I also modified the argument parser to accept a second keyword to support commands like
add owner
anddelete program
etc. This is a highlight of our project as we maximize the efficiency of our code by extending the base classes ofAddCommand
andDeleteCommand
for each of the 3 entities, and parse the second keyword to identify the specific entity.
- This kicked off our feature where we support multiple entities instead of just storing
- Code Testing *: Contributed significantly to testing
- Wrote a significant amount of test cases throughout the project.
- Wrote multiple test cases in the logic section, such as
AddDogCommandTest
,DeleteDogCommandTest
,EnrolCommandTest
and their respective parser tests, as well asParserUtilTest
andDropParserTest
. - Added testutil for
DogBuilder
,DogUtil
andTypicalEntities
, which allowed the testing of dog related commands to begin. - Added
ProgramTest
andSessionTest
under model.
- Enhancements to existing features: Help Command
- Made minor changes to suit
HelpCommand
for Pawbook.
- Made minor changes to suit
-
Code contributed: RepoSense link
- Project management:
- Assigned issues to team members.
- Checked tP dashboard regularly to ensure we were on track.
- Took notes for team meetings.
- Enhancements to existing features: Help Command
- Updated the existing
HelpCommand
to show our user guide link, as well as included an informative screenshot of command instructions.
- Updated the existing
- Documentation:
- User Guide:
- Contributed significantly to Enrol Command and Help Command, and edited other commands to ensure cohesiveness.
-
Improved the introduction of the user guide.
- Developer Guide:
- Completed Enrol Command, List Command and Help Command, and their respective activity diagrams and sequence diagrams.
- Added test cases for Enrol and Drop command for manual testing.
- Contributed to user stories.
- Community:
- Reviewed and merged pull requests of other teammates.
- Reported bugs and provided suggestions to other teams in the class.