Mautic applies for the Google Summer of Code 2021

We are excited to be applying as a hosting organisation for the Google Summer of Code 2021.

A long-standing programme which enables university students to spend their summer vacation contributing to Open Source projects, the Google Summer of Code is a great opportunity to welcome new contributors to our community and grow awareness of Mautic.

Here are some of the project ideas that we have collected from around the Mautic Community (note these may change over time):

Idea 1 - Interactive walk-through guide for new users of Mautic

We know that for new users of Mautic, it can be a bit confusing knowing how to get from installing the application to sending their first campaign. We would like to make this process easier by including an optional product tour, which would highlight the key steps that a new user would need to follow in order to send their first campaign.

This project would involve firstly identifying what those steps are by conducting some user research and following the steps yourself, and then working with the relevant teams to create a product tour. You will need to prepare the on-screen content and resources, and explore what library or tool to use in order to deliver the on-screen tour.

You will then need to implement the tour within Mautic, and make sure that the content is fully translatable (as Mautic is available in over 64 languages!), working with our local communities to have the content you write translated.

[Source: Install / Upgrade Initiative nice to have]

  • User Experience
  • Medium complexity

Mentor: Ruth Cheesley

Idea 2 - Campaign import and best practice collection

Getting started with Mautic can be a challenge if you are new to Marketing Automation.

As marketers, there are certain types of campaigns that we run all the time eg birthday campaign, double opt in, abandoned cart etc.

We would like to be able to offer a template gallery of pre-created campaigns that can be imported into the Campaign Builder.

This project will involve developing a front-end interface that allows users of Mautic to view a collection of pre-created campaigns and select them to import them into the Campaign Builder.

You will work with our community to determine the most common campaigns that marketers need to use, and create a ‘best practice’ template that can be used for at least two campaigns. These will be used in the interface that you create, allowing the user to view and select from a list of available templates, and have those added to the Campaign Builder ready to be customised.

[Source: Resource Management Initiative]

  • Core development
  • Hard complexity

Mentor: Alan Hartless / Mohammed Abu Musa

Idea 3 - Create a PR testing tool for the Mautic Documentation/KB/Community Handbook

Currently it is very difficult to test pull requests locally with the Documentation repository, as this contains only the user folder and requires the user to pull down the entire site which most are not able to do.

We have a PR testing tool for Mautic - Mautibox - which has really simplified the process of testing pull requests and hence sped up merging contributions. This runs on an Amazon stack - see the Github repo for more detail.

We would like to create a similar tool to test PR’s for our Grav-based documentation at docs.mautic.org and our other Grav tools at kb.mautic.org and contribute.mautic.org.

  • Infrastructure/Automation
  • Medium complexity

Mentor: Dennis Ameling

Idea 4 - Create plugin safety checker

In Mautic 4.0 we will be providing a new Marketplace which allows users to view and install plugins for Mautic from within the application, using Composer 2 'under the hood'. With the new marketplace we would like to have a tool that would scan for newly added or updated plugins, and run a health check on those.  This would ensure that any plugins we list should be safe to use.

Some of the checks that we would expect to be included are:

  • Does it use dangerous functions like eval or base64_encode
  • Does it use insecure dependencies (See List security advisories)
  • Does it push data to a 3rd party
  • Open issues/PRs
  • Run PHPSTAN to check for obvious errors that can be discovered by static code analysis
  • Lower the health score if the plugin doesn’t have any tests.
  • Try to install the plugin on different versions that should support and test that Mautic loads.

This would at least ensure that all PHP services are in a good place, that by installation the users won’t break their Mautic instance, and that the plugins have a basic level of good practice from the code standpoint.

The tool would also be able to add and remove the plugin or some of its versions to a deny list, which would prevent them from being available to install.

  • Core development
  • Medium complexity

Mentor: John Linhart

Our next steps are to wait to hear if we are accepted as an organisation, which we will know by the 9th March.  You can read more about how the Google Summer of Code works here.

This is a companion discussion topic for the original entry at https://www.mautic.org/blog/community/mautic-applies-google-summer-code-2021