Google Summer of Code Project Ideas 2023
These are project ideas proposed for Plone's participation in Google Summer of Code 2023. 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.
The GSoC contributor application period is now open and will last until the 4th of April.
If you want to apply and you have questions, please use exclusively the community forum. DO NOT USE:
- direct emails to mentors
- GitHub issue tracker
Thank you!
Modernize Data Fetching API
Modernize the data fetching story in Volto by deprecating AsyncConnect
library and moving the Server State handling to TanStack Query. As a result, provide an agnostic library of actions called @plone/client
that could be reused not only in Volto but in other React frameworks or JS apps. It will be the standard de-facto plone.restapi
React client for Plone.
More information: https://github.com/plone/volto/issues/4347
Skills: React, Plone
Possible mentors: Víctor Fernández de Alba
Expected size of project: 350 hours
Difficulty : hard
Improve drag & drop support in the blocks engine
Refactor the current Volto drag and drop infrastructure and components to use dnd-kit (https://dndkit.com/) library. Extend the feature set to being able to support move blocks between the main blocks stream and block containers (row/grid block, group block, etc).
More Information: https://github.com/plone/volto/issues/4204
Skills: React, Plone
Possible mentors: Víctor Fernández de Alba
Expected size of project: 250 hours
Difficulty : medium
Improve add/select/modify link widget
Improve the overall UX for the "add a link to a internal content or external URL". We already have one AddLinkForm
that we use in a couple of scenarios to link content (in Slate editor and in the Image block and component alike. The idea is to improve and unify the experience across all the elements that has this interaction.
We have an UX proposal since this is a well known and used UX pattern that is well accepted and present in Google products, Confluence, WP, etc...
More information: https://github.com/plone/volto/issues/4303
Skills: React, Plone
Possible mentors: Víctor Fernández de Alba
Expected size of project: 350 hours
Difficulty : medium
Refactor class components to functional components
Volto still have a number of core components that are React class-based components. This prevents the use of hooks in them, and newest DX on them. The idea is also while moving to them, use hooks to abstract the functionality present in Redux and in data fetching.
More information: https://github.com/plone/volto/issues/4460
Skills: React, Plone
Possible mentors: Víctor Fernández de Alba, Jeff Bledsoe, Nilesh Gulia
Expected size of project: 350 hours
Difficulty : medium
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 (canceled)
Implement a new delete action which moves contents to a recycle bin, so that users can restore deleted items if needed. Note: the backend has been implemented during GSoC 2022, we now need to implement the Volto part of the feature.
Skills: React, Plone
Expected size of project: 350 hours
Difficulty : hard
Use Nuclia search across all Plone properties
Index plone.org, docs.plone.org and training.plone.org contents in a Nuclia knowledge box so people can easily find information about Plone wherever it is located.
Note: a Nuclia knowledge box already indexes all the Plone YouTube videos, the same knowledge box can be used to index these web contents.
Skills: Python, Plone
Possible mentors: Steve Piercy, Eric Bréhault
Expected size of project: 350 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, Jakob Kahl
Expected size of project: 175 hours
Difficulty : medium
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 or editing groups.
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
Slug based linked headlines in volto-slate (canceled)
Add a anchor link target to headings (h1,h2,h3,h4) in volto-slate. We often came across situations where we might want to direct a user to specific section/heading (h1,h2,h3,h4) in a page. We need an ability to create those anchors links within headings written in volto-slate.
More information: https://github.com/plone/volto/issues/4298
Skills: React, Plone
Possible mentors: Víctor Fernández de Alba
Expected size of project: 350 hours
Difficulty : medium