Nathaniel Lukas's Project Portfolio Page
Project: Salesy
Salesy is a desktop program that helps food vendors in NUS manage details of their clients and suppliers. It is optimised for CLI users so that tasks can be done faster by typing in commands. 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.
- New Feature:
DeleteTaskCommand
(Pull Request #102)
- This command deletes a
Task
from Salesy. - Added the
DeleteTaskCommandParser
class to parse the user input for the creation ofDeleteTaskCommand
. - Added testcase for
DeleteTaskCommand
andDeleteTaskCommandParser
(Pull Request #124)
UpdateTaskCommand
(Pull Request #107)- This command updates a
Task
detail in Salesy on a specifiedIndex
according to the specified description, deadline, and tags. - Used
UpdateTaskDescriptor
to represent updates done on aTask
. - Added the
UpdateTaskCommandParser
class to parse the user input for the creation ofUpdateTaskCommand
. - Added testcase for
UpdateTaskCommand
andUpdateTaskCommandParser
(Pull Request #124
- This command updates a
- GUI
Button
to increase/decrease supply item andTextField
to specify the amount (Pull Request #150)- Implemented buttons in the GUI to increase and decrease supply item count by the specified amount.
- Implemented text field in the GUI to specify the amount.
- Modified GUI, and also SupplyItem to accommodate this by saving the specified amount.
- Created handler method to handle increase/decrease of supply item during click events.
-
Code contributed: RepoSense link
- Project management:
- Reviewed PR thoroughly to ensure that all bugs are caught before merge and all features work as documented.
- Periodically checked the inner working of components and how they interact with each other to catch any possibility of unintended behavior or possible improvement.
- Ensure correctness of Javadoc for created methods.
- Contribution to team-based Tasks
- to be added soon
- Enhancements to existing features:
- Improved index management for
Task
andSupplyItem
inModelManager
class to work according to the functionality ofFilteredList
(Pull Request #150). - Added more method in
ModelManager
class for more functionality in processing the data (Pull Request #102). - Put
requireNonNull
in some methods where it has previously not been used and could cause problems (Pull Request #124). - Used
FXCollections.unmodifiableObservableList
in lists that are not supposed to be modified, to ensure immutability of certain data (Pull Request #124). - Created tests for
Task
andTaskList
class (Pull Request #124). - Added warning log if inventory data can not be saved (Pull Request #151).
- Improved index management for
- Documentation:
- User Guide:
- to be added soon
- Developer Guide:
- to be added soon
- User Guide:
- Review/Mentoring contributions: