Coding summer with Google

Submitted by Milos on Tue, 05/24/2016 - 00:36

Coding summer with Google

This is the first chapter of blog series related to my Google Summer of Code 2016 participation.

Almost a month ago, together with 10 other students, I have been selected to contribute Drupal this summer via Google Summer of Code project. 

GSoC is the great opportunity for University students to spend a summer break by contributing to one of the many preselected open-source organizations. This is my first GSoC participation and it has been held for the 12th year now. Back in 2008, I took a part in a similar event - Google Highly Open Contest which was basically summer of code for high school students.

As I mentioned above, Drupal will be the organization I am going to contribute to. However, my decision to apply for Drupal didn't come by chance. Last year, I did an internship at MD Systems - world's most active Drupal company where I had a great chance to learn about Drupal (8) in-depth. From that experience, I gained a lot of knowledge related to code development, project management and collaboration on open-source projects.

Considering the great experience I had during GHOP, I prepared a proposal and applied for Google Summer of Code 2016. Fortunately enough, my project "Port Mailhandler to Drupal 8" mentored by Miro Dietiker and Primoz Hmeljak was one of the selected projects.

Mailhandler allows you to create and publish articles (like this one) by sending an email. Besides articles, it is capable of creating comments via email too. Since there was no clear plan on Drupal 8 port, we decided to take the lead and propose a solution.

The approved proposal was based on Drupal 8's framework for processing incoming mails - Inmail. As the module architecture is highly based on Drupal plugin patterns which allow you to extend it easily for your needs - it seemed as a nice starting point for my Mailhandler port.

The basic idea behind the project is to provide a set of Inmail plugins to parse and validate an email, authenticate the sender and process the content.

The road map and meta tickets have been already created on as a part of community bonding period. The purpose of it is to meet the community and polish the latest details with mentors. In my case, item deliverables have been slightly redefined in order to provide the best value for an end-user. I used that time to set up local environment and current D8 blog instance as well. 

As there was no 8.x branch in the current module, we decided to create a sandbox project as a starting point. When the project is stable enough we are going to talk with current maintainer about moving it to the original project.

Since the coding period has officially started yesterday, I wish happy coding to all the students!

In the next blog post, I am going to write about the achievements and problems I faced in my first week of this exciting coding summer. 

Stay tuned!