web icon indicating copy to clipboard operation
web copied to clipboard

Guide through the interface

Open elizavetaRa opened this issue 3 years ago • 5 comments

Expected behaviour

The web interface should provide an interactive guide to

  • show, what's new in the new release / since the last time user visited the app
  • demonstrate important functions of the interface

To discuss:

  • Conceptually: the guide consists of different tours, the tour consists of several steps
  • Usage of a library for the guide?
  • Where should the guide be stored?
  • Implementation in web/ as web extension?
  • Customization of the guide, injecting of guides
  • Advanced: mock-data to demonstrate functionality?

By CERNBox we decided to use shepherdjs liabrary for this purpose. With this library, it's possible to create tour instances built out of different steps. It's possible to attach steps to elements in the interface.

In https://github.com/cernbox/web/commit/597eefee we implemented "What's new" guide:

guide

elizavetaRa avatar Mar 31 '22 09:03 elizavetaRa

Nice, thats something I definitely want. From a users perspective, do those stories sound reasonable to you and meet the Idea?

1 - New features: (Everyday user)

  • As a everyday user I want a hint or guide about new features so that I can improve my known workflows.

2 - First-time guide: (first-time user)

  • As a first-time user who is afraid of randomly exploring the ui by clicking around, I want a guide that tells me what and how to do the most important things directly within the ui. The learning-experience should be more comfortable that reading the manual.

3 - Skip option (first-time user)

  • As a first-time user who wants to explore the user interface by simply trying it out, I want to easily dismiss anything that stands in my way.

4 - Customisation (support employee)

  • As a support employee I want to provide easy digestible, custom guidance for my users so that my support efforts are kept low.

Note: We also plan to have a ❓ next to elements that need more explanation: https://github.com/owncloud/web/issues/6590

Your more technical questions are better addressed by @kulmann and team 💪

tbsbdr avatar Apr 01 '22 10:04 tbsbdr

@tbsbdr The stories sound good to me

I like the "?" idea. We would need customization/injecting options :)

elizavetaRa avatar Apr 07 '22 12:04 elizavetaRa

First of all, really nice! Fully agree with @tbsbdr

Regarding implementation:

  • the lib that you chose makes a good first impression. license is compatible as well (MIT).
  • you or us (or both, needs discussion/planning, collaboration would be nice) could implement the tour in the web runtime
  • however, regarding the contents of the tour I think a hybrid approach would make sense. Like with the theme.json which is allowed to come from within the bundle or to be loaded via an external endpoint I'd like to have the same for the tour contents. Default content somewhere in the repo (e.g. in packages/web-runtime/tours) and additionally an option for the config.json file to allow externally loaded tours.

What do you think?

kulmann avatar Apr 08 '22 09:04 kulmann

Maybe the guide ui can be combined with an announcement functionality, ex. when there is a planned downtime, it could be announced via this UI.

tbsbdr avatar Jul 27 '22 08:07 tbsbdr

@elizavetaRa is that still used? Very interesting feature this is - maybe we can discuss that with @pascalwengerter during the workshop.

dragotin avatar Feb 13 '23 12:02 dragotin