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
Taskfrom Salesy. - Added the
DeleteTaskCommandParserclass to parse the user input for the creation ofDeleteTaskCommand. - Added testcase for
DeleteTaskCommandandDeleteTaskCommandParser(Pull Request #124)
UpdateTaskCommand(Pull Request #107)- This command updates a
Taskdetail in Salesy on a specifiedIndexaccording to the specified description, deadline, and tags. - Used
UpdateTaskDescriptorto represent updates done on aTask. - Added the
UpdateTaskCommandParserclass to parse the user input for the creation ofUpdateTaskCommand. - Added testcase for
UpdateTaskCommandandUpdateTaskCommandParser(Pull Request #124
- This command updates a
- GUI
Buttonto increase/decrease supply item andTextFieldto 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
TaskandSupplyIteminModelManagerclass to work according to the functionality ofFilteredList(Pull Request #150). - Added more method in
ModelManagerclass for more functionality in processing the data (Pull Request #102). - Put
requireNonNullin some methods where it has previously not been used and could cause problems (Pull Request #124). - Used
FXCollections.unmodifiableObservableListin lists that are not supposed to be modified, to ensure immutability of certain data (Pull Request #124). - Created tests for
TaskandTaskListclass (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: