- clone this repo
- run 'npm link' in the repo gain the bin command of 'tasky'
- Run 'tasky init' first, otherwise the app will throw an error, this will create a .tasky.json and .tasky_config.json file in the directory you run this command in.
- Run 'tasky help' to see a list of commands
- Commands are of flavor: tasky 'core command' 'id or string', though core command and id/string do not need to be in quotes or parentheses
- All tasks are local to the folder you ran 'taksy init' in.
- 'tasky' -> with no arguments, lists all tasks
- 'tasky add first task' -> will create a task with a description of 'first task'
- 'tasky show complete' -> will list all completed tasks
- 'tasky show incomplete' -> will list all incomplete tasks
- 'tasky complete 1' -> will toggle completed status of task with id of 1, change out 1 for whatever id you want to toggle status of.
- variable names in snake_case
- function names in camelCase
- the api.js file is a core file that manages reading and writing the .json files
- commands.js are the functions called from the command line, these functions should loosely wrap the functionality of api.js functions, and provide things like context and printing of tasks.
- if you're adding a feature, first write the proper function in api.js that will manipulate/fetch/delete the task you want, then write a wrapper function in commands.js that will let the user initiate the command, and provide logging so they know if the task was done
- tasky doesn't delete tasks right now, I think that's a perfect thing to implement on a pairing session :-)
- testing should move to Jasmine and not mutate the state of the task list, this could also be a good one to implement in pairing
- tasky should also update task descriptions, but this might be a pretty involved fix, since it would alter how we accept user arguments
- On that note, overhall user arguments to accept things like flags and make it more like other CLI tools
- add tags to tasks, so they can have tags like 'development', or 'personal', that way you could run "tasky show -tag=personal" to a see a list of all tasks tagged 'personal'
- 'tasky remind' would be a fun task to implement, and it could remind you to do tasks after a specified unit of time, there could also be a -g option that reminds you on any open command lines
- 'tasky update', which would check for an updated repo and pull down if there is one
- and we could much much more!