Skip to content

Improved onboarding

Bram Wiepjes requested to merge improved-on-boarding into develop

Is related to https://gitlab.com/baserow/baserow-saas/-/merge_requests/453

What is in this MR

This merge request introduces an improved onboarding to make users, less familiar with a no-code database, successful with the platform. This merge request looks bigger than it actually is based on the number of changes.

May-22-2024_22-43-48

What has changed

  • Added a property to the user profile that indicates whether the onboarding has been completed.
  • When creating a new account, the initial workspace, the one we created automatically on signup, is not created.
  • Introduced a new endpoint that can be called to create the initial workspace, like before on signup. This is used when the user skips the onboarding entirely.
  • The Airtable import job now returns an actual database object instead of the application one so that we can extract the first table, which is needed for the redirect.
  • The additional signup steps have been removed because the step introduced in the SaaS is replaced by the onboarding, even for self hosted.
  • The web-frontend should detect if the onboarding has is completed. If not, it will redirect the user to the onboarding page.
  • Only after completing the onboarding, the chosen workspace, database, etc are created.
  • Make some small changes to the Sidebar component so that we can control via props which workspaces and applications to show. This so that we can use it in the onboarding preview.

Architecture

I've introduced a new onboarding registry where steps can be added to. Each step has an order, so via plugins it will easily be possible to add additional steps in the correct place. This also allows us to split the core and database tasks. An onboarding type can return a form component, which is the input on the left side, and a preview component, which is the placed on the right side.

When all the steps are complete, the onboarding process loops over every step, and calls the complete method will create all the data. That means that if the user stops the onboarding

What's not finished

Not everything is included in this onboarding because the merge request was growing, and we hadn't made decisions about everything yet. I think this merge request can be merged in this state, as it's already an improvement over what we have right now. Below a list of tasks that must still be implemented.

  • Send information to baserow.io if the user wants to opt-in. Currently the team and more steps don't do anything.
  • Add install template step.
  • Allow choosing fields in the from scratch step.
  • Allow choosing views in the from scratch step.
  • Change the form component to actual forms so that the enter goes to the next step on a focussed input.
  • Translate the countries.

How to test this MR

  • The onboarding should not be visible if the creating new workspaces is disabled on instance level.
  • It should not be possible to create the initial workspace if creating new workspaces is disabled on instance level.
  • The onboarding should start when creating a new account via SSO.
  • Existing users in the instance should not see the onboarding, it's only for new signups.
  • The onboarding should not start if the user accepts an invitation to a workspace.
  • It should be possible to complete the onboarding with each path (from scratch, from file, and from Airtable) taken.
  • The onboarding should not be shown if the user completes it, or skips it entirely.
  • A progressbar should be shown when importing from a file or from Airtable.
  • If the user skips the onboarding, then the default workspace, like before when signing up, should be created.
  • If anything fails during the onboarding, a nice error should be shown that gives the user the option to skip or retry.

Merge Request Checklist

  • changelog.md has been updated if required.
  • New/updated Premium/Enterprise features are separated correctly in the premium or enterprise folder
  • The latest Chrome and Firefox have been used to test any new frontend features
  • Documentation has been updated
  • Quality Standards are met
  • Performance: tables are still fast with 100k+ rows, 100+ field tables
  • The redoc API pages have been updated for any REST API changes
  • Our custom API docs are updated for changes to endpoints accessed via api tokens
  • The UI/UX has been updated following UI Style Guide

Closes #2212 (closed)

Edited by Bram Wiepjes

Merge request reports