Yu Jiaxiang's Project Portfolio Page
Project: SOChedule
Overview
SOChedule is a one-stop solution for managing tasks and events, optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI).
Summary of contributions
Given below are my contributions to the project.
Features-related contributions
- New Feature 1: Mark one or multiple tasks as done,
done_task
.- What it does: It allows the user to mark one or more tasks as completed at a time.
If the users need, they can use
undone_task
to mark the tasks as uncompleted afterwards. - Justification: Since our product aims to help users manager their tasks and events. One of the most common needs for the users is to mark the tasks as completed. Very often, they need to do so for more than 1 tasks. As a result, this new feature improves the product significantly as it provides a convenient and efficient way for users to do so with one single command.
- Highlights: This feature acts as one of the most fundamental and important functions in our products. The implementation too was challenging as it required changes to the Model, UI and Logic component of the application. In-depth analysis of these components are needed.
- What it does: It allows the user to mark one or more tasks as completed at a time.
If the users need, they can use
-
New Feature 2: Mark a completed task as uncompleted,
undone_task
.- What it does: It allows the user to mark a completed task as uncompleted.
If the users need, they can use
done_task
to mark the task as completed afterwards. - Justification: Occasionally, users may realize that they made a mistake in completing a task, or certain parts of a completed task is not finished yet. Thus, they may have the need to uncomplete a task rather than deleting it and add the same task again. As a result, this new feature provides a convenient and efficient way to meet our users’ potential needs.
- What it does: It allows the user to mark a completed task as uncompleted.
If the users need, they can use
-
New Feature 3: Find tasks and events before or on the given date,
find_schedule
.- What it does: Given a date, it returns users uncompleted tasks that are due before or on the specified date and events that are ongoing given the specified date.
- Justification: Very often, users may need to know the tasks they have not completed at a specific date. Also, they may wish to know the events happening at this date. Together, this formed a schedule of tasks to complete and events they are involved given a specific date. This new feature acts as a helpful shortcut function that finds the tasks and events that may interest the users the most. This helps to make our product more convenient and efficient to use.
- Enhancements to existing features:
- Enhance the function of editing an existing task,
Edit task
.-
What it does: Allows users to edit the details of the task at the specified index and updates its respective values with the supplied values. Further restrictions are added to disallow users from editing a completed task. However, users are allowed to edit an overdue task.
-
Justification: In-depth analysis of design alternatives are needed when implementing this command. For overdue tasks, we believe that users may need to edit an overdue task at very frequent occasions. For example, users may wish to extend the deadline of an overdue task, or increasing its priority to remind themselves that this task needs more attention. Thus, we allow overdue tasks to be edited.
-
- Contributed to the transition of previous AddressBook3 codebase to current needs, mainly about Logic (Pull requests #87, #89, #90, #118)
- Enhance the function of editing an existing task,
- Testing:
- Created and developed tests for
done_task
,undone_task
,find_schedule
commands and their parsers. - Also, helped to develop tests for
Logic
component, such asSocheduleParserUtil
. - One of the PRs significantly improved the testing coverage by
5.66%
, #344.
- Created and developed tests for
Other contributions
- Code contributed: RepoSense link
- Documentation:
- User Guide:
- Explained the use and constraints on
edit_task
,done_task
,undone_task
andfind_schedule
commands. - Updated command summary and added visual illustrations to the relevant commands.
- Explained the use and constraints on
- Developer Guide:
- Updated and explained the
Model
component. Created the class diagrams forModel
,Task
andEvent
. Explained the design considerations for comparing same tasks and events and setting maximum length toName
,Tag
andCategory
. - Explained the implementation details and design considerations for
done_task
,undone_task
,edit_task
andfind_schedule
. Created sequence diagrams for sample usages ofdone_task
,undone_task
,edit_task
andfind_schedule
Created an activity diagram forundone_task
command. - Added use cases and manual testing cases for
done_task
,undone_task
,edit_task
andfind_schedule
. - Contributed to the effort section. Summarised the highlights of the product, and explain the efforts the team in developing the product.
- Updated and explained the
- User Guide:
- Team-related contributions:
- Community: