Ngan Ji Cheng - Project Portfolio Page
PROJECT: Amazing Task and Assignment System (ATAS)
Overview
ATAS is a cross platform Command Line Interface (CLI) program that allows you to track your assignments and events. ATAS is catered for students who want to maximise their productivity and cultivate effective time management habits through a desktop application.
Summary of Contributions
Major Enhancement: Implemented feature to edit tasks
- What it does:
- It allows the user to edit a chosen task from the list of tasks.
- The index of task that user edits does not change after editing.
- Justification:
- Improves usability of the tracking app as it allows users to edit any changes to their Assignments or Events.
- Users will not need to delete an Assignment or Event before adding a new Assignment or Event if there are any changes to details of the tasks.
- For events that are repeated, editing such events will keep the “repeating” indicator of the event.
- Highlights:
- This enhancement is especially useful in a tracking app where tasks details are dynamically changing. It allows for quick and hassle free changing of the details.
- Implementing the edit feature was difficult because a separate
Ui
prompt has to be implemented in the command to accept new user inputs. - Furthermore, due to implementation limitation of
AssignmentCommand
andEventCommand
feature, I could not use the existing implementations to have instances ofassignment
orevent
class. - Hence, within the
EditCommand
class, I have to implement methods that returnassignment
andevent
task types. - This was quite hard to implement as I had to understand what attributes the
asssignment
andevent
task types were to ensure that the user is able to edit the tasks’ attributes smoothly. - We discovered later that there is a bug when editing
repeat event
task types. Whenrepeat event
task types are edited, the event no longer stays as arepeat event
and reverts back to just being anevent
task type. This was fixed by adding checks to indicate whether task to be edited is arepeat event
and another method to preserve all therepeat event
attributes. - Refer to Pull Request #194 for bug fix.
- Another bug was also found when we tried to enter in a different task type when editing a task. i.e. Tried to edit an Assignment task to an event task and vice versa. The program shows a success message but it did not show up in the task list.
- I subsequently fixed the bug by disallowing users to edit a task type to a different type. #213
- Credits:
- Credit to the team for helping me to catch the bugs related to edit command.
Minor Enhancements:
- Implemented
list today
andlist command
methods to list tasks #31 - Implemented method to return
LocalDateTime
object of the Current Date #31 - Add skeleton code for TaskList class #25
- Wrote JavaDocs for several methods
Code Contributed: View on Reposense
Contributions to the User Guide:
- Wrote Section 1: Introduction of User Guide
- Wrote Section 2: Setting Up of User Guide
- Wrote Section 3.5 -3.7 of User Guide
- Wrote Section 4: Commands Summary of User Guide #99
Contributions to the Developer Guide:
- Wrote Secion 3.5. Edit Task Feature of Developer Guide #137
- Wrote Appendix F: Instructions for Manual Testing of Developer Guide #208
Contributions to Team-Based Tasks: