-
Notifications
You must be signed in to change notification settings - Fork 0
Task Schema
#Task Schema
##Individual Task:
('task
('id <id>)
('description <description>)
('deadline <deadline>)
('duration <duration>)
('dependencies <dependencies>))
###<id>
unique integer identifier for a given task
####Example
('id 22)###<description>
String description of a task
####Example
('description "This is not The Greatest Task in the World, no. This is
just a tribute...")###<duration>
String time representation that represents how long a given task is supposed to last
####Time Format
`"XXd-XXh-XXm"`XXd - how many days that you want a given task to last
XXh - how many hours that you want a given task to last
XXm - how many minutes that you want a given task to last
Each field must be an integer value, and all three fields must exist in the string.
"3d-00h-00m", "0003d-00h-00m", "0d-72h-00m", and
"00d-00h-4320m" all map to the same duration (3 days).
####Example
('duration "11d-22h-63m")This makes a task that will last 11 days, 22 hours, and 63 minutes.
###<deadline>
String time representation that represents the fixed moment in time that a task must be completed by.
####Time Format
"YYYY-MM-DD-HH-mm" (24 hr notation)
"YYYY" - The year field of the fixed time. Must be 4 digits long.
-"MM" - The month field of the fixed time. Must be 2 digit integers in the interval [1, 12].
-"DD" - The day field of the fixed time. Must be 2 digit integers in the interval [1, 31].
-"HH" - The hour portion of the fixed time. This is in 24 hour format. "HH" must be 2 digits long, and in the interval [1, 12].
-"mm" - The minute portion of the fixed time. "mm" must be 2 digits long, and "mm" must be in the interval [00, 59].
####Example
('deadline "1958-09-09-11-58")This creates a deadline for the task that is September 9th 1958, at 11:58 AM.
###<dependencies>
list of integer ids, possibly empty of the tasks that must be completed before this task can be started.
####Examples
('dependencies '())This task has no dependencies
('dependencies '(22, 44)Tasks 22 and 44 must be completed before this task can be
started.
##Schedule Options:
('options
('hours-per-day <hours-per-day>)
('time-per-task <time-per-task>)
('break-interval <break-interval>))###<hours-per-day>
7 element list with time elemements, representing the amount of hours that you want to work per day
####Example
("8h" "8h" "5h" "3h" "2h" "0h" "0h")This represents the following work schedule:
-
Monday: The user wants to work 8 hours.
-
Tuesday: The user wants to work 8 hours.
-
Wednesday: The user wants to work 5 hours.
-
Thursday: The user wants to work 3 hours.
-
Friday: The user wants to work 2h hours.
-
Saturday: The user wants to work no hours.
-
Sunday: The user wants to work no hours.
###<time-per-task>
String time representation of the maxmium amount of time per day that you want to spend doing a particular task.
####Time Format
"XXh-XXm"
XXh -how many hours that you want to spend on a given task per day
XXm - how many minutes that you want to spend on a given task per day
Each field must be an integer value, and both fields must exist in the string.
####Example
('time-per-task "03h-15m")This says that user wants to spend 3 hours and 15 minutes at most per day on any given task.
###<break-interval>
String time representation of how long of a break the user wants in between work chunks.
####Time Format
"XXm-every-XXh"
XXm - how many minutes of a break a user wants in between work
chunks
XXh - how long each work chunk should last
Each field must be an integer value, and both fields must exist in the string.
####Example
('break-interval "45m-every-09h")
This says that the user wants to take a 45 minute break after working a 9 hour work chunk.