Beeminder Forum

TaskRatchet Development Updates

Hey, sorry! Since stuff is still manual, I don’t generally respond on the weekends, and today happened to be an off day, too. I’ll try to email you tomorrow.

And welcome to the alpha!! :smile:

1 Like

Update

Web

  • Hid task list when user logged out
  • Styled base template
  • Styled login page
  • Broke session widget into its own component
  • Split task list entries into a new component

And some screenshots :smiley:

1 Like

Update

API

  • Add ability to create new tasks
  • Add ability to mark tasks as complete

Slow and steady. :turtle:

2 Likes

Update

API

  • Add support for PUT requests
  • Create Stripe Customers
  • Create Stripe PaymentMethods
  • Add /me endpoint to retrieve logged-in account
  • Add ability to make a PUT request to /me to change account settings
  • Add ability to change password via a PUT request to /me

Web

  • Add new task form to tasks list
  • Refresh task list when new task created
  • Allow task status to be toggled via clicking a task’s checkbox
  • Create registration /success and /cancel landing pages for Stripe to redirect to
  • Add payment method creation via Stripe to registration flow
  • Fix Netlify routing
  • Build account settings page
  • Add ability to change password in account settings page

:cloud::cloud: :train:

2 Likes

Update

API

  • Support PaymentMethod updates to existing Customers
  • Build password reset flow
  • Include list of saved cards in GET /me response
  • Enforce minimum stakes of $1
  • Require new task description
  • Sort user tasks by due date, ascending

Web

  • Add ability to update payment details to account settings page
  • Style account page
  • Show current payment method on account page
  • Display login form directly on protected pages when logged out
  • Add “Reset Password” button to login form
  • Build password reset page
  • Make new task due date field default to 1 week from today
  • Prevent new task submission with stakes less than $1
  • Prevent new task submission without task description
  • Style tasks list
  • Style new task form

:blue_car::cloud:

2 Likes

Update

API

  • Split charge alerts into individual emails
  • Save charge alert email IDs to database
  • Make API mark the task as contested in the database when a user replies to a charge alert email
  • Switch to storing cents instead of dollars
  • Change default “from” field on emails to “TaskRatchet Bot <bot@taskratchet.com>”

Web

  • Support API’s switch from dollars to cents
1 Like

Update

Big news! I’m currently in the process of onboarding the alpha users into the web app! The app is still very rough, and the alpha users I’ve gotten into the app so far have given me so much great feedback. It’s been incredibly helpful. I’ve already implemented many of the fixes they’ve suggested, and I have a big list yet to work through!

API

  • Switch database fields from datetime to unix time*
  • Automatically authorize charges
  • Automatically capture charges
  • Add status fields to tasks returned from the API
  • Fix some attribute errors

Web

  • Add Google Analytics
  • Update page title element
  • Fix task stakes formatting
  • Fix default new task stakes
  • Support database’s change from datetime to unix time*
  • Add system-generated task status labels
  • Add archived tasks section
  • Fix scrolling issue on mobile
  • Stop labeling old completed tasks as “late”
  • Add “Done” status label
  • Switch from text notifications to on-page toast notifications
  • Add toast notifications on task status change

* Benjamin sent me a wonderfully detailed email explaining why this was the exact wrong decision, so reversing this change is now on my todo list!

1 Like

Update

API

  • Make PUT requests to /me return the updated version of me. This was causing account changes to appear to revert to their previous values on save.
  • Fix Stripe payments integration.
  • Add a warning to morning emails if Stripe payment method isn’t set up properly, mess up the warning wording, fix it with help from @shanaqui.
  • Switch to using a proper template file for morning emails.
  • Add ability to run API locally for development.

Web

  • Convert account page to a functional component.
  • Make account page use toast messages instead of plain text messages.
  • Make app use API running locally when in development mode.

More to come soon!

2 Likes

Update

And a big deploy! This deploy switches TaskRatchet away from AirTable and to Google Cloud Firestore, which also ended up requiring quite a few other changes, too. Please email me at nathan@taskratchet.com if you find a bug or run into an issue with the new changes.

API

  • Build Firestore wrapper
  • Build Firestore one-time migration
  • Connect with production and development Firestore database instances
  • Add support for Stripe test mode
  • Consolidate Stripe hooks into one endpoint for easier event forwarding
  • Add Stripe event forwarding to development environment for hook testing
  • Add basic logging functionality for development
  • Switch from unix time to naive datetime for task due dates
  • Switch from datetime to unix time for session expiration
  • Switch from spaces to underscores for database field names
  • Build migration runner cron job
  • Add support for alphanumeric entity IDs
  • Improve subscription payment handling
  • Set Stripe redirect URLs dynamically based on environment

Web

  • Replace datetime picker
  • Log out automatically on 403 forbidden API response
  • Default to localhost for API requests when in development mode
  • Convert some more class components to functions + hooks
  • Support the few parts of the API schema changes that bleed through the interface
2 Likes

Update

API

  • Make login email case-insensitive
  • Limit new task pledges to $2500 or less
  • Fix bug with how morning emails were being scheduled
  • Fix bug with due date validation
  • Catch and handle Stripe refund error
  • Auto-deploy from CircleCI for master branch
  • Cache dependencies in CircleCI for faster build time
  • Ensure that charges aren’t even authorized until 24 hours past the task’s due date

Web

  • Add $2500 max value to stakes field
2 Likes

Update

API

  • Work on improving exception handling

Web

  • Don’t show “due” label if task completed
  • Don’t reset due date and stakes fields when new task created
  • Fix task sorting (this may still be an issue…)
2 Likes

Update

API

  • Fix a bug where part of the system was trying to capture contested charges even though the rest of the system was preventing it from going through (thankfully!)
  • Add task id to failed capture admin email notifications
  • Log user events to Amplitude
  • Log Amplitude exceptions

Web

  • Add privacy policy and terms of service agreement checkbox to registration page
1 Like

Update

API

  • Add Beeminder integration support

Web

  • Add staging server support
  • Fix SameSite setting in cookies
  • Add Beeminder integration configuration to account page

Hi, Nathan - can you explain how the Beeminder intergration works? Do I set up a Beeminder goal to complete tasks in Taskratchet before the deadline that I set?

Yeah @narthur I never got an email announcing the integration :frowning: :slightly_frowning_face: :frowning_face: :sob: :crying_cat_face: :cry: - is there documentation somewhere?

Sure! The integration is super simple right now. All it lets you do is beemind adding tasks to TaskRatchet. So basically it will post a 1 with a summary of the task to a goal you choose whenever you create a new TaskRatchet task.

To set it up, click “Enable Beeminder integration” in your account page. That will take you to Beeminder where you’ll have the opportunity to grant TaskRatchet access to your Beeminder data. Once you’ve granted it, you should be redirected back, at which point you can specify the name of the goal you want TaskRatchet to post to when you create a task.

I have lots of ideas for how to make this integration better (including some that @zedmango suggested!) but that’s all we’ve got for now. :slight_smile:

I don’t remember committing to announcing every new feature by email. :wink: But you’re absolutely right about getting some documentation together. It’s on my list!

2 Likes

Ok, quick and dirty, we have a docs site! It’s hosted on GitHub, so please feel free to add issues and/or make pull requests.

http://docs.taskratchet.com/

2 Likes

Made a pull request! This is fun!

1 Like

Nice!! Approved and merged. :smile:

I’m leaving on a trip and won’t be back until June 19. If you run into any issues or for whatever reason want to reach out, please email me at nathan@taskratchet.com and I’ll try to get back with you as soon as I return from my trip!

Remember, replying to charge emails puts a pause on them, so reply to it as soon as you receive it if you think the charge shouldn’t go through.

1 Like