Add onboarding for new users - #746
Conversation
abrichr
left a comment
There was a problem hiding this comment.
Looks good, thank you for putting this together @KIRA009 !
Got the nvm error again, nvm use 21 got around it:
(openadapt-py3.10) abrichr@MacBook-Pro-5 OpenAdapt % git checkout feature/onboarding
branch 'feature/onboarding' set up to track 'KIRA009/feature/onboarding'.
Switched to a new branch 'feature/onboarding'
(openadapt-py3.10) abrichr@MacBook-Pro-5 OpenAdapt % poetry install
...
(openadapt-py3.10) abrichr@MacBook-Pro-5 OpenAdapt % python -m openadapt.entrypoint
...
DB_URL=sqlite:////Users/abrichr/oa/OpenAdapt/openadapt/data/openadapt.db
INFO [alembic.runtime.migration] Context impl SQLiteImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
INFO [alembic.runtime.migration] Running upgrade a29b537fabe6 -> bb25e889ad71, generate_unique_user_id
2024-06-13 13:51:37.244 | INFO | openadapt.config:persist_config:357 - Persisting config to /Users/abrichr/oa/OpenAdapt/openadapt/data/config.json
Exception in thread Thread-3 (run_client):
Traceback (most recent call last):
File "/opt/homebrew/Cellar/python@3.10/3.10.14/Frameworks/Python.framework/Versions/3.10/lib/python3.10/threading.py", line 1016, in _bootstrap_inner
self.run()
File "/opt/homebrew/Cellar/python@3.10/3.10.14/Frameworks/Python.framework/Versions/3.10/lib/python3.10/threading.py", line 953, in run
self._target(*self._args, **self._kwargs)
File "/Users/abrichr/oa/OpenAdapt/openadapt/app/dashboard/run.py", line 35, in run_client
dashboard_process = subprocess.Popen(
File "/opt/homebrew/Cellar/python@3.10/3.10.14/Frameworks/Python.framework/Versions/3.10/lib/python3.10/subprocess.py", line 971, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/opt/homebrew/Cellar/python@3.10/3.10.14/Frameworks/Python.framework/Versions/3.10/lib/python3.10/subprocess.py", line 1863, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'node'
^C^C^C^Cn^C^C^C^C^C^C^Z
zsh: suspended python -m openadapt.entrypoint
(openadapt-py3.10) abrichr@MacBook-Pro-5 OpenAdapt % pkill -f openadapt
(openadapt-py3.10) abrichr@MacBook-Pro-5 OpenAdapt %
[1] + terminated python -m openadapt.entrypoint
(openadapt-py3.10) abrichr@MacBook-Pro-5 OpenAdapt % nvm use 21
Now using node v21.7.3 (npm v10.5.0)
(openadapt-py3.10) abrichr@MacBook-Pro-5 OpenAdapt % python -m openadapt.entrypoint
Great start! What do you think about:
- Clearly dividing this into three sections, e.g. horizontally or vertically. Ideally use a pre-built component, I think we're using Daisy elsewhere.
- Tutorials: Eventually we can link to a different page, but for now maybe just a few screenshots and descriptions:
a. System tray recording
b. Dashboard visualization
c. Dashboard configuration
c. Dashboard scrubbing
-
Register for updates
-
Book a call
- Changing:
Let's get started with a quick onboarding process.
to:
Get started with OpenAdapt in a few easy steps.
|
@abrichr Based on what you said, I think what we could do is, increase the size of the modal, use a component like https://mantine.dev/core/stepper/ to clearly divide the onboarding to steps
And then, for the first step, what do you think about embedding a video recording (like a demo) hosted on youtube (or any other video platform, vimeo ,etc.) I think a video demo would be more engaging that a series of screenshots and texts |
|
Sounds great! If possible it would be preferable to keep everything visible, e.g. with an accordion, so as to reduce friction as much as possible. @KIRA009 can you please also document |
|
@abrichr I have used the demo video from openadapt.ai as the first step of onboarding. Also, if you want to view the onboarding again, please change |
I think the stepper adds unnecessary friction. How about just using the Divider from mantine? |
|
@abrichr I have updated it, with the dividers |
|
@KIRA009 I don't see the changes, have you pushed them? |
|
@abrichr Pushed |
|
Thank you. It looks like the content overflows the modal:
Can you please make sure the content isn't overflowing? Or how about instead of a modal we just push them to an /onboarding page? Also please add this sentence:
Here, place a bounty card (see https://github.com/algora-io/sdk) for #764. Also, please replace the |
|
@abrichr Updated |
|
@KIRA009 getting there! Some thoughts:
To this:
|


What kind of change does this PR introduce?
This PR introduces an onboarding mechanism to the dashboard.
Summary
This PR introduces a change where the dashboard is launched by default when the app is launched. The dashboard also displays an onboarding modal, which the user can dismiss and it won't pop up again. The modal contains an input box to capture the email of the user if they wan't to receive regular updates about OpenAdapt. It also contains a link that can be used to schedule a short meeting with @abrichr
This PR address #711
Checklist
How can your code be run and tested?
Run the app as usual
python -m openadapt.entrypoint. The dashboard should launch by default, and you should see an onboarding form. Closing the modal (by clicking on X or outside the modal) or set a config variable to false, and the modal will not be shown again on subsequent page visits.Other information