Tl;dr: a task management platform with different applications to suit your needs. Don't like long blocks of text? Skip to the screenshots or download instructions.
DoX (as in do <X>, where X is a task, but also pronounceable like “docks”) is a task management platform with a unique and readable data storage method. It aims to be an extensive framework, providing the tools to manage tasks with descriptions, priorities, due dates, automatic repeat and tags.
What sets DoX apart from other to-do list platforms is how tasks are stored away. Tasks are stored in a tasks.txt file in your home folder (~/DoX), and completed tasks in a done.txt file. Any task can be represented as a single line in the file – a series of words, phrases or commands, quoted if containing multiple words.
"Washing up" @today|17:00 !1 &daily #Home
~includes a longer description of the task.
!symbol sets a task's priority, a number between 0 (low) and 3 (high).
@denotes a due date and time for the task, which can be set relatively.
&defines a repetition rule. This can be a number of days before the task is due again, counting either from task completion, or from the previous due date.
#allows the addition of tags. A task can have any number of tags.
These files can be edited by hand to make batch changes, or import many tasks at once. DoX applications can then instantly respond and update to these changes.
The webapp provides easy import and export options from the desktop apps, and allows you to manage your tasks in the browser. Tasks are stored locally in your browser, with none of your information sent online. The app is also cached in the browser to allow full task management even without an internet connection.
The command-line application provides both a terminal command and a functional shell for managing tasks. Commands are designed to be simple but powerful. Use
add followed by a raw task string to instantly add it to your list. Show and filter the current list of tasks with
list, mark complete with
done, delete with
The tray icon provides quick task completion menus, shortcuts to listing and adding tasks, and shows notifications for tasks as they are due. The graphical interface provides a more simple and intuitive way to interact with your task lists, including sorting and filtering options.
The main DoX package is not itself an app; rather, a module for making an app with. It provides methods for loading and saving task files, and manipulating tasks in all the same ways as the apps currently in development.
At the moment, it is only available as a Python class, but as this project expands, it will hopefully be ported to PHP, Java and more.
Whilst most of the core functionality is ready, there are certainly improvements to be made for usability aspects. In addition, there are other areas to expand to, such as:
Suggestions are also welcome.
DoXCloud makes use of Bootstrap 3.0 and HTML5 to provide an original and native experience in the web browser. The rest of DoX is written primarily in Python. Both DoX and DoXCmd have compatibility with Python 2.x and 3.x, however DoXTray requires Python 3.x and PyQt 4.x (although PyQt 5.x is probably fine too). DoX is being developed and tested on both Windows and Ubuntu, although it should work fine on Mac too, or on any system supporting Python and PyQt.
As DoX is still under heavy development, there are no packaged downloads or installers yet. All the code for this project is available on GitHub (DoX, DoXCloud, DoXCmd and DoXTray) to have a look at. DoXCloud is already hosted online and open for use. For the desktop apps, there's also a handy downloader available for fetching and preparing the necessary files for you.