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.