Habitist (Streak)

by briankaemingk

GitHub Readme.md

habitist (streak) Code Climate

An automation to enable habit tracking in todoist.

It integrates Seinfield's "Don't Break the Chain" method into todoist. Once it's setup, you can forget about it and it works seamlessly.

This is a different flavor of the originally implemented habitist. While habitist is focused on daily habits, habitist (streak) can be applied to habits of any recurrence time-frames (daily, weekly, monthly, etc).

Usage

  1. You add habits you want to form as task on todoist with a recurring schedule (could be any recurrance pattern (every day, every week or every year, for example)

  2. Add [streak 0] to the task

  3. When you complete the task, the [streak 0] will become [streak 1]

  4. If you fail to complete the task and it becomes overdue, the script will schedule it to today and reset [streak X] to [streak 0].

Installation

  1. Fork and clone the repo

    git clone https://github.com/yourgithubusername/habitist-streak
    
  2. Create a heroku app.

    heroku create appname
    
  3. Set environment variable with your todost API key. You'll find API key under Settings > Integrations on todoist.com.

     heroku config:set TODOIST_APIKEY='XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
    
  4. Push the app

    git push heroku master
    
  5. On IFTTT, create a new applet.

    • On THIS, select datetime > 'Every Day At' > 12 AM
    • On THAT, select Webhooks > Make a web request
    • Set URL to your heroku app URL with the directory/reset_streak:
    https://your-habitist-streak-app-name.herokuapp.com/reset_streak
    
    • Set METHOD to GET
    • Hit Create Action
  6. On IFTTT, create a new applet.

    • On THIS, select todoist > 'New completed task' > Any Project
    • On THAT, select Webhooks > Make a web request
    • Set URL to your heroku app URL
    • Set METHOD to GET
    • Set CONTENT TYPE to text/plain
    • Set BODY to the ingredient LinkToTask
    • Hit Create Action

Deploy

License

This project is licensed under the MIT License - see the LICENSE file for details