Ideas for Google Summer Of Code 2017

Some ideas:

improvements in how Plone shows available themes from a central theme repository (e.g. on plone.org) in a site and lets an admin install themes directly from that gallery

Summary: out of the box Plone should make it easy for an admin to install new themes

Implementation: the theming control panel should be enhanced to include a gallery of compatible Plone themes retrieved from a central theme gallery possibly on Plone.org. Each theme in the gallery should be displayed using a preview image, description the theme (Plone version compatibility, responsiveness, author, last modified date, license/fee) and an "Install" button. Clicking the Install button causes the theme's zip file to be uploaded to the Plone site the same way the "Upload Zip" button works in the theming control panel. Will require collaborating on the design and implementation of the Plone.org theme gallery.

Skills: Python, design, HTML, CSS, collaboration

Mentors:

Aims: initially a new add-on (e.g. collective.themeinstaller), eventually a PLIP

new Plone 5 themes

Summary: Diazo allows us to use HTML and Javascript mockups as themes relatively easily. We currently have very few good quality examples. This project would be to create HTML/JS themes for Plone which can later be converted to Diazo themes.

Implementation: This requires a series of zip files that contain working single-page HTML mockups that demonstrate the core Plone features. They should have support for portlets, a navigation bar, logo, etc. Preferably these themes would have different colourways available, through compilation of LESS/SASS, as well as different styles for customers in different industries. See also http://docs.diazo.org/en/latest/

Skills: Javascript and HTML. No Python or Plone knowledge needed.

Mentors:

Aims: Three or more themes to be packaged with the Unified Installer or added to the coming Plone.org installable theme gallery.

a theme converter, that can take HTML/CSS themes built for (say) WordPress and turn them into Diazo Plone themes

Summary: Plone's Diazo theming engine makes it much easier to apply pre-built themes (Wordpress, Themeforest) but it still requires manual labour. A conversion tool that can map common Plone content elements into Wordpress or Themeforest themes would make it even easier.

Implementation: Select a set of Wordpress or Themeforest themes with commonalities, and write Python software that generates rules.xml to map Plone content into those common theme elements. The input would be the Wordpress or Themeforest theme files (possibly in zip form), and the output would be a Plone Diazo ZIP file. An intermediate component may be needed to assist in mapping content to theme elements, so at least some kind of user interaction, if not full blown GUI, might be needed.

Skills: Python, XSLT, HTML, CSS

Mentors:

Aims: an installable (via pip or buildout) theme mapping tool

a responsive compliance theme checker

Summary: the built in Barceloneta theme for Plone 5 is responsive, but changes to the theme or new themes applied to Plone can result in reduced responsiveness. Plone needs a tool to identify non-responsive theme elements.

Implementation: identify responsive analysis services or software, allow invocation on a per-item or entire-site basis, and package them as a built in Plone tool or perhaps as a standalone tool.

Skills: Python, HTML, CSS, Plone

Mentors:

Aims: a Plone add-on or an installable tool (via pip / buildout)

a built-in accessibility compliance checker

Summary: Out of the box, Plone 5 is WCAG 2.0 AA compliant. However, any changes to a theme, or any new theme applied to Plone can result in reduced compliance levels (sometimes severely so). Plone needs a tool to verify the accessibility compliance of one or more content items (even an entire site) that identifies accessibility issues.

Implementation: identify viable external accessibility compliance services or software, allow invocation on a per-item or entire-site basis, and package them as a built in Plone tool or perhaps as a standalone tool.

Skills: Python, HTML, CSS, Plone

Mentors:

Aims: a Plone add-on or an installable tool (via pip / buildout)

upgrade Plumi or components of Plumi to Plone 5 (ie. make a "private YouTube" distribution of Plone 5)

Summary: plumi.org is a private YouTube distribution based on Plone 4. Upgrade it to work with Plone 5.

Implementation: decide which Plumi components need to be upgraded to Plone 5; some of them may not be needed if there is an equivalent in Plone 5. Migrate Archetypes to Dexterity. Integrate Mosaic. Replace Plumi components with available new add-ons.

Skills: Python, Plone

Mentors: Anna Helme @ plumi.org

Aims: a new Plumi 5 distribution of Plone

an add-on to integrate SugarCRM with Plone

Summary: Implement a CRM (customer/client relationship management) add-on for Plone by integrating Plone with SugarCRM

Implementation: Identify ways in which SugarCRM data can be viewed, created, edited, deleted from Plone; identify ways in which SugarCRM actions can be initiated from within Plone; create shared PAS authentication plugin so Plone and SugarCRM can share users, groups, and permissions.

Skills: Python, Plone

Mentors:

Aims: a Plone add-on that integrates SugarCRM; ideally a full standalone distribution of Plone via Ansible Playbook that installs a working integrated Plone/SugarCRM system

an add-on to integrate Odoo (CRM) with Plone

Summary: Implement a CRM (customer/client relationship management) add-on for Plone by integrating Plone with Odoo

Implementation: Identify ways in which Odoo data can be viewed, created, edited, deleted from Plone; identify ways in which Odoo actions can be initiated from within Plone; create shared PAS authentication plugin so Plone and Odoo can share users, groups, and permissions.

Skills: Python, Plone

Mentors:

Aims: a Plone add-on that integrates Odoo; ideally a full standalone distribution of Plone via Ansible Playbook that installs a working integrated Plone/Odoo system

an e-commerce add-on for Plone (bda.plone.shop enhancements?)

Summary: Create a Plone shopping add-on or help improve https://github.com/bluedynamics/bda.plone.shop

Implementation: identify possible enhancements to https://github.com/bluedynamics/bda.plone.shop in collaboration with maintainers. Analyze other shopping cart systems (e.g. Shopify) and identify features that could be included in bda.plone.shop. Possibly build a Shopify integration for Plone.

Skills: Python, Plone

Mentors:

Aims: create a nicely featured Plone shopping cart add-on with future maintainability.

drop-in authentication for Facebook and Twitter logins for Plone (may already be done)

Summary: almost everyone uses Facebook and/or Twitter; Plone should come ready to enable Facebook and Twitter logins

Implementation: check which existing PAS plugins work with Facebook and/or Twitter; enhance as needed (e.g. new control panel options)

Skills: Plone, Pluggable Authentication System (PAS), Facebook/Twitter authentication

Mentors:

Aims: PLIP so Plone ships with Facebook/Twitter logins

an add-on listing for Plone (see @Alexander_Loechel's work so far on https://github.com/plone/ploneorg.addonlisting)

Summary: make an improved add-on listing gallery for Plone.org

Implementation: complete https://github.com/plone/ploneorg.addonlisting and possibly extend with voting/commenting

Skills: Python, Plone, usability, HTML/CSS

Mentors:

Aims: make it easy for Plone.org visitors to view all Plone add-ons and sort by rating/recommendation

an add-on for theme galleries for Plone.org

Summary: make a gallery for Plone.org of installable Plone themes

Implementation: allow Plone.org to store installable themes or to store "links" to installable themes (e.g. on GitHub), along with preview images, creator/maintainer contact information, links to related themes, categorized themes. Make it look like Wordpress or Themeforest's theme galleries, or like the iOS App Store. Collaborate with the Plone theming control panel enhancement that will let Plone sites display the contents of this theme gallery.

Skills: Python, HTML, CSS, usability

Mentors:

Aims: create and deploy the central Plone.org theme repository that can be used by people and Plone sites.

a custom bridge between IRC, Slack, and Gitter

Summary: Plone uses primarily three chat services. We would like to have a bridge service similar to sameroom.io that synchronizes messages across all three services.

Implementation: We currently have the use of a few sameroom.io bridges free of charge, but the way that messages appear on services other than the originating one is suboptimal. e.g. a Gitter message bridged to IRC looks like [tkimnguyen (tkimnguyen)] the message goes here

Skills: Python, IRC, Slack, Gitter, API

Mentors:

Aims: create a cleaner, free bridging service for Plone that works better with each chat service

integration of Plone with Discourse forums

Summary: Implement a discussion forum add-on for Plone by integrating Plone with Discourse

Implementation: Identify ways in which Discourse data can be viewed, created, edited, deleted from Plone; identify ways in which Discourse actions can be initiated from within Plone; create shared PAS authentication plugin so Plone and Discourse can share users, groups, and permissions.

Skills: Python, Plone

Mentors:

Aims: a Plone add-on that integrates Discourse; ideally a full standalone distribution of Plone via Ansible Playbook that installs a working integrated Plone/Discourse system

enhancements to Quaive.com social intranet

Summary: enhance Quaive in collaboration with Quaive maintainers

Implementation:

Skills:

Mentors:

Aims:

add-on for Plone that alerts site admins that their site has available upgrades (for Plone core, for add-ons, for security fixes)

Summary: Improve the quality and security of all Plone sites by alerting site administrators in the Plone UI if their version of Plone is out of date, or has available security fixes, or if their add-ons have available version upgrades.

Implementation:

Skills: Plone, usability

Mentors:

Aims: Make it obvious and easy for Plone site administrators to stay aware of desirable and critical software upgrades.

an add-on integrating Plone with MailChimp

Summary: Implement a mailing list add-on for Plone by integrating Plone with MailChimp

Implementation: Identify ways in which MailChimp data can be viewed, created, edited, deleted from Plone; identify ways in which MailChimp actions can be initiated from within Plone; create shared PAS authentication plugin so Plone and MailChimp can share users, groups, and permissions.

Skills: Python, Plone

Mentors:

Aims: a Plone add-on that integrates MailChimp; ideally a full standalone distribution of Plone via Ansible Playbook that installs a working integrated Plone/MailChimp system