Google Summer of Code 2018 - Task Organization Wiki

You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!

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 2018. Please utilize this wiki to document project ideas and list yourself as a potential student or mentor. Find us on Freenode 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. If you plan to mentor any projects this year, please add a short bio under the 'Interested Mentors' section of this wiki. We just require your name, timezone, languages spoken, and a short description of your involvement with Drupal. As we respect privacy, listing yourself here is not a requirement to participate.

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: 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

Melange's GSoC Mentor Guide is best place to learn from a contest point of view, stepping through the Drupal Ladder for GSoC Mentors provides helpful resources on being a mentor, or feel free to post in this group with any questions you have from a Drupal point of view.

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 Number:EXAMPLE

Project Name: NAME OF MODULE

Project Mentors: d.o user names to open contact

Project Difficulty: INTERMEDIATE/DIFFICULT

Project Skills/Prerequisite: STUFFLIKEPHPSYMFONYSQLCMS

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 Number:1

Project Name: Port Stock API module to Drupal 8

Project Mentors: tan33sh ( https://www.drupal.org/u/tan33sh )

Project Difficulty: INTERMEDIATE

Project Skills/Prerequisite: PHP, Symfony, Drupal 8.

Project Description: Stock API provides other modules with a facility to incorporate stock data in them. It receives market data from Yahoo! to display live stock market prices from various market exchanges. The module is already working in Drupal 7, but this GSoC project is to port the module into Drupal 8. Install the Drupal 7 version module, learn how it works, and write patches for bugs in the issue queue. Start contacting contributors already working on the module. Then build a plan to rebuild the module in Drupal 8. Which features will you migrate? Do you have any ideas on how to improve functionality? Contact mentors and discuss ideas to build project proposal.

Project Goal: Stock API to be ported to Drupal 8.

Project Resources: Review the module page at Stock API, read documentation, and become active in the issue queue. Test out the module's functionality via https://simplytest.me/ (input "Stock API" and click "Launch sandbox" to create a temporary Drupal site with module installed for testing functionality.

Interested Student :
Ahmed Ayman
Anmol Goel
Mohit Malik

=================================

=================================
Project Number:2

Project Name: Finish Port of oEmbed module to Drupal 8

Project Mentors: OPEN

Project Difficulty: INTERMEDIATE

Project Skills/Prerequisite: PHP, Symphony, Drupal 8, oEmbed

Project Description: the oEmbed module will allow your Drupal site to embed content from oEmbed-providers as well as for the site to become an oEmbed-provider itself so that other oEmbed-enabled websites can easily embed your content. This module is quite important, but it hasn't been ported to Drupal 8 yet. There is some work started, but much of it still remains.

Project Goal: Port the module completely to Drupal 8 and ensure the module has robust security measures.

Project Resources: Review the module's page @ https://www.drupal.org/project/oembed and read the documentation. Test the functionality of module by loading a temporary Drupal site with the module installed at simplytest.me. Each simplytest.me site is only online for 24 hours and is only for testing. Learn about module's functionality and build a plan to port module to our Drupal 8. Can you think of any additional functionality to include in GSoC project proposal?
Review the "official Drupal 8 port roadmap" for this module and join discussion with potential mentors @ https://www.drupal.org/node/2606484
https://oembed.com/

=================================

Interested Student :
Anmol Goel

=================================
Project Number:3

Project Name: Upgrade DBox to work with Drupal 8

Project Mentors: dashohoxha ( https://www.drupal.org/u/dashohoxha )

Project Difficulty: INTERMEDIATE

Project Skills/Prerequisite: bash scripting, installing Drupal8

Project Description: DrupalBox is a template Drupal project that can be used to seed (create) a new Drupal project quickly and easily. Upgrade DBox to work with Drupal 8.

Project Goal: Upgrade DBox scripts to install Drupal8 (instead of Drupal7).
The new project will contain:
*A Drupal profile.
*Makefiles for downloading the Drupal core, all the needed modules, libraries, patches, etc.
*Docker scripts for installing an Ubuntu server with all the packages and configurations needed for running a Drupal application.

Project Resources: This is not a typical "Drupal module project". This project is to write code to enable Drupal developers to easily create Drupal sites in a specific way. SimplyTest.me is a similar solution that gives Drupal developers the ability to easily test various modules and site is only available for 24 hours. These projects are similar but goal of GSoC project is to allow user to quickly deploy these quick sites for testing locally and for real development reasons (not just testing). The system currently works for Drupal 7 and the project/code lives @ https://github.com/docker-scripts/dbox - contact module maintainer via GitHub and build a project plan to get this working with Drupal 8 ( or via drupal.org @ https://www.drupal.org/u/dashohoxha ).

Interested Student :
Utkarsh Mishra
Anmol Goel

=================================

=================================
Project Number:4

Project Name: Improve Social API: Create Several Implementers for Auth, Post, and Widget

Project Mentors: MaskyS ( https://www.drupal.org/u/kifah-meeran ), gvso ( https://www.drupal.org/u/gvso ), Slurpee ( https://www.drupal.org/u/slurpee ), Himanshu Dixit ( https://www.drupal.org/u/himanshu-dixit )

Project Difficulty: INTERMEDIATE/DIFFICULT

Project Skills/Prerequisite: PHP, Drupal, API, Understanding how OAuth2 works

Project Description: Social API harmonizes social networking services in Drupal, providing an extensible module that allows integration of modules for user login, auto-posting, and social widgets. A considerable chunk of the work has already 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:
- Test the existing Auth/Post/Widget implementers and ensure that they all work perfectly.

- APIs are constantly changing and the original code is outdated. Refactor the base code wherever possible.

- For each implementer, update existing documentation and create new docs where lacking

- Create 5 new Auth implementers, 5 new Post implementers and 5 new Widget implementers.

- Create 1 video demoing Auth implementer, 1 video demoing Post implementer, 1 video demoing Widget implementer

- Research and conduct user/penetration testing. We need to see how the management UI can be improved. For example, what happens if site manager has 20 implementers installed? How to delete them easily? Are there any potential security loopholes that have passed unnoticed?

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 Number:5

Project Name: Improve Client-side encryption for fields and files

Project Mentors: colan ( https://www.drupal.org/u/colan ), nerdstein ( https://www.drupal.org/u/nerdstein )

Project Difficulty: DIFFICULT

Project Skills/Prerequisite: PHP, Public-Key Cryptography, JavaScript

Project Description: We now have user-friendly server-side encryption in Drupal thanks to last year's project, Pubkey Encrypt. If we could get client-side encryption working the same way, Drupal could be used as a zero-knowledge system for securely storing data.

Project Goals:

  • Store client-side encrypted data in entity fields via Field Encryption.
  • Store client-side encrypted data in uploaded files via File Encrypt.
  • Display client-side encrypted data displayed in Views to users with a key (decrypted in browser).

Project Resources:

Note the above links as well as these here.

Interested Student :
Bakul Ahluwalia

=================================

=================================
Project Number:6

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.

Interested Student :
Anmol Goel

=================================

=================================
Project Number:7

Project Name: Develop a module to compare one product from many shopping sites

Project Mentors: dbjpanda , shibasisp, Lal_

Project Difficulty: INTERMEDIATE

Project Skills/Prerequisite: PHP, Python, HTML, CSS, Webcrawling

Project Description: Develop a Drupal 8 module from scratch to compare products from different online e-commerece platforms. E.g price, color, size, memory, warranty of a mobile on Amazon, Flipkart, Alibaba etc. and display the summary. There are some websites like mysmartprice.com , buyhatke.com and some cms like wordpress etc have their plugins which perform the comparing mechanism. Drupal being a modern world's cms, it is necessary for Drupal to have a drop-in solution to achieve the same as well.

Project Goal: Study how the existing sites/ plugins work and decide how to achieve it using Drupal 8 in best way possible. Deliver an alpha version of the module for Drupal 8 + Documentation

Project Resources: Probably other sites crawl the products from different online platforms and extract or Scrap the fields and store it on their database and display the results.
* https://www.achieveinternet.com/enterprise-drupal-blogs/drupal-case-stud...
* https://www.analyticsvidhya.com/blog/2017/07/web-scraping-in-python-usin...
* https://groups.drupal.org/node/194203
* https://opensource.com/resources/python/web-scraper-crawler

Interested Student(s) :
Archisman Acharya
Malik Naik
Ankit Jain
Anmol Goel
Honey Barua

=================================

=================================
Project Number:8

Project Name: Integrate with TensorFlow to do Machine Learning

Project Mentors: skyredwang ( https://www.drupal.org/u/skyredwang )

Project Difficulty: DIFFICULT

Project Skills/Prerequisite: Drupal 8, Python, TensorFlow, Machine Learning, or Advanced Statistics or Math background

Project Description: We want to start building the integration between Drupal and TensorFlow, and provide a few interesting easy to use features out of box. For example, we can use already trained image network on top of Inception v3 to provide Drupal with auto-caption feature for images uploaded.

Project Goal: Build the foundation, so future machine learning projects with Drupal can leverage this project.

Project Resources: 1. TensorFlow: https://www.tensorflow.org/ 2. For people doesn't have any experience with Tensorflow, do this code lab: TensorFlow for Poets 3. A short video class on TensorFlow by Google: https://www.youtube.com/playlist?list=PLOU2XLYxmsIIuiBfYad6rFYQU_jL2ryal 4. Study this Drupal integration example: Elasticsearch

Interested Student :
Utkarsh Mishra

=================================

=================================
Project Number:9

Project Name: Build a Drupal 8 base theme with Web Components (Polymer)

Project Mentors: skyredwang ( https://www.drupal.org/u/skyredwang ) , saki007ster ( https://www.drupal.org/u/saki007ster )

Project Difficulty: DIFFICULT

Project Skills/Prerequisite: Web Components, JavaScript, HTTP Protocol and deep understanding of Drupal 8 render pipeline

Project Description: Web Components is a set of new standards, which fundamentally change how we are building the web. This project is to develop a theme or modules to use the new standards to serve the web. This project shall re-use the result of last year "GSoC: Web-Componentize Drupal 8".

Project Goal: Build a base theme with Polymer to make Drupal front-end "get off the island".

Project Resources: 1. Web Components: http://webcomponents.org/ 2. Last year GSoC result: https://github.com/skyred/wcr, https://github.com/skyred/polymer-demo, https://github.com/skyred/monomer, https://github.com/skyred/twig_polymer 3. Polymer: https://www.polymer-project.org 4. Drupal 8 with Polymer: https://events.drupal.org/neworleans2016/sessions/exploring-drupal-8-fro...

=================================

=================================
Project Number:10

Project Name: Simple WYSIWYG Editor For Drupal

Project Mentors: OPEN

Project Difficulty: DIFFICULT

Project Skills/Prerequisite: Javascript

Project Description: Create the simplified WYSIWYG Editor for Drupal 8. The module will focus on providing simplified editing to the user. The Editor needs to provide interactive way to edit/create and embed content. This can be achieved by either using existing library like Medium Editor on GitHub or creating your own, but former is recommended.

Project Goal: To create functional editor that ease the editing and provides base api to add more functionality to it.

Project Resources:
Medium Editor
Dropbox Paper
Medium

=================================

=================================
Project Number:11

Project Name: Port GMap module to Drupal 8

Project Mentors: gvso ( https://www.drupal.org/u/gvso )

Project Difficulty: INTERMEDIATE

Project Skills/Prerequisite: PHP, Symfony, Drupal, Javascript

Project Description: The GMap module provides an interface to the Google Maps API within Drupal. It integrates with the Location module to provide users a clickable map for entering latitude and longitude, as well as to display maps of Drupal nodes and users. Some work has already been done, please complete the port.

Project Goal: Deliver a working port of the module for drupal 8 along with all the relevant documentation

Project Resources: https://www.drupal.org/project/gmap https://www.drupal.org/node/2609640 https://github.com/drupal-ukraine/dmaps/tree/8.x-1.x/d8/modules/custom/d...

Interested Student :
Utkarsh Mishra

=================================

=================================
Project Number:12

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 Number:13

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 Number:14

Project Name: Expose translation activity

Project Mentors: Gábor Hojtsy ( https://www.drupal.org/u/gábor-hojtsy ) , sebcorbin ( https://www.drupal.org/u/sebcorbin )

Project Difficulty: INTERMEDIATE - DIFFICULT (depends)

Project Skills/Prerequisite: PHP, MySQL

Project Description: Same as https://groups.drupal.org/node/138219, unfortunately we still have the same limitations and problems as in 2011. Also we already had a student on this in 2011 but they failed due to lack of time on the student's part. Happy to clear up the text if people see a possibility for this one in 2016.

Project Goal: Translation teams will be able to review summarized activity as it happens, users will be able to see overall activity in groups through the graphs.

Project Resources: Explore Drupal 7 modules used for activity reporting, tracking and graphing. See http://hojtsy.hu/blog/2010-may-05/using-drupal-collaborative-software-tr... for the server part used on localize.drupal.org.

=================================

=================================
Project Number:15

Project Name: Migrating Groups.Drupal.Org to Drupal Groups

Project Mentors: japerry ( https://www.drupal.org/u/japerry )

Project Difficulty: DIFFICULT

Project Skills/Prerequisite: Existing Drupal 7 module development required. Drupal 6 experience is also required. Having experience with Migrate, OG, and panels modules is a plus.

Project Description: GDO is a Drupal 6 site developed by volunteers about 6 years ago. Over the years it has aged to the point where it's not possible to give it the necessary updates it needs.
In 2014/2015, the Drupal Association performed an audit of its content strategy, and determined that the content from groups would be better served if it was on drupal.org. See https://events.drupal.org/barcelona2015/sessions/future-groups-drupalorg for more info.

Since the Barcelona presentation, much work has been done to the underlying architecture on drupal.org, including enabling Organic groups and panels.

This project will start with creating the basic group structure on drupal.org for the various groups represented on gdo. The student will audit the existing D6 content structure and build the migration module classes to move the content to D7. Lastly, since we're not doing an all-at-once update, the student will create a tool that allows group maintainers automatically move their group and content to drupal.org.

Project Goal: To provide a tool that allows group maintainers to press a button and have their content move from gdo to drupal.org.

Project Resources: Students interested in this project should seek out japerry on #drupalorg to find out more information. We can provide you with a drupal.org and groups dev site so the student can play around with the sites.
The student should seek out information on Organic Groups and the migrate module before accepting this proposal.
https://www.drupal.org/project/migrate_d2d

=================================

=================================
Project Number:16

Project Name: Entity storage engine using JSON in modern databases

Project Approved by Admins? YES

Project Mentors: chx ( https://www.drupal.org/u/chx ) , dawehner ( https://www.drupal.org/u/dawehner )

Project Difficulty: DIFFICULT

Project Skills/Prerequisite: Coded Drupal 8 before.

Project Description: PostgreSQL and MySQL both now have the capability to store and query document data using JSON notation. The project is to make a Drupal 8 entity storage engine using these capabilities. In an ideal world, both will be supported but it is acceptable to support only one database engine.

Project Goal: At least entity tests should pass, ideally all relevant core tests should pass.

Project Resources: The https://www.drupal.org/project/mongodb project has an unfinished port which does this with MongoDB. I checked the feasibility of this at http://stackoverflow.com/q/35444927/308851 and http://stackoverflow.com/q/35444944/308851

=================================

=================================
Project Number:17

Project Name: Port DHMTL Menu to Drupal 8

Project Mentors: Gauravjeet ( https://drupal.org/u/gauravjeet ), Manjit.Singh ( https://drupal.org/u/Manjit.Singh )

Project Difficulty: INTERMEDIATE

Project Skills/Prerequisite: Javascript, menu system

Project Description: DHTML Menu uses Javascript to reduce the number of page loads when using nested menus; this is particularly useful with Drupal's administration system. Current work for the module is https://github.com/dmittriyv/dhtml_menu-d8.

Project Goal: Port DHTML module to Drupal 8 and improve features.

Project Resources: - D8 roadmap @ https://www.drupal.org/node/2153047- Page discussing module port @ https://www.drupal.org/node/2619706.

=================================

=================================
Project Number:18

Project Name: Port Webform Paymethod Select module to Drupal 8

Project Mentors: OPEN

Project Difficulty: INTERMEDIATE

Project Skills/Prerequisite: e-commerce, payments, shopping cart, webform

Project Description: webform_paymethod_select allows you to make payments part of your webforms. It makes embedding payment into your forms (nearly) as easy as adding a new textarea.

Project Goal: Port Webform Paymethod Select module to Drupal 8

Project Resources: Project page @ https://www.drupal.org/project/webform_paymethod_select - Page discussing module port @ https://www.drupal.org/node/2612784

=================================

=================================
Project Number:19

Project Name: Port Stripe Payment module to Drupal 8

Project Mentors: OPEN

Project Difficulty: INTERMEDIATE

Project Skills/Prerequisite: e-commerce, payments, shopping cart

Project Description: A payment-method for Stripe.

Project Goal: Port Stripe Payment module to Drupal 8

Project Resources: Project page @ https://www.drupal.org/project/stripe_payment

=================================

=================================
Project Number:20

Project Name: Port Media Browser Plus module to Drupal 8

Project Mentors: OPEN

Project Difficulty: INTERMEDIATE

Project Skills/Prerequisite: Media, PHPOOP, PHPUnit

Project Description: This is an enhancement module for the Media module. The focus is on UX improvements for Media that won't bloat the main module.

Project Goal: Port Media Browser Plus module to Drupal 8

Project Resources: Project page @ https://www.drupal.org/project/media_browser_plus - Page discussing module port @ https://www.drupal.org/node/2637900

=================================

=================================
Project Number:21

Project Name: Port Achievements module to Drupal 8

Project Mentors: OPEN

Project Difficulty: INTERMEDIATE

Project Skills/Prerequisite: PHP OOP, PHP UNIT. gaming experience

Project Description: The Achievements module offers the ability to create achievements and badges similar to systems seen on Xbox 360, Playstation 3, Foursquare, Gowalla, GetGlue, and more.

Project Goal: Help jhedstrom finish the Achievements module port to Drupal 8 and/or complete re-write to take advantage of entities.

Project Resources: Contact ( jhedstrom ) and ask how you can help port the Achievements module to Drupal 8. Project page @ https://www.drupal.org/project/achievements - Page discussing module port @ https://www.drupal.org/node/2596731 - D8 roadmap @ https://www.drupal.org/node/2320655

=================================

=================================
Project Number:22

Project Name: Port Mobile Detect to Drupal 8

Project Mentors: mpdonadio ( https://www.drupal.org/u/mpdonadio )

Project Difficulty: INTERMEDIATE/DIFFICULT

Project Skills/Prerequisite: PHP OOP, Symfony, Drupal 8

Project Description: Mobile Detect is intended to aid developers utilizing mobile-first and responsive design techniques who also have a need for slight changes for mobile and tablet users.

Project Goal: Help @darol100 and @mpdonadio, in porting the module to Drupal 8.

Project Resources: Project page @ https://www.drupal.org/project/mobile_detect - Page discussing module port @ https://www.drupal.org/node/2615714 - D8 roadmap @ https://www.drupal.org/node/2443329

=================================

=================================
Project Number:23

Project Name: Complete Porting of Icons API to Drupal 8

Project Mentors: gvso

( https://www.drupal.org/u/gvso ), Himanshu Dixit ( https://www.drupal.org/u/himanshu-dixit )

Project Difficulty: DIFFICULT

Project Skills/Prerequisite: PHP, OOP, SQL

Project Description: Complete the porting of the Icons API

Project Goal: Make the module and it's sub-modules fully functional for Drupal 8 and up to Drupal coding standards. Also change the module code for the discovery and handle of bundles, so that it uses YAML files for those purposes. See @hatuhay's comment on the port progress page for clarifications on this.

Project page: https://www.drupal.org/project/icon Porting page: https://www.drupal.org/node/2620578 Where the code is found and porting progress: https://www.drupal.org/node/2529032 Maintainer for Icons API: https://www.drupal.org/user/501638

=================================

=================================
Project Number:24

Project Name: Hootsuite-like distribution with Social API

Project Mentors: dahacouk ( https://www.drupal.org/u/dahacouk ), gvso ( https://www.drupal.org/u/gvso ), e0ipso ( https://www.drupal.org/u/e0ipso ), Himanshu Dixit ( https://www.drupal.org/u/himanshu-dixit )

Project Difficulty: DIFFICULT

Project Skills/Prerequisite: Drupal 8 Module Development, Social Network APIs

Project Description: Build a Drupal distribution to allow Social Media management

Project Goal: Develop Social API implementers to create a distribution to manage various social network accounts. For this stage of the project, create implementers for Facebook, Twitter, and Instagram. Functionality includes posting, stats regarding retweets and shares, and administrative dashboards.

Project Resources: The Drupal Social Initiative has existed for a few years and has had a number of meetings, calls and BoFs at DrupalCons. Plus 2 GSoC students have already spent 2 summers on the Social API. The framework is being created at Social API. Many popular implementers are already working and now it is time to build a demo framkework with all of these modules already working in a pre-configured installation. This would allow any non-technical/non-coder people to easily install this software to have a system similar to HootSuite but it is based on Drupal utilize the Social API.

=================================

=================================
Project Number:25

Project Name: Build a identity system/ledger using blockchain technology

Project Mentors: epari.siva

( http://drupal.org/u/epari.siva )

Project Difficulty: DIFFICULT

Project Skills/Prerequisite: PHP, MySQL, BlockChain, Ledgers(like HyperLedger, Interledger)

Project Description: Build a identity system like OpenID but data will be stored/retrieved from a blockchain instead of database

Project Goal: "Bitcoin and the underlying technology of the blockchain has become a pretty important invention of our time. The cryptocurrency application itself has given us a sketch of new meanings that apply to money and mediums of exchange. The blockchain can house and transact with unlimited amounts of valued assets through its publicly distributed ledger, and among these valuable building blocks is unforgeable data. This data can lead to incredible concepts produced by the blockchains transparency attributes, such as smart contracts, governance, identity, and ultimately the Internet of Things." Refer: http://insidebitcoins.com/news/blockchain-identity-solving-the-global-identification-crisis/35028 So, Goal is to build a identity server like OpenID which will store identity information on blockchain and is publicly accessible to anyone. Giving a path for unforgeable identities.

Project Resources:

    Interested Student :
    Vrinda

    =================================

    =================================
    Project Number:27

    Project Name: Improve Views support for the GraphQL module

    Project Mentors: fubhy ( https://www.drupal.org/u/fubhy ), pmelab ( https://www.drupal.org/u/pmelab )

    Project Difficulty: DIFFICULT

    Project Skills/Prerequisite: PHP, Drupal 8, GraphQL

    Project Description: The Drupal GraphQL module automatically generates and exposes a GraphQL Schema based on the Drupal Entity and Typed Data Model as well as some other related types. The module already covers and integrates most of the Drupal Core modules special cases. However, full Views support has been postponed to allow for an earlier release date of the stable version. The current state of the Views integration is hosted in a separate Git repository (https://travis-ci.org/drupal-graphql/graphql-views) and can be installed individually. We want to improve this integration module with Views and get it ready for inclusion in the GraphQL module's core.

    Project Goal: Improve support for Views in the GraphQL module.

    Project Resources: drupal.org module page, GitHub repository, GraphQL

    =================================

    =================================
    Project Number:28

    Project Name: Blueprint toolkit

    Project Mentors: OPEN

    Project Difficulty: DIFFICULT

    Project Skills/Prerequisite: Project management experience, PHP, JS, other technologies may be used, a good understanding of Drupal

    Project Description:

    The goal of this task is to create a set of tools that allow us to describe our needs through visual design tools (such as mind maps) or a structured description language and generate projects  automatically based on existing code / modules / projects. People just need to write a small amount of code for the new function and develop related coding standards and interface specifications. This will shorten the development cycle and reduce human mistakes.

    We want to introduce a core concept: Brick. Brick means a code snippet written in certain rules to solve a particular problem and that can be reused. A visual description is: A child wants to build a city with his toy bricks. His toy box already has many ready-made models and parts, such as houses, bridges, towers. Of course, there are some bricks. Then the child only needs to design his city, combine the existing models and assemble the missing parts. After that, the city is done. Now, we'd like to make the similar work can be done automatically with the Blueprint Toolkit. Different from "module", "brick" is smaller and more flexible.

    Project Goal:

    Build the foundation, create standards, help us turn existing project to "bricks".

    In the first stage, we need:
    1.Design scheme
    2.Documents
        a) How to Describe Needs with the Blueprint Toolkit.
        b) How to Turn Existing Project to "Bricks".
        c) How to Manage and Combine the "Bricks". (We hope it can be done automatically)
        d) Standards

    In the second stage, we need:
    1.Build the foundation, create the command line tools.
    2.Documents
        a) User Manual (command line tools)
        b) Developer Guide
        c) Structured Description Language Manual
        d) Update existing documents

    In the second stage, we need:
    1.Create the visual design tools.
    2.Documents
        a) User Manual (visual design tools)
        b) Migration Guide
        c) Update existing documents

    In the future ...
    In fact, it's a big project which is more than a Google Summer of Code task. The final goal is creating a solution for coding with AI.

    Project Resources: This is a custom idea that can be built with Drupal. We're interested to see student's ideas on how to build this. Obviously a bit of experiene with Drupal and it's structure will help shape these ideas. However, mentors are available to help discuss this on IRC. Find us on #drupal-google and we'll be more than happy to discuss. Again, this is an open idea to better server project mgmt utilizing Drupal. Another way to think about this, how to build a Drupal system similar to the Google Code-In website or how to build a Drupal system to manage a team of developers with tasks related to code?

    =================================

    =================================

    Project Number: 29

    Project Name: Web Thing API

    Project Mentors: skyredwang (https://www.drupal.org/u/skyredwang)

    Project Difficulty: INTERMEDIATE/DIFFICULT

    Project Skills/Prerequisite: Drupal, Go

    Project Description: "The goal of the Web of Things is to extend the web of pages into a web of things by giving connected devices URLs on the World Wide Web. This will allow the web to be used as a unifying application layer for a decentralized Internet of Things." This project is to implement the Web Thing API on Drupal , according to the specification https://iot.mozilla.org/wot/

    Project Goal: Implement the Web Thing REST API directly in Drupal 8 and implement the complementary Web Thing WebSocket API in Go (See Web of Things Framework for Go).

    Project Resources:

    =================================

    =================================

    Project Number: 30

    Project Name: Port commerce_instamojo module to D8

    Project Mentors: dbjpanda (https://www.drupal.org/u/dbjpanda)

    Project Difficulty: INTERMEDIATE

    Project Skills/Prerequisite: Drupal 8, Payment Gateway

    Project Description: Instamojo lets you collect payments instantly. Start simply by creating a link by adding details. Share with your audience, through a link. And start collecting payments in minutes!

    Project Goal: Deliver a beta version of the module for Drupal 8

    Project Resources: https://www.drupal.org/project/commerce_instamojo https://github.com/Instamojo/instamojo-php

    =================================

    =================================

    Project Number: 31

    Project Name: DrupalConsole

    Project Mentors: https://www.drupal.org/u/jmolivas

    Project Difficulty: INTERMEDIATE/

    Project Skills/Prerequisite: PHP, Drupal8, Symfony

    Project Description: Improve project test coverage

    Project Goal: Improve test suite for DrupalConsole.

    Project Resources: https://www.drupal.org/project/console
    https://github.com/hechoendrupal/drupal-console

    =================================

    =================================

    Next project idea template

    Project Number:

    Project Name: NAME OF MODULE [Next Project Idea]

    Project Mentors: d.o user names to open contact

    Project Difficulty: INTERMEDIATE/DIFFICULT

    Project Skills/Prerequisite: STUFFLIKEPHPSYMFONYSQLCMS

    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.

    =================================

    Comments

    Need Project Ideas

    Slurpee's picture

    Call for Google Summer of Code 2018 project ideas is open. Please add project ideas to this wiki. Even if you can't mentor, please add the idea. Our goal is to have as many ideas documented in this wiki as possible by next week. Adding more project ideas will increase the chance of Drupal being accepted to participate in GSoC 2018.