Introducing RTasker basis and vision

For the first project for this blog, I wanted something simple, quick and still useful. I decided to work on something that would allow me to manage recurrent tasks in Google Tasks since I could not find any simple way to do it. This is how RTasker (Recurrent Tasker) got created. In this quick post, I simply want to outline my vision for the project and a few more details about it.

Like most of my personal projects, this will be a Ruby command line application, only tested on Linux. One of the reasons why I want to do a command line application is to be able to run this as a cron job on my RaspberryPi.

The project is hosted on GitHub at calestar/RTasker. I’ll host the continuous integration/testing on Travis and code coverage reports on Codecov. I find that both of these are super easy to integrate into a public GitHub project, have nice features and are free.

I want to keep this project as straightforward as possible. I’ll limit the configuration to two files: one for the secret keys for Google Tasks, the other one for the tasks. Since the data to store the keys is really simple, I’ll use a simple YAML file. The second file, containing the tasks, will be a DSL-based file. This will make it easier to handle special cases. Amongst other things, I want this file to contain:

  • The time when the task is due (in a perfect world, this would be written in English as much as possible, like “last day of every week” or something);
  • The time before the task is due I want it created by the tool;
  • A category, name, basic things like that.

As for the command line tool part, again, I want to keep it simple. I’ll go with two simple commands: check and ensure. The check command will do as it names implies: check if all the needed tasks exist. The ensure command will create all those that do not exist. These two should be enough to handle most cases I need.

Right now, I plan on supporting only Google Tasks for the management of the tasks. Once everything works with local files, I’ll move the file containing the description of the tasks on Google Drive.

If you have any idea that could make this even more useful, feel free to comment. You could also directly create an issue on GitHub, or better yet, do a pull request 🙂

Thanks for reading,  Js