UX during module installation and configuration

Speaker
Artem Dmitriiev
Artem
Dmitriiev
Company:
1xINTERNET GmbH

Backend developer at Frankfurt office of 1xInternet. Modules maintainer. My goal is to make Drupal more user friendly.

Presentation Description
Level
Middle
Language
en

I bet everyone in his/her life used OS Windows. There are a lot of opinions on it, but, to be honest, there is one huge advantage it has - installation wizards. Almost every programme that is being installed has some kind of interaction with end user. This gives at least the illusion of control over your system and of course it allows to have already preconfigured first time experience inside application. Some wizards give more options, some less, but it is nice to have it in the first place.

So, let's think about a Drupal user, that wants to install such a complex module like Metatags or Commerce. Although there are a lot of tutorials, documents and other help materials, there is always something that prevents end users from completing this "piece of cake" for developers task on his/her own. But all that he/she needs is only make it possible to add Metatags, let's say of OG type, to content type article. 

More examples: some small business wants to go online, and of course there is no bugdet to hire the Drupal agency that will install the small shop for them. But in reality, small companies sell up to 10-15 different types of products with 1-2 payment systems enabled and 1, maximum 2 shipping methods. Of course, you can say, that there is a kickstart profile, but how would you explain this to a person who wants to own e-commerce shop?

Why not help the user to accomplish this in easy guided steps? Taking into account that it is already not so easy at all to install a module, because you need composer and some knowledge in this area, that makes Drupal not very attractive more simple sites.

For the developer it means that there is need in creating relyable and stable multi-step form, that

will guide through the process of module configuration. What do we have now to achieve this? Of course it is always possible to create a custom multistep ajax form, but will it work for any project, any use case? Unfortunately, pure core solutions are limited by this. What else do we have?

Contrib solutions:

1. CTools with its Wizard form. Generic and clean solution, already out of the box it supports the creation of ConfigEntity, that is really helpful for the objects that have complex structures, like entity browser entity. But there is still no straitforward way of making multistep form for content entity.

2. Forms Steps module https://www.drupal.org/project/forms_steps . Good and generic approach, works great for both config and content entities.

3. Workflow based solutions like checkout in Commerce 2. It is also possible to include any form you need inside subforms (panes in terms of the contrib module terminology).

4. Many others ....

 

In this session I would like to make an overview of use cases which demand installation wizards and the ways to implement them. Of course this will not make developer's life easier, but it could potentially attract new users to Drupal, because nowadays our beloved CMS is getting more and more away from a real customer towards Enterprise only.