Google Summer of Code Project Ideas 2022
Ideas for GSoC student projects for Plone in 2022.
These are project ideas proposed for Plone's participation in Google Summer of Code 2022. Student interested in working on these are encouraged to apply for the program.
Note, most projects do not require the candidate to know Plone already, but we do expect applicants to have started to learn about Plone before applying. The specific technologies required for each project are listed in the details for the idea.
Prospective students should follow our ideas for getting started before writing up their proposal:
- Introduce yourself to our community by starting a new post or joining a conversation here in the community forum
- Download and install Plone and make a simple website
- Read our training and our documentation to learn about how Plone works, and how to contribute
As a GSoC applicant, please direct your questions to the community forum. Do not use any other contact method, as doing so may harm your chances of acceptance into the program by demonstrating your unwillingness to follow instructions.
Bulk editing
Plone should offer content editors the possibility to change data or perform actions for multiple content items at once. Therefor editors should be able to create a selection of affected content items based on a global search with filter options. It should be possible to adjust common metadata and field information, perform various actions like workflow change, copy or move to a new location and change the underlying content type. Editors should be guided through the process in a multi step dialog, depending on the performed action. A confirmation with preview of the adjusted data is mandatory. It is important to take the user’s permissions into account, to only allow changes and actions on the content items the current user is allowed to.
This new feature should be implemented for Plone Classic with a clean API and usage of Plone’s RESTful API to allow adaption for Plone’s new React-based frontend Volto.
Skills: Python, Plone
Possible mentor: Thomas Massmann
Expected size of project: 350 hours
Difficulty : hard
Add WebAuthn 2 support for Plone
WebAuthn would allow to support passwordless authentication to Plone using either external hardware keys like a Yubi key or using biometric methods build-in into our own devices like Face ID or Touch ID. Almost all modern browsers support the W3C standard WebAuthn. There are variations on the level of support for build-in biometric methods. On Mac, you can use Touch ID with Chrome and Safari, but not with Firefox. On iOS, you can use Face ID across browsers.
Skills: Python, Plone
Possible mentor: Andreas Jung
Expected size of project: 350 hours
Difficulty : hard
Recycle bin
Implement a new delete action which moves contents to a recycle bin, so that users can restore deleted items if needed.
Skills: Python, Plone
Possible mentors: T. Kim Nguyen, Mike Metcalfe
Expected size of project: 350 hours
Difficulty : hard
Create a new Volto theme
Implement a new generic and reusable theme for Volto.
Note: Volto is the React-based UI built on top of the Plone REST API.
Skills: React, CSS, Plone
Possible mentor: T. Kim Nguyen
Expected size of project: 350 hours
Difficulty : medium
Create a new Plone classic theme
Implement a new generic and reusable theme for Plone classic.
Note: Plone classic theming is done by creating a Python package containing CSS and Jinga2 templates.
Skills: Python, templating, CSS, Plone
Possible mentor: T. Kim Nguyen
Expected size of project: 350 hours
Difficulty : medium
Export and import really easy for mortals
Allow to export all or a subset of contents from one Plone site and import them back in another one.
Skills: Python, Plone
Possible mentors: T. Kim Nguyen, Mike Metcalfe
Expected size of project: 350 hours
Difficulty : hard
Undo Control Panel
The undo control panel is currently hidden in the Zope Management Interface (ZMI). The idea here is to add a new “undo control panel” that lists all the entries of the ZMI listing and make it filterable by user/date/path.
Skills: Python, React, Plone
Possible mentor: Rob Gietema
Expected size of project: 175 hours
Difficulty : medium
Locking Control Panel
The Zope Management Interface (ZMI) provides a view to search for locks and release locks on objects under "Control_Panel/DavLocks/manage_workspace". This is a useful feature that we could expose via restapi and Volto (as control panel).
Skills: Python, React, Plone
Possible mentor: Rob Gietema
Expected size of project: 175 hours
Difficulty : medium
Redirector Control Panel
The plone.app.redirector packages knows where your content used to be and can bring you to its new location when content moves. For Volto we would like to have a control panel where we can manage these redirects.
Skills: Python, React, Plone
Possible mentor: Rob Gietema
Expected size of project: 175 hours
Difficulty : medium
Relations Control Panel
In the classic Plone interface we have a control panel to show relations. The goal of this project is to implement this functionality in Volto.
Skills: Python, React, Plone
Possible mentor: Rob Gietema
Expected size of project: 350 hours
Difficulty : medium
Workflow Manager
One of Plone’s strongest selling points is it’s workflow. The backend provides a well thought out and implemented workflow system. The goal of this project is to implement a front-end to manage these workflows. The idea is that you can drag and drop workflow schema’s and edit the transitions and permissions.
Skills: Python, React, Plone
Possible mentors: Rob Gietema
Expected size of project: 350 hours
Difficulty : hard
Content Rules
The classic Plone interface provides functionality to add and edit content rules. Examples of these are “Send an e-mail when this item is modified”. This functionality is not yet implemented in Volto. The goal of this project is to implement this functionality and at the same time improve the UX.
Skills: Python, React, Plone
Possible mentor: Rob Gietema
Expected size of project: 350 hours
Difficulty : hard
User Management
Volto has basic user management implemented for Plone. You can create users and groups and assign roles but there are a lot of feature missing in the frontend like editing users and groups, assigning users to groups etc.
The goal of this project is to implement the missing features and redo the management screens.
Skills: React, Plone
Possible mentors: Rob Gietema
Expected size of the project: 175 hours
Difficulty: medium