Made the morning email endpoint check to see if each user has already received their email for the day before sending a new one.
Implemented API token auth.
In addition, I’ve created an empty repository for a CLI client. It’s open source, feel free to make contributions moving forward. I haven’t quite decided whether to build it in Python or Bash.
Currently there isn’t any way for users to delete tasks. We aren’t that far into development.
At this point, you’d have to ask me. And I have in my notes that you don’t want to be allowed to delete tasks after the first 10% to the deadline. So there’s that.
Made some modifications to allow Google Cloud Scheduler to ping it multiple times a day to send out morning emails. This is what allowed me to reopen the alpha. ()
Started work on integrating with Stripe so that authorizing and capturing charges can be automatic.
Yesterday my wife suggested that delete always be available, and it just immediately charge you the amount you pledged. So, in essence, you decided it would cost you this much not to do the task, and you can decide to pay that at any time to make the task go away. Basically an uncle button, in Beeminder parlance… Does that approach make sense to you?
Hmm. Deletion-wise, what about a case where a task becomes pointless? E.g. you pledge to do something for work by x date, but someone else ends up completing it or the task is no longer necessary? Do you just count it as complete then, even if you didn’t complete it?
That’s a good question. It seems like that’s the perrenial issue with task lists. I don’t know if I have a full answer to that, though I think it’s partially to be careful regarding what tasks you create.
I’m definitely open to any insights you all may have on this question.
I like it, but I’d say to make sure the interface is clear that “delete” means “pay.”
I still think you should be able to delete without charge in the first 10% of the time, for typos and situations where you realize right after you make a goal that you won’t be able to do it.
I think of it like a to-do list - when it no longer needs to be done, you cross it off.
Interesting discussion! The key difference is that one is a personal to-do list, so the emphasis is on what you still need to do, and the other is a promise to someone else, so the emphasis is on your reliability as a promiser.
Setting up automatic Stripe charges has proved to be more involved than expected. The way I have payment methods stored now, Stripe won’t allow me to create new charges via the API. In order to store the payment methods the way Stripe wants them, I need to set up a page for users to use to re-add their payment details.
In order to do that, I may as well build this page in a way that I don’t have to rebuild it once I start on the web app. So that basically means starting on the web app now, which I’ve done here. I’ve switched away from Elm to Angular, as this will allow me to be productive immediately.
I think you may be having problems getting my emails; I’ve sent you several without acknowledgement? (Please don’t charge me, I’ve completed all the tasks so far!)