Arkar's Portfolio Page
Project: Trackr
Trackr is a desktop 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
- Contribution to code base
- Initial refactoring of
Supplier
fromPerson
- Justification: This improves the product because the differentiation between
Supplier
andPerson
fits the use case of our product.
- Justification: This improves the product because the differentiation between
- Refactor
Order
to have a reference toMenuItem
- Justification: This association is needed as users should only be able to create orders from pre-existing
MenuItem
. - Highlight:
- Adapt
Storage
andJSON
files to supportMenuItem
nested withinOrder
- Generate total profits and sales from each order and all orders
- Profits and sales responsive to changes in
OrderQuantity
andOrderItem
- Rewrite relevant test cases for Order
- Adapt
- Justification: This association is needed as users should only be able to create orders from pre-existing
- Overhauls Ui
- Highlights:
- Refactor into packages
- Cosmetic changes using CSS
- Added tabbed views for different data
- Highlights:
- New feature:
TabCommand
that allows users to switch between tabs- Justification: Like most applications, users can use
CTRL + TAB
orARROW KEYS
to cycle through area of focus. This added feature allow users to skip tabs while using a verbose command. This also further optimises the product for CLI use. - Highlight: Used the
Observer / Observable
pattern with JavaFXSimpleIntegerProperty
to listen to changes in the selected tab index. This decouplesTabCommand
inLogic
fromUi
and enforces Law of Demeter. Some commands such aslist
/find
also snaps to relevant tab for better user experience.
- Justification: Like most applications, users can use
- Improve test coverage
- Initial refactoring of
- Review / Peer Help
- Helped teammates with debugging and test cases
- Documentation:
- User Guide:
- Drafted command syntax and examples
- Provided overall feedback #267
- Developer Guide:
- Updated UML diagram for
Ui
and its description - Added activity diagram for
DeleteCommand
- Updated user stories and use cases.
- Updated UML diagram for
- User Guide:
- Community:
- Tools:
- Java 11, JavaFx, Jekyll