Role: Developer
Responsibilities: Developing, Testing
Overview
Student Planner is a all-in-one desktop manager application that allows students to manage their contacts, tasks, events and expenses. 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.
Summary of contributions
-
Main feature implemented: Added various commands to enable users to manage Task Book
-
What it does: allows user to better manage their tasks by providing the following commands:
-
AddTaskCommand
: user is able to create new task. -
ListTaskCommand
: user is able to access tasks by priority or deadlines. -
UpdateTaskCommand
: user is able to update tasks. -
DeleteTaskCommand
: user is able to delete tasks
-
-
Justification: This feature improves the product significantly as a user can track and manage the tasks easily.
-
-
Code contributed: [Overview]
Contributions to the User Guide
Given below are sections I contributed to the User Guide. They showcase my ability to write documentation targeting end-users. |
Adding a task: task
Adds a task to the schedule planner
Format: task n/NAME b/BODY s/START_DATETIME e/END_DATETIME [t/TAG]… p/PRIORITY
A task can have any number of tags (including 0). |
By default, the tasks are listed by descending order of priority i.e. HIGH, MED, LOW. |
Examples:
-
task n/Submit Assignment b/CG2027 Assign2 s/18/10 e/25/10_14:00 p/HIGH t/Hardcopy
-
task n/Submit Quiz b/MA1508E Quzi11 s/29/10_00:00 e/4/11_22:00 p/MED t/IVLE
Listing all tasks : listTask
Shows a list of all tasks from task book in the student planner according to the deadline (end DateTime).
Format: listTask
Editing a task : updateTask
Update an existing task in the student planner.
Format: updateTask INDEX [n/NAME] [b/BODY] [s/START_DATETIME] [e/END_DATETIME] [t/TAG]… [p/PRIORITY]
Examples:
-
updateTask 1 b/Need two pens
Edits the body of the 1st task to beNeed two pens
. -
updateTask 2 t/
Edits the 2nd task by clearing all existing tags.
Deleting a task : deleteTask
Deletes the specified task from the task book in the student planner.
Format: deleteTask INDEX
Examples:
-
listTask
deleteTask 2
Deletes the 2nd task from the task book.
Contributions to the Developer Guide
Given below are sections I contributed to the Developer Guide. They showcase my ability to write technical documentation and the technical depth of my contributions to the project. |
Tasks (CRUD) feature
Current Implementation
The tasks' CRUD mechanism is facilitated by AddTaskCommand
,listTaskCommand
,findTaskCommand
,UpdateTaskCommand
,DeleteTaskCommand
. It extends Command
and implement the following operation:
-
Command#AddTaskCommand()
— Create a new task to Student Planner -
Command#ListTaskCommand()
— View existing task list -
Command#UpdateTaskCommand()
— Update existing tasks from history -
Command#DeleteTaskCommand()
— Remove existing tasks from history
These operations are exposed in the Model
interface as Model#hasTask()
,Model#addTask()
,Model#listTask()
,Model#updateTask()
and Model#deleteTask()
respectively.
Given below is an example usage scenario and how the CRUD mechanism behaves at each step.
Step 1. The user launches the application for the first time. The Student Planner will be initialized with the initial task book state.
Step 2. The user executes task t/submission …
command to add a new submission task to the student planner. The task
command calls Model#addTask()
which returns a task to be shown in the task list.
Step 3. The user then decides to executes updateTask 2 …
command to update an existing task. The updateTask
command calls Model#updateTask()
, causing a modified task to be saved.
The following sequence diagram shows how the updateTask 2 e/13/11_22:59
operation works:
Step 4. The user executes listTask
command to view the existing task list, which calls Model#listTask()
. The listTask
command does not modify the task book, the taskBookStateList remains unchanged.
Step 5. The user now decides that the task added was a mistake, and decides to remove that task by executing the deleteTask 6
command to delete the 6th task in the task list of the student planner. The deleteTask
command will call Model#deleteTask()
, causing the modified state of the task book after the deleteTask 6
command executes to be saved in the taskBookStateList.
The following sequence diagram shows how the deleteTask 6 operation works:
Creating a task
-
Creating a new task to the task book
-
Prerequisites: The task must not already exist in student planner
-
Test case:
task n/Submission b/CG2027 Assign3 s/17/10_17:00 e/24/10_14:00 p/med
Expected: A new task is added to the task book panel, and a success message will be shown in the result display panel. -
Test case (If a task with name of
submission
and body ofCG2027 Assign3
is already existed in student planner):task n/Submission b/CG2027 Assign3 s/17/10_17:00 e/24/10_14:00 p/med
Expected: No task is added, and a duplicate task message is shown in the result display panel. -
Test case:
task n/Submission b/CG2027 Assign3 s/17/10 e/24/10 p/med
Expected: No task is added. Error details shown in the result display panel.
-
Listing all tasks
-
Listing all the tasks in the student planner.
-
Prerequisites: User has entered some tasks. Multiple tasks in the list.
-
Test case:
listTask
Expected: All tasks are listed according to their deadline (in ascending order) in the task book panel.
-
Updating an existing task
-
Updating the name/body of a task
-
Prerequisites: User has entered some tasks. Multiple tasks in the list.
-
Test case:
updateTask 1 n/Submission b/CG2027 Assign3
Expected: The body/detail of first task is updated in student planner, and a success message is shown in the result display panel. -
Test case (If a task with name of
submission
and body ofCG2027 Assign3
is already existed in student planner):updateTask 1 n/Submission b/CG2027 Assign3
Expected: No task is updated, and a duplicate task message is shown in the result display panel. -
Test case:`updateTask 1 n/`
Expected: No task is updated. Error details of invalid command is shown in the result display panel. -
Other incorrect updateTask commands to try:
updateTask
,updateTask 1 b/
,updateTask x …
(where x is larger than the list size)
Expected: Similar to previous.
-
-
Updating the startDateTime or endDateTime of a task
-
Prerequisites: User has entered some tasks. Multiple tasks in the list.
-
Test case:
updateTask 1 e/30/11_21:59
Expected: The endDateTime of first task is updated in the student planner, and a success message is shown in the result display panel. -
Test case:
updateTask 1 e/30/11
Expected: No task is updated. Error detail of invalid endDateTime format is shown in the result display panel. -
Test case:
updateTask 1 e/32/11_21:59
Expected: No task is updated. Error detail of invalid endDateTime format is shown in the result display panel. -
Other incorrect updateTask commands to try:
updateTask 1 s/
,updateTask 1 e/
,updateTask x …
(where x is larger than the list size)
Expected: No task is updated. Error details of invalid command is shown in the result display panel.
-
-
Updating the priority of a task
-
Prerequisites: User has entered some tasks. Multiple tasks in the list.
-
Test case:
updateTask 1 p/low
Expected: The priority if first task is updated tolow
in the student planner. A success message is shown in the result display panel. -
Test case:
updateTask 1 p/h
Expected: No task is updated. Error detail of invalid priority format is shown in the result display panel. -
Test case:
updateTask 1 p/
Expected: No task is updated. Error details shown in the result display panel.
-
-
Updating the tags of a task
-
Prerequisites: User has entered some tasks. Multiple tasks in the list.
-
Test case:
updateTask 1 t/hardcopy
Expected: The tag field of first task is updated in the student planner. A success message is shown in the result display panel. -
Test case:
updateTask 1 t/
Expected: The tag field of first task is cleared in the student planner. A success message is shown in the result display panel.
-
Deleting a task
-
Deleting a task while all tasks are listed
-
Prerequisites: User has entered some tasks. Multiple tasks in the list.
-
Test case:
deleteTask 1
Expected: First task is deleted from the list, and a success message is shown in the result display panel. Task list is updated. -
Test case:
deleteTask 0
Expected: No task is deleted. Error details shown in the result display panel. Task list remains the same. -
Test case (If 5 tasks exist in the student planner, i.e. task list size is 5 ):
deleteTask 6
Expected: No task is deleted. Error details shown in the result display panel. Task list remains the same. -
Other incorrect deleteTask commands to try:
deleteTask
,deleteTask -1
Expected: Similar to previous.
-