Google Summer of Code Project Ideas 2024

Project Ideas are proposed by Mentors from the Plone organization. Potential contributors never propose ideas. If the Plone organization is accepted to participate in GSoC on February 21, 2024, then potential contributors may discuss application ideas with Mentors in the Community Forum. See the Google Summer of Code 2024 Timeline.

Plone Google Summer of Code guidelines

The Plone Foundation has been a mentoring organization for the Google Summer of Code program for many years. It is great to have students working on Plone and related projects during the summer, it has brought many new contributors to the community.

Since a few years ago, the number of candidates has been significantly growing, and we are very happy about that. However, the amount of candidates is not easy to manage for us as a community.

We want to list here some dos and don'ts for the GSoC candidates, to help them to get started with Plone and to help us to manage the amount of candidates.

Do learn about Plone

Plone is a complex system, and it is not easy to get started with it. We expect that you have started to learn about Plone before applying.

The best way to learn about Plone is to follow our online trainings and our documentation.

Don't create issues, pull requests, or comments in GitHub

GitHub is used by contributors who use Plone for their work. GitHub is not a place for GSoC candidates to ask for guidance, help, or support. GSoC candidates should not create pull requests, issues, or comments that do not follow our contributing guidelines. In fact, doing so may result in you getting suspended or banned from the Plone GitHub organization. It also may hurt your chances of being selected to participate in GSoC.

Do introduce yourself to the community

Introduce yourself to our community by starting a new post or joining a conversation here in the community forum.

You can ask questions about Plone, and more importantly, you can discuss the GSoC projects on their dedicated threads. You can ask questions about the projects, and you can propose your own ideas.

Don't be disrespectful

Candidates must treat other developers and GSOC mentors with respect, both in text and communication. And also respect their limited time that they make available to our project and cause. If you don't receive an answer from a Team Lead, other developer or Release Manager, it is considered impolite to start pinging them in comments every day for an answer. Pinging 4 or 5 other developers because you didn't get an answer is considered rude as well.

Do focus on your application

What will make the real difference between candidates is the quality of their application, not the amount of GitHub issues they have commented on.

Make your application stand out by showing that you have learned about Plone and that you have a good understanding of the project you are applying for.

The GSoC contributor application period will start on March 18, 2024.

Thank you!

Ideas

Note: This is a draft list, the ideas listed here will be refined and detailed in the coming days, and we might add new ones too.

Allow reliable large uploads in Volto using TUS

Skills: React (mostly), plus a bit of Plone and Python

  • Implement TUS in volto for "contents > upload" with a UI similar to quanta design (inc progress bars)
  • Implement TUS uploads when editing files, ie TUS support for any dexterrity content type with file fields and for images/videos fields in blocks
  • Simplify new file object creation UI by replacing "Add > File" with "Add > Upload files" (as per quanta design)
  • Add a default mode for TUS via restapi that doesn't require a shared temp folder so we can have only one way of uploading

More information: https://github.com/plone/volto/issues/5423

Size: 175

Rating: intermediate

Possible mentors: Dylan Jay, Jeff Bledsoe

Expected outcome: a working Plone add-on implementing the feature, with tests and documentation.

RSS support in Plone 6

Skills: React (mostly), plus a bit of Plone and Python

The objective is to let the user add an external RSS feed in Plone, and vice versa, expose Plone contents as a RSS feed. Plone already offer a Collection content type, allowing the user to define criteria to list other pieces of contents and sort them (possibly according their publication date), hence a collection could be an handy way to define an RSS feed if its content can be turned into the RSS format.

Size: 175

Rating: intermediate

Possible mentor: Paul Roeland, Mike Metcalfe, Nilesh Gulia

Expected outcome: a working Plone add-on implementing the feature, with tests and documentation.

Decoupled editor for Plone headless

Skills: React

Build a decoupled editor for Plone headless (i.e. the ability to use Plone RESTAPI as a CMS service and use any frontend technology to render the resulting website). It would be taking most of Volto using it as an admin UI only and changing how the preview of the edited page in the middle works from an IFrame instead.

More information: https://github.com/plone/volto/issues/5767

Size: 350

Rating: hard

Possible mentors: Dylan Jay, Jeff Bledsoe

Expected outcome: a working proof of concept.

Volto/Plone SAML2 authentication support out of the box

Skills: React, Plone, Python

The objective of this project is to build a configuration page allowing the user to set up their SAML2 parameters, and a login page implementing the SAML2 authentication flow.

Size: 175

Rating: hard

Possible mentor: to be defined

Expected outcome: a working Plone add-on implementing the feature, with tests and documentation.

Multi-columns row with drag-n-drop support between row and columns

Skills: React

Volto already provides drag-n-drop between regular rows, the objective of this project is to implement drag-n-drop inside a multi-columns row.

Size: 175

Rating: intermediate

Possible mentor: Rafael Nunez

Expected outcome: a working Plone add-on implementing the feature, with tests and documentation.

AI/ChatGPT image description/alt text generator

Skills: React, Plone, Python

Size: 90

Rating: easy

Possible mentor: Rafael Nunez

Expected outcome: a working Plone add-on implementing the feature, with tests and documentation.

AI/ChatGPT content generation from title and summary

Skills: React, Plone, Python

Size: 90

Rating: easy

Possible mentor: Rafael Nunez

Expected outcome: a working Plone add-on implementing the feature, with tests and documentation.