TaskRatchet Development Updates

lol Accurate. :stuck_out_tongue_winking_eye:

Right, charging tasks is all manual right now. I’m working on changing that, but getting to that point requires quite a few other things to be in place, too.

Once it’s working, the way it will work is that a charge will be authorized soon after the task becomes overdue, and then >= 24 hours later, the charge will be captured.

Update

API

  • Still working towards automatic charges.
  • Made API infer user id when possible (Thanks @zzq for pointing this out!)
  • Updated auth strategy to be less broken and more normal (Thank you, @zzq!)

CLI

  • Add get method support
  • Add --staging flag
  • Improve arg parsing
  • Improve usage docs

Web

  • Build some basic web components just to get a feel for things
  • Add Storybook for isolated component development && testing
2 Likes

Update

I’ve really bogged down with getting automatic charges working. To save cards to Stripe in a way that allows me to create new charges later, I have to use a somewhat complicated flow, which in turn requires building out the web app to include a functional card saving interface. This also requires authenticating the user to ensure we’re saving the card to the correct user account in the database.

I started trying to make this happen using Angular, but I’m questioning whether that was the right decision. I’m considering trying this in Vue or React to see if it’s more approachable for me. React would also be nice on a personal level since I have some contracts coming up where I’m expected to build things in React, so building the web app in React would mean I’ll likely be more productive on all these projects.

1 Like

Update

  • Switched to React for the web app.
  • Gave the landing page a small face lift, plus legal stuff due to services requiring I have them.
1 Like

Update

I’m taking a few days off from TaskRatchet, but I’ve been reaching out to some people for advice on session management and authentication, including the great @zzq.

Update

I’m taking a break from TaskRatchet development for a while to get some health issues under control. So I won’t be working on the project or posting updates here from 9-23-19 to 10-14-19.

Also, I won’t be actively managing the alpha October 4-14, so feel free to continue emailing me new tasks and completions during that time, but I won’t be updating your data or creating charges until after I get back.

1 Like

Update

Just arrived back from vacation, so nothing to report today. :slight_smile:

Update

I feel like I’m finally wrapping my head around auth, at least to the point where I’m starting to make good progress again. Also, thanks to @dreev for agreeting to chat with me about the project! Many valuable insights moving forward.

API

  • Built login route
  • Built register route
  • Built timezones route for use in registration
  • Added CORS header to allow for cross-origin use of the API in browsers

Webapp

  • Build login form + basic validation
  • Build registration form + basic validation
  • Make registration form use register API route

And a screenshot:

1 Like

Update

API

  • Make register route return error code when email already taken
  • Improve http response codes
  • Make login route fail login requests for non-existent users without crashing

Web App

  • Set the page title
  • Make the login form use the login API endpoint
  • Work on saving session token to a cookie
1 Like

Update

Web App

  • Make login & registration forms display success & failure messages based on API response
  • Break login & registration forms into their own stateful page components
  • Add routing & navigation system

Update

Added a read-only task list for the currently-authenticated user:

Just a heads-up: I’m going to be traveling until December 3, so if you’re a part of the TaskRatchet Alpha, I won’t be responding to emails until then. Please feel free to continue sending me tasks, telling me you’ve completed them, etc, as normal. You’ll still be on the hook for completing what you’ve committed to, by the date you committed to. I’ll respond to emails received once I return.

I’ve joined Alpha 1-3 days ago, but never got any mail or information. What’s up? I would love to test your service! :slight_smile:

1 Like

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