Akr.asia: extra integrations + a framework for creating integrations


#1

Akr.asia1 is a project I have been working on for the past week or so (and at my first ever Pomodoro Poker session at the Seattle meetup!)2. In short, Akrasia provides:

  1. Extra integrations for Beeminder (it currently has integrations for Pinboard, Memrise, Last.fm, Codecademy, Leetcode, Codewars, Project Euler, and the Beeminder Forum), and
  2. A way to quickly create integrations for Beeminder without having to write boilerplate code for OAuth, data persistence, etc.

For a more detailed explanation of how this works and how to write a new integration using Akrasia, see my blog post on the project which covers more of the technical aspects.

Also, check out the source code for the Beeminder Forum: Posts Count integration for a quick example of what this looks like (the whole integration is just the integration.json file and the server.js file, which only has a single endpoint handler) (remixing/forking an existing integration, you could write a new integration in just ~30 lines of code, including the JSON config).

Any feedback, suggestions, or questions/comments would be welcome!

Edit: updated blog post with more formal specification of the protocol/requests between Akrasia and the integration fetch endpoint

1: Not the most creative name, I know :p
2: A disclaimer: all the functionality seems pretty stable now, but the project is still under fairly active development, so a few bugs may pop up. If enough people start using it, I'll begin following best practices more (e.g. separating staging/testing from prod more, etc.).

#2

Thanks!


#3

I couldn’t find a proper issue tracker for the project, so here it goes: The codewars integration (completed katas) seems to be buggy.

These are my stats at codewars:

19

That’s the corresponding Beeminder Goal:

Link to Beeminder Goal.


#4

Thanks for the feedback and for trying out akr.asia! It looks like the datapoints on the goal are showing 8.0 when you have “Total Completed Kata: 8”, which is correct (it is intended to return the total number every time, to be used with an Odometer goal).

It looks like you’re using a Do More goal though. Try using an Odometer goal instead and the graph should make more sense! I don’t think there’s a way to change the goal type on an existing goal through the website, but you could try emailing support@beeminder.com and asking them to switch it for you. The integration also mentions you should use this goal type when you set it up through akr.asia, but the hint doesn’t really stand out on the page.

Here’s what it should look like with an odometer goal! https://www.beeminder.com/csu/leet#data


#5

Thanks for the quick answer! I emailed support about it. May I still suggest that you have some kind issue tracker (at github for example). It would make life easier for you too… :slight_smile:

P.S.: Thanks for your work on akr.asia. Your framework actually made me discover codewars and memrise, which I both use now!


#6

Good idea; I’ve been meaning to make a place for issue submissions. I’ll add a link to this forum thread for support, for now! I would use GitHub, but then people without GitHub accounts wouldn’t be able to open issues. Anyone with a Beeminder account should be able to post on the forum :slight_smile:


#7

The pinboard integration seems to have stopped working for me - and it seems like the certificate ran out on the site. I’m not sure if these two things are related but just wanted to point both out.

More generally, Thanks for akr.asia, it’s great!


#8

Should be fixed now. Integrations should be working again and akr.asia
should soon redirect to the new manage site. Sorry this took so long to get
sorted!