PROJECT: Tasketch
Hello there~! :)
This is Jingchen from the Tasketch
project team. This project is under National University of Singapore, School of Computing’s module CS2113T and CS2101. My teammates and I aim to create a software which helps NUS students manage their time properly. This portfolio serves to document my work on Tasketch.
Overview
Tasketch
is a time management software aiming to help NUS students who need to manage their time by allocating time to daily tasks. More importantly, Tasketch
is optimized for those who prefer to use a desktop app and work with a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI).
Tasketch
is morphed from addressbook-level4
by 5 students, namely Cheah Zhi Kang, Jin Shibo, Li Zeyang, Wan Chunwei (my teammates) and Zhang Jingchen(me).
Summary of contributions
-
Main enhancement: Enhance visual feedback with timeline feature.
-
What it does: It arranges the tasks on a given day into a timeline according to their categories and display the timelines in parallel.
-
Justification: By visually showing the arranged timeline, this feature helps the user to better manage their tasks and decide on time allocation.
-
Highlights: Each category timeline will have their own color to be distinguished.
-
Credits: {Shibo’s idea is used on filtering the tasks according to date}
-
-
Other enhancement: Added command for changing calendar. Changed the find and history command that allows the user to easily locate a task and see history commands.
-
Code contributed: [Functional code] [Test code] {give links to collated code files}
-
Other contributions:
-
Project management:
-
The UI designer and the person in charge of group work coordination.
-
Managed releases
v1.0
-v1.4
(2 releases) on GitHub -
Helped in setting up issue trackers, set up Travis-CI and auto-update of project page.
-
-
Enhancements to existing features:
-
Documentation:
-
Updated UserGuide and DeveloperGuide. (available UserGuide DeveloperGuide)
-
Updated sample picture with sample data.(Sample UI)
-
-
Community:
-
Reviewed most of the Pull Request.
-
Some parts of the history feature I added was referenced by several other class mates.
-
My UI structure and design are referenced.
-
-
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. |
View calender & timeline
Set the calendar to desired month : month
Shows the desired month to the user. Noted that only previous month and next month will be shown.
e.g. Current month is April, then only March and May can be shown.
The feature for changing the background color of each day on the calendar will come in v2.0! |
Format:
-
month +
Changes the current calendar to next month. -
month -
Changes the current calendar to previous month. -
month
Show current month’s calendar.
Shows the timeline of a specific day to the user : timeline
timeline
command will arrange the tasks on one day to real timelines.
Noted that if there are multiple tasks at the same time under same category, the timeline will only display one task name and time period. e.g Academic task1: 12:00-14:00, Academic task2: 12:00-15:00 (in one day). The academic timeline will only show 12:00-15:00 is reserved.
-
timeline
Shows the timeline of today by default. -
timeline [DATE]
Shows the timeline of that date.
After adding or editing a task, user needs to retype timeline [DATE] to refresh the timeline.This implementation is to make sure this feature is not purely part of UI. |
Examples:
-
timeline
Shows the timeline for today. -
timeline 01-04-19
Shows the whole timeline for 1st April 2019.
Timeline will only show the tasks between 6:00am to 24:pm. Sleeping early is a good habit~ |
Searching tasks by keywords: find
/f
Finds tasks whose topic or description contain any of the given keywords.
Format: search KEYWORD [MORE_KEYWORDS] …
Examples:
-
find CS2113T
ReturnsCS2113T lecture
-
f Lecture
ReturnsCS2113T lecture
andCS3235 lecture
Deleting a task : delete
/d
Deletes the specified task from Tasketch.
Format: delete INDEX_NUMBER
Examples:
-
list
delete 1
Deletes the task with index number 1 in task list. -
find cs2113t
delete 1
Deletes the task with index number 1 in task list.
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. |
Effective Visualization feature
Current Implementation
There are mainly two parts in this features, calendar and timeline arrangement
These two parts will help the user better arrange their time usage by visualization of time.
-
There are currently two commands with parameters to help achieve this,
month
andtimeline
.-
Implementation for Calendar: Using
GridPane
to separate the whole calendar area into 35 grids.-
Each one of the 35 grids is filled with PaneNode which is defined as area for a day.
-
PaneNode extends AnchorPane.
-
-
-
Implementation for Timeline: Using JavaFx and segment each part of the browserPanel.
-
First, separate the whole
browserPanel
into 2 parts:upperPane
andtimelinePane
. -
Second, separate the
upperPane
intocalendarPane
andreminderPane
. -
The whole implementation of
timeline
is intimelinePane
using JavaFx. -
The overall structure is JavaFx VBox, which is a vertical arrangement structure.
-
Inside the VBox, there are key time points for interval of 2 hours. Then the timeline for each category.
-
Design Considerations
Aspect: How timeline executes
-
Alternative 1 (current choice): Delete current timeline area and re-render timeline.
-
Pros: Easy to implement. User has the freedom to choose which day to display.
-
Cons: May have performance issues in terms of execution and computation power.
-
-
Alternative 2: The timeline is auto-updated after each
add
oredit
command.-
Pros: More intuitive to use.
-
Cons: User lost the freedom to choose which day to display the timeline.
-
Aspect: Special Data structure to support timeline commands
-
Alternative 1 (current choice): Use a 2-D array to store of PreTask objects instead of using Task objects.
-
Pros: Saves memory since filtering requires a copy of task details.
-
Cons: Similar class is created.
-
-
Alternative 2: Use a 2-D array to store Task objects.
-
Pros: More intuitive and easy to implement since no new class is created.
-
Cons: Requires more memory and computation power.
-
PROJECT: PowerPointLabs
{Optionally, you may include other projects in your portfolio.}