Meant to be a voice-controlled task manager as a proof of concept for an AI personal assistant to be deployed on an AR headset.
Wit.ai now cannot be used, so this is deprecated.
Run with python3 todo.py
+ various commands (eg python3 todo.py add -t [TASKNAME]
or python3 todo.py add
).
Test with the unittest
modules. Eg, python3 task_class_test.py
will run the tests in that module.
- First, create the method/class you want to build, but have it return empty.
- Then add a test case that checks to see if the method does what you want it to do. If you're expanding an existing class, add a test case to the relevant unit test. If you're making a new class, add a dedicated class.
- Edit your method so that it passes the test. Do this in the simplest, most straightforward way possible.
- Optimize your method
- Repeat with additional functionality for the method or each new method.
- User can search for task by keywords
- Todolist can check if a task is similar to an existing one and let the user know it's already on the list or allow bumping it
- User can display tasks by various attributes (priority, due date, category)
- User can clear completed tasks to an archive
- User can add a task
- User can add a task with due date, priority, details, and title
- User can quick add a task with default values from the command line directly
- User can set an action that
todo do
will execute in the shell - Create and maintain arbitrary lists in various categories
- Update file system to handle Windows
- Add a config file for setting root directory, OS and tracking install
- Create an installation procedure that checks if the config file exists
- Display tasks by due date
- Display tasks by priority
- Search by...name
- Create config file for defaults
- Show/hide completed tasks by default
- Set default sorting
- Set location of db
- Auto-archive tasks when completed
- Basic add a task to a list
- Add a task with description, date, due date, priority
- Create a prompt
- Create a CLI one line command for this
- Implement category/lists
- Load the tasklist into memory in a meaningful way
- List existing tasks
- List existing tasks by some sorting
- Set priority for tasks
- Set due dates for tasks
- Set details for tasks
- Display tasks by category
We can start with something simple in Python that uses a text file, and then if we want to grow it later, we can.
The app could use a text file to store todos, which would be the simplest and most portable solution -> just move the text file and load the software and you're golden Or it could use a database, either SQL or Neo4j, or some combination, where it uses textfile as a backup but mainly interacts with a database that it sets up
I would like it to be a CLI, so I can manage todos from the keyboard.
I would at some point like to have it accessible remotely. So that there is a CLI app, but it also connects to a remote location as well. That might just be a matter of giving it a Git repo, and having it maintain synchronization with Github, which actually would be very tidy.
- C/C++/C#
- Python
- SQLite
- Combination of text and database