/ultralist-frontend

The frontend for Ultralist.

Primary LanguageJavaScriptApache License 2.0Apache-2.0

Ultralist frontend

This is the web frontend for Ultralist pro.

It is based upon create-react-app.

Running it

  1. yarn
  2. yarn start

Auth flow from CLI

If you do not have an account

  1. head to https://api.ultralist.io/cli_auth
  2. set cli_auth=true in backend session
  3. redirect to /signup?cli_auth=true page
  4. oauth flow to backend, web keys
  5. from backend, redirect to frontend (/auth). pass web token, cli_auth, and signup codes.
  6. frontend requests cli_token via an authenticated request to api.
  7. frontend redirects to CLI, passing cli_token.
  8. CLI redirects back to frontend (/todolist?cli_auth_completed=true).
  9. frontend displays message saying auth is complete, and they are signed up.

If you have an account but are not logged in

  1. head to https://api.ultralist.io/cli_auth
  2. set cli_auth=true in backend session
  3. redirect to /signup?cli_auth=true page
  4. oauth flow to backend, web keys
  5. from backend, redirect to frontend (/auth). pass web token, cli_auth, and signup codes.
  6. frontend responds to cli_auth param and requests cli_token via an authenticated request to api.
  7. frontend redirects to CLI, passing cli_token.
  8. CLI redirects back to frontend (todolist?cli_auth_completed=true).
  9. frontend displays message saying auth is complete.

If you are logged in

  1. head to https://api.ultralist.io/cli_auth to set cli_auth session flag (to be used later)
  2. set cli_auth=true in backend session
  3. redirect to /signup?cli_auth=true page
  4. frontend responds to cli_auth param and requests cli_token via an authenticated request to api.
  5. frontend redirects to CLI, passing cli_token.
  6. CLI redirects back to frontend (todolist?cli_auth_completed=true). frontend displays message saying auth is complete.

  • Mutation events for both todo items and todo lists occur as changes to a model
  • models are stored in context
  • speaking to backend occurs via event cache
  • event cache gets pushed when online
  • models are aware of event cache?

Event cache

TodoList model