Last updated by thedrupalkid on Tue, 2020-03-17 04:22
NOTE: Please preview this wiki before submitting the edit form. Some edits seem to break the wiki, so you MUST click on preview before hitting SAVE.
Welcome to Drupal's wiki organizing project ideas for Google's Summer of Code 2020. Please utilize this wiki to document project ideas and list yourself as a potential student or mentor. Find us on Slack at #drupal-google if you want to chat.
Edit this wiki and add your project ideas. If you want to mentor a task, add your name. If you DON'T want to be a mentor, leave the field blank as other mentors might be interested if a project is selected.
How to think of tasks?
- Drupal 8 is here! There is TONS work to be done!
- Review current projects being ported to Drupal 8 @ https://contribkanban.com/board/contrib_tracker
- Have a module you wish was ready for Drupal 8?
- Maintain a module and need help taking it to the next level?
- Have you ever said "Drupal can't do that?"
- Tasks from previous years/organizations are listed at legacy summer of code websites.
- Projects from previous Drupal GSoC: 2019, 2018, 2017, 2016, 2015, 2014, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005
Guidelines
Anyone with a drupal.org account is allowed to post ideas into this wiki. Even if the idea is basic or not complete, please add whatever you have. Additional mentors are available if project idea is accepted. Students are encouraged to contact the project author via their drupal.org contact page.
Information for Students
Read the GSoC Students Guide to get started. Drupal Ladder for GSoC Students and (for GCI Students) are great places for students and mentors to understand the type of skills expected to go into any type of task/project. Students are required to finish the entire "GSoC Student Ladder" to officially submit their project application.
Information for Mentors
GSoC Mentor Guide is best place to learn from a Google contest point of view and stepping through the Drupal Ladder for GSoC Mentors provides helpful resources on being a Drupal mentor. Feel free to comment in this group with any questions.
Copy/paste the template below to bottom of content in this wiki. Enter your idea and be careful with revisions as this may be a popular node to edit.
=================================
Project Name: NAME OF MODULE
Project Mentors: d.o user names to open contact
Project Difficulty: INTERMEDIATE/DIFFICULT
Project Skills/Prerequisite: STUFF LIKE PHP, SYMFONY, SQL, CMS
Project Description: DESCRIPTION OF PROJECT?/IDEA
Project Goal: WHAT IS PROJECT ACCOMPLISHING AND WHAT WILL BE THE FINAL DELIVERABLE?
Project Resources: This is place for student to find resources/links and direction on how to research the task. Example, is this a specific type of module related to Commerce in Drupal 8? Should the student join any groups on gdo, dig through mailing list archives, or search specific issue queues? If this is a module port, maybe you can list links of previous modules accomplishing similar functionality or structure.
=================================
Project Name: Improve Social API and create implementers
Project Mentors: MaskyS ( https://www.drupal.org/u/kifah-meeran ), gvso ( https://www.drupal.org/u/gvso ), Slurpee ( https://www.drupal.org/u/slurpee )
Project Difficulty: INTERMEDIATE/DIFFICULT
Project Skills/Prerequisite: PHP, Drupal, API, Understanding how OAuth2 works
Project Description: The Social API harmonizes authentication with external services in Drupal, providing an extensible module that allows integration of modules for user authentication, autoposting, and any tasks that require authentication with external providers. A considerable chunk of the work has already been done by 2 previous GSoC students. However, we still have a few more things remaining in the roadmap.
Project Goal: The student will need to:
Basic Requirements
- Add unit testing to the existing Social API/Auth/Post and implementers.
- The APIs have changed a lot in the past and some implementers do no longer work. You need to update them.
- For each implementer, update existing documentation and create new docs where lacking
- Update current Social Post implementers and create at least 3 new ones.
Bonus Requirements
- The initial Social API project included Widgets, but it was discontinued mainly because there were not enough people working on its development. Part of your job is to research the viability of the project, and how it can be implemented if viable. This might also require you to start implementing your recommendations.
- We need to see how the management UI can be improved. For example, what happens if the site manager has 20 implementers installed? How to delete them easily? Can we provide different styles for the login block?
- Research and conduct user/penetration testing. Are there any potential security loopholes that have passed unnoticed? Is any implementer vulnerable to CSRF?
Project Resources: Social API project page: https://www.drupal.org/project/social_api Social Initiative drupal group: https://groups.drupal.org/social-initiative Social API examples: https://github.com/drupalsocialinitiative/social_api_examples
=================================
Project Name: Port dRealty module to Drupal 8
Project Mentors: Slurpee ( https://www.drupal.org/u/slurpee ) Lee ( https://www.drupal.org/u/lee )
Project Difficulty: INTERMEDIATE/DIFFICULT
Project Skills/Prerequisite: PHP, Real Estate, MLS, Data Import, module port
Project Description: The Drupal RETS Real Estate Framework (dRealty) enables administrator-developers to get real estate data via RETS and maintain a copy of that data in Drupal. dRealty is focused on that one-way data flow, and it does not include a user interface beyond administrative and configuration pages.
Almost everyone has seen a website with real estate data listing houses for sale/rent. All of this data is available via RETS (Real Estate Technology Standard) which pulls data directly from MLS. This module already works in Drupal 7, but it is not perfect. A potential student can easily get started working with the Drupal 7 version and fixing bugs @ https://www.drupal.org/project/issues/drealty?categories=All
Project Goal: Port the dRealty module to Drupal 8. Have a working website in Drupal 8 demoing listings of real estate data via RETS.
Project Resources: Module page: https://www.drupal.org/project/drealty. Page discussing "roadmap of porting module to Drupal 8" @ https://www.drupal.org/project/drealty/issues/2540214 -- but there is not much activity there. Contact mentor Slurpee directly to discuss this project. If truly interested in the project, you'll need access to a RETS server to pull in data. Slurpee can provide access to a Drupal 7 version with modules working already pulling in RETS data. The student then needs to create a project plan to port module into Drupal 8. Slurpee has a good amount of experience with the module and will be able to help answer questions as well as build project plan.
=================================
Project Name: Add diff feature to Webprofiler
Project Mentors: lussoluca ( https://www.drupal.org/u/lussoluca )
Project Difficulty: DIFFICULT
Project Skills/Prerequisite: PHP, Symfony, Drupal, Javascript
Project Description: the Webprofiler module (part of Devel module) is the Drupal version of the Symfony Full Stack profiler bundle. It collects a lot of performance data for every single Drupal page and store them in database or filesystem. It would be very useful to compare the data between two different page or the data of the same page before and after that a patch is applied or a new module is installed.
Project Goal: Deliver a new Drupal 8 module that implements the diff of some key metrics (time, memory, service/event calls, twig file rendered, ...) using different visual representation like tables, charts, ...
Project Resources: https://www.drupal.org/project/devel
=================================
Project Name: Integrate Webprofiler with XHProf
Project Mentors: lussoluca ( https://www.drupal.org/u/lussoluca )
Project Difficulty: DIFFICULT
Project Skills/Prerequisite: PHP, Symfony, Drupal, Javascript
Project Description: the Webprofiler module (part of Devel module) is the Drupal version of the Symfony Full Stack profiler bundle. It collects a lot of performance data for every single Drupal page and store them in database or filesystem. The XHProf module on the other hand collects low level PHP data, such function calls, CPU and memory usage at function level and so on. It would be very useful to integrate those two dataset to provide more information to developers about possible bottlenecks.
Project Goal: Deliver a new Drupal 8 module that use the data from XHProf to enrich data collected by Webprofiler. For example Webprofiler collects data about rendered views, if we know that the Views module calls certain functions we can extrapolate very precise information about memory and CPU usage of Views itself.
Project Resources: https://www.drupal.org/project/devel https://www.drupal.org/project/xhprof
=================================
Project Name: WebAuthn
Project Mentors: skyredwang, d70rr3s, geek-merlin
Project Difficulty: INTERMEDIATE
Project Skills/Prerequisite: PHP, Public Key Cryptography, WebAuthn protocol
Project Description: Allows Drupal to integrate with the strong authenticators now built into devices, like Windows Hello or Apple’s Touch ID. Instead of a password, a private-public keypair (known as a credential) is created for Drupal websites. Therefore, Drupal websites users can use this password-less authentication service.
Project Goal: Complete the WebAuthn module, and meet the security and UX requirements of WebAuthn protocol.
Project Resources: webauthn.guide
=================================
Project Name: Improve Elementor Module & add new features
Project Mentors: dbjpanda, liorkesos
Project Difficulty: INTERMEDIATE
Project Skills/Prerequisite: PHP, Javascript, Backbone.js
Project Description: Elementor is a page builder plugin that replaces the basic editor with a live frontend editor, so you can create complex layouts visually, and design your website live, without having to switch between the editor and the preview mode. Elementor was intially built on Wordpress by Elementor community and became very popular within short span. It has now more than 1 Million downloads in Wordpress. Later on, it was ported to Drupal 8 brining many of its capabilities to Drupal. But the module still lacks some major capabilites like templating, popup builder, Form widget and other dynamic features in Drupal.
Project Goal: Help completing Elementor module, fix major issues and add 3 new features
Project Resources: Elementor Documentation Guide
=================================
Project Name: Websockets (Ratchet)
Project Mentors: smccabe
Project Difficulty: Difficult
Project Skills/Prerequisite: PHP and some JS, websocket experience not required
Project Description: Expose Drupal API calls via websocket as an alternative to http connections to the API, good for when you need push/pull interactions. This can be great for chats, dashboards and other frequently updating items. We use a prototype example in Commerce POS for a live checkout display. The goal of this project would be to make a more generic framework module that can be a base for using websocket functionality for any use case. It will use the ratchet server as a backend.
Project Goal: A working prototype of a Drupal WebSocket framework with authentication, which can be tagged as an alpha release. If we get farther along that will be great, but this is an ambitious project.
Project Resources:
- Module placeholder: https://www.drupal.org/project/ratchet
- Working example: https://www.drupal.org/project/commerce_pos
- Other old partially done attempts: https://www.drupal.org/project/websocket and https://www.drupal.org/project/websockets
- WebSocket API Spec: https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API
- Ratchet PHP WebSocket Server: http://socketo.me/
- Related Blog Post: https://blog.acromedia.com/drupal-with-websockets-for-real-time-synced-d...
=================================
Project Name: Commerce Fraud
Project Mentors: smccabe
Project Difficulty: Easy/Intermediate
Project Skills/Prerequisite: PHP, some e-commerce experience would be helpful
Project Description: Commerce Fraud applies various rules to come up with a fraud score for an order to determine how likely it is to be fraudulent.
Project Goal: It has a beta version for Drupal 7 and we want it ported to Drupal 8/9 with a Release Candidate level release.
Project Resources:
- Module: https://www.drupal.org/project/commerce_fraud
- Overview Video: https://www.youtube.com/watch?v=ZmywTptHihs
- General Commerce Documentation: https://docs.drupalcommerce.org/commerce2
=================================
Project Name: Unomi
Project Mentors: Nick_vh
Project Difficulty: INTERMEDIATE/DIFFICULT
Project Skills/Prerequisite: PHP, JS, Cookies, GDPR, Tag Manager, Optional but useful: Elastic Search, Java
Project Description: Build out the ecosystem to make Drupal and Apache Unomi a great combination in order to deliver personalised experiences natively with Open Source.
Project Goal: Being able to set up Drupal 8 and Apache Unomi in an easy way so that Drupal can be configured to deliver personalised experiences out of the box using the segment system of Apache Unomi.
Primary goal would be to be able to create rules in Drupal itself so it becomes a self-sustaining ecosystem. Right now the solutions that are delivered by Dropsolid or Jahia don't offer an UI for Unomi in the CMS itself but expose them in a closed frontend.
Secondary goal would be to allow Apache Unomi to work as Consent Management and be able to see the whole content of your profile in Drupal to deliver extreme transparency in function of the GDPR law..
Project Resources:
- Module: https://www.drupal.org/project/unomi -> The base module already exists. Needs a lot of work to work out of the box and is missing documentation + plugins with most of the ecosystem in Drupal, eg Views, Rules, Commerce, etc...
- PHP Library: https://gitlab.com/dropsolid/unomi-sdk-php -> The PHP library only supports segments of Apache Unomi for now.
- JS Library: https://www.npmjs.com/package/unomi-sdk-node -> The JS library supports many endpoints of Apache Unomi
- General Apache Unomi Documentation: https://unomi.apache.org/
=================================
Project Name: Affiliates Connect
Project Mentors: ankitjain28may, thedrupalkid
Project Difficulty: INTERMEDIATE
Project Skills/Prerequisite: PHP, Javascript, Node.js, Docker
Project Description: "Affiliates Connect" module provides an interface to easily integrate with various affiliate APIs or product advertising APIs provided by different eCommerce platforms like Flipkart, Amazon, eBay etc to fetch data easily from their stores and display those to monetize your website by advertising their products.
The module allows the developers to extend its functionality by providing different plugins to it. e.g affiliates_connect_amazon helps a publisher to integrate Amazon product advertising API with Drupal. Similarly, affiliates_connect_flipkart helps to integrate with Flipkart product advertising API. Apart from it, the module will be providing a fallback scraper API to fetch data in case there is no API provided by an eCommerce site.
Project Goal: Help completing Affiliates Connect module. There are a lot of features that have been added but not merged, test them out and make them merged in the module. Lots of moving components like Affiliates Connect Flipkart, eBay, Amazon, Scraper API and lot, Fix them so everything can work. Add some new features as well as the rotation of IPs while scraping data, analytics graphs and all.
Deliver a stable version of the module with all features merged for Drupal 8 + Documentation and Distribution
Project Resources:
- Module: https://www.drupal.org/project/affiliates_connect -> The base module already exists with Amazon plugin
- Affiliates Connect Flipkart: https://www.drupal.org/project/affiliates_connect_flipkart
- Affiliates Connect Ebay: https://www.drupal.org/project/affiliates_connect_ebay
- Feeds Advance Crawler: https://www.drupal.org/project/feeds_advance_crawler
=================================
Comments
/
/