The graphical user interface for this program is in development. see it here

here is a list of functions to be used directly. those with a priority of 1 are the ones I think are most important and essential.
function name arguments description priority
writeTask object: { title, details, dueDate, tags } creates a task object and pushes it into the tasks array 1
showTable array, sortFn = sortTasksByStatus displays tasks in an organized table in the browser console 1
saveData saves user data to the browser's local storage 1
removeTasks ids, array removes the task of each id's corresponding task from an array of task objects and returns the removed tasks 1
getTasks ids, array returns a task object for each id's corresponding task from an array 1
markTasksAsCompleted ids, completed sets the isCompleted property to true(default) or false for each id's corresponding task 1
getTasksWithStatus num: ( -1 || 0 || 1 ), array returns an array of task objects with the status property value of -1, 0, or 1 1
sortTasksByStatus array returns an array sorted in the following order: overdue, pending, completed 1
getTasksWithText strings, array returns an array of task objects which include all the strings within the title, description, or tags 1
getTasksWithTags strings, array returns an array of task objects which contain every string as a tag 1
getTasksWithinDateRange dateProperty, dateRange, array returns an array of task objects in which a date property value falls within the date range 1
archiveTasks array moves array entries from tasks to records 1
getTasksWithNoDueDate array returns an array of tasks with no "due date" property 2
Task.prototype.require ids stores ids of tasks that should be completed prior to the selected task without duplicating pre-existing entries 2
sortTasksByTags strings, array returns an array sorted based on the amount of tags that match the strings 3
getTasksWithNoTags array returns an array of task objects which contain no tags 4

notes