Liu Muchen's Project Portfolio Page
Project: Trackr
Trackr is a desktop tracking application used to keep track of order, menu, suppliers and tasks. 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: RepoSense link
- All reused code are adapted from the AB3 code base (both functional and test code).
- The code could be refractored out to be a more standard format for repetitive use in our project (i.e. Modifying
UniquePersonList
toUniqueItemList
). - The code could be adapted to fit the different models that we have. (i.e. Modifying
Person
to be suitable forTask
)
- The code could be refractored out to be a more standard format for repetitive use in our project (i.e. Modifying
- Contributions to code base:
- Enabled assertions in gradle. #156
- Updated link in help command. #80
- Completed
find
anddelete
command for task, together with the respective descriptor and predicate. #98- Justification: Allows the user to be able to find tasks by multiple fields instead of only the name.
- Highlights: Was used to make the predicate and command for find command for order.
- Credit: Code is adapted from AddressBook-Level3 created by SE-EDU initiative
- Completed
clear
command for task. #102- Justification: Allows the user to be able to delete all tasks in one command.
- Credit: Code is adapted from AddressBook-Level3 created by SE-EDU initiative
- Refactored models and commands, together with abstracting out certain components. #138, #139, #187
- Justification: There were a lot of repeated code for commands (such as
add
,edit
anddelete
) for each model (such asSupplier
andTask
) and . Hence, this would reduce duplicate code for similar functionality just for different models.
- Justification: There were a lot of repeated code for commands (such as
- Abstracted out common models (such as
Name
andDeadline
). #138- Justification: There are repeated use of similar classes with the same functionality. Hence, this reduces duplicate code.
- Add in missing test cases. #283
- Justification: Improve test coverage
- Contributions to the User Guide:
- Drafted initial documentation for
tab
,delete_task
,delete_supplier
,find_task
,find_supplier
,edit_task
. #47 - Drafted initial documentation for
add_supplier
,edit_supplier
. #72 - Drafted initial documentation for
list_supplier
,list_order
,list_task
,list_item
,clear_supplier
,clear_order
,clear_task
,clear_item
,find_order
. #198 - Overhaul of the structure of how the User Guide is designed and implemented. #267
- Added in figures and tips to allow for better user experience. #267
- Fix formatting and informational errors in the entire User Guide. #267
- Drafted initial documentation for
- Contributions to the Developer Guide:
- Added UML diagrams and wrote the content for
Model
,Item
,Person-Supplier-Customer
,Task
andFindXYZCommand
. #150 - Updated diagrams to svg for better readability and quality, together with labelling of the diagrams. #157, #166
- Updated target user profile, user stories and use cases. #166
- Added manual test cases. #294
- Added UML diagrams and wrote the content for
- Review/Mentoring contributions:
- Provided recommendations on how to implement respective features.
- Help teammates with issues with their code base.
- Project management:
- Initialised GitHub Project, issues tracking and flow of PRs.
- Lead weekly meetings and work delegation.
- Keep track of datelines and give timely reminders.
- Community:
- Tools:
- Java 11, JavaFX, Grade, JUnit