Giter VIP home page Giter VIP logo

flow's People

Contributors

codesee-maps[bot] avatar gitstart avatar richardguerre avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

gitstart launger

flow's Issues

Finish Google Calendar Plugin MVP

Context

The Google Calendar Plugin might be one of most important plugins to start with as a lot of potential users use Google Calendar and would prefer not having to go back and forth between tools, in this case Flow and their calendar.

The MVP was started and does the following so far:

  • Exposes GraphQL Plugin Operation API to connect account, list connected/unconnected calendars.
  • Some UI in the Plugin settings to use the Plugin's Operation API mentioned above.
  • When connecting a calendar it will create a webhook channel for that calendar so Flow can receive updates about that calendar and will get and create items and tasks from the first 100 events in the user's calendar from the time the calendar was connected.
  • A task is created or updated whenever an event is not canceled and not tentative.

What is still left for the MVP?

  • Improve the UI in the plugin's settings to connect accounts and calendars (it's ugly right now)
  • QA everything works.

Google App verification

Tracked in #29

Fix Inbox list is blank on first render

Problem

  • Currently the InboxList is blank when first rendering it as its subscription has not resolved the first payload yet.

Solution

  • The inbox list shouldn't appear blank on first render but should show the header "Inbox", subheader text that is normally shown, the "Add item" button, and skeleton components to show that the list is loading.

Repeating Tasks Plugin MVP

Part of Flow 1.0 project as it's part of the "Plugins for the first 10 users to keep using Flow on a daily-basis".

Scope

  • Plugin setting to create repeating tasks
    • Ask for task details (title and durationInMinutes)
    • Repeating pattern using a crontab -- very MVP but should help.
    • TBD -- ask how many tasks to create in advance, or ask a period of time for which tasks should be created in advance.
  • Creates tasks automatically using above details

Out of scope

  • Repeat existing task by right clicking on the task card or other methods.

Fix link pasting in Task title and Item title

Problem

TipTap's Link extension had a regression that didn't allow links to pasted on existing text and also some links would not be detected as a link.

Solution

TipTap seems to have fixed it as part of the latest release (v2.1.12), so just need to update the extension to that version and test it.

Decide on ordering system for subtasks

Context

Tasks within a day are currently ordered by the Day.tasksOrder column in the DB, which is an array of the task IDs in the ordered to show the tasks in.

Problem

It is currently non-trivial to order subtasks of a task relative to all other tasks and transferring a task back and forth to become a subtask, as it would either require tasks to also have a subtasksOrder column or use some kind of index-based ordering.

Solution

TBD. Read the conversation in this issue to know the chosen solution.

Landing page + privacy policy

Requirements

  • Setup Astro
  • Minimal landing page with Hero with CTA to get into waitlist (for now just email or DM me)
  • A privacy policy at /privacy. There is a draft of the policy in privacy.md copied and modified from Cal.com's.

Snoozing items

  • Add a button/action to snooze items that are in the Inbox list so that they come back at a later point in time.
  • Maybe part of Flow 1.0 project as it does make it easier to achieve inbox zero, which develops good habits.

Verify the Google Calendar Plugin App in GCP

Requirements

  1. An official link to your app's Privacy Policy
  2. A YouTube video showing how you plan to use the Google user data you get from scopes
  3. A written explanation telling Google why you need access to sensitive and/or restricted user data
  4. All your domains verified in Google Search Console

Todo

  • #30
  • Youtube video demoing the Google Calendar plugin.
  • Written explanation draft why sensitive scopes are needed. (e.g. "<scope> is needed to ...")
  • Add domains in Google Search Console. Might need to proxy.

Plugin web API refactor `onCreateTask` to allow returning inputs instead of DialogContent component

Context

The web.onCreateTask API currently allows plugins to show a Dialog to prompt the user to input more data about the task.

  • For example, the GitStart plugin, asks the user to input the task title (defaults to the same title as the item they are creating the task from), the GitStart initial task status, and the GitStart task type.
  • If there are multiple plugins that need to prompt the user for additional data, the dialogs are shown one after the other.
    • This can be tedious for users and it would more concise to ask everything in one form.
  • For a lot of plugins, they are asking additional metadata for the task, and would simply require adding an input like a dropdown to an existing form.
  • This is the example in the "Flow 1.0" project description for what is not stable about the Plugin API, hence why it is part of the "Flow 1.0" project.

Solution

  • Allow plugins to return DialogInput components so they can be rendered as part of Flow's native Create task dialog.
  • Still allow plugins to return DialogContent components so they can still prompt the user for additional content within their own dialog.

Only move to next day in kanban view when it's 4am

Context

  • The IndexView/kanban view currently scrolls to today when first loading the view.
  • In Flow, a new day starts at 4am instead of midnight, as I expect some late-night users like myself to consider time past midnight part of the same day.
    • Tasks only start rolling over at 4am.

Solution

In the kanban view (i.e. IndexView component), remain on the same day until 4am the next day.

Plugin web API `onInstall` dialog for onboarding users

Context

  • Currently when the user installs a plugin, it shows a toast saying "Plugin installed". There is no indication what the plugin does or how it works.
  • The user has to wonder around their Flow instance to see if something changed.

Solution

Plugins should be able to have users go through an onboarding experience after installing the plugin:

  • Expose web.onInstall as an API for plugins to use.
  • If the plugin returns null, then no onboarding experience is shown.
  • If the plugin returns a component/JSX, then that content is shown within Dialog or Modal with a close button so the user know what to do.

Allow changing inbox points for manually created items

  • Currently, when creating items in the inbox, they are created with +1 inbox points.
  • Either allow changing the inbox points as the user is creating the item or after creating the item.
    • This would allow to prioritize in the inbox.

Fix subscriptions not updating UI tasks

Problem

  • While testing the Google Calendar plugin in #28, I noticed the task title was not automatically updated after changing an event in my Google Calendar. I had to refresh the page to see the changes.
    • It may be the same for items (I didn't check).
  • When a new task is added to a day by a plugin, the user has to refresh the page to see that new task as there are currently no subscriptions/mechanism to update the Day component when there are new tasks in the day.

Press alt/option to create multiple tasks from an item

  • Part of the Flow 1.0 project as it includes a major decision that would break for users if brought in after a 1.0 release.
  • If the user presses alt (or option) as they are dragging an item to create a task from it, when the task is created, the item is not dismissed from the inbox and will allow the user to create another task from the same item.
  • May need to revisit the "creation of tasks from items" entirely.
    • The double check mark button on items and tasks is confusing and would be nice to remove it in favor of a stronger item to task UX. For example, dragging an item to a day without pressing anything, creates the task and dismisses the item, to make it appear like the user just converted the item into a task. If they press alt/option, the item is not dismissed and they are essentially copying the item into a task.
      • This will require strengthening the Plugin API to know that tasks can become the source of truth for external things like Linear issues, Trello tasks, etc.

Deleting task shows Relay store update error

Problem

Image

Solution

  • Fix the updater so it correctly removes the task from the day and doesn't show an error
  • Or, don't show the error toast by adding onError: () => {} to the mutation.

Fix BrowsePluginsView not being able to install displayed plugins

Context

  • The current BrowsePluginsView component currently displays a list of hardcoded plugins that have been created.
  • Clicking on "Install" for one of the plugins has the following issues:
    • Shows loading indicator on all "Install" buttons of all plugins in the view.
    • Returns error Got status code 404 from "https://cdn.jsdelivr.net/npm/@flowdev/[email protected]/out/plugin.json
  • The user has to use the "Install plugin by URL" feature for now as the above doesn't work.

Solution

  • Fix hardcoded installUrls for each plugin so that it doesn't return an error
  • Show loading indicator only on the plugin that is being installed or show a loading toast instead.

Chain creating tasks/items when pressing enter

  • Currently, inputting multiple tasks/items into Flow can take a while as the user has to press the "Add task" or "Add item" each time they want to create an item.
  • A better UX would be to automatically prompt to create the next task/item when the user presses enter to create the current task.
    1. User clicks on "Add __" button
    2. User inputs task/item title
    3. User presses enter to submit -> task/item is added to the list -> user is prompted to create a new task/item again.
    4. (after creating all tasks/items) User clicks outside the new task/item card input -> the new task card prompt disappears.

Linear Plugin MVP

  • Plugin setting to get PAT to retrieve Linear issues.
  • Exposes/shows the webhook URL to put in Linear to get updates about Linear issues.
  • Creates items from Linear issues assigned to the user.
  • Archives items linked to Linear issues that are already done or canceled.
  • Creates tasks from items/Linear issues assigned to the user and are in progress.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.