Organised project ideas for Google Summer of Code 2014

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

Hello potential students and GSoC application review team. Welcome to Drupal's 2014 "Project Ideas Page" properly organized for application submission.

Student Questions?

Anyone with a drupal.org account is allowed to post comments/questions into this wiki as comments. Students are encouraged to contact project mentor with questions via drupal.org contact page (visible when authenticated on website) or post questions as comments here. All projects have at least one mentor listed, but feel free to contact both mentors when available. Real time conversations and questions can be answered on IRC(chat) in #drupal-google at Freenode.

Still can't contact anyone? Try our 2014 admin team directly (Slurpee, Slashrsm, or Varunity).

Student Information

First step for anyone interested in contributing to Drupal is to register a user account at drupal.org. Secondly the Drupal Ladder for GSoC Students and (for GCI Students) are great places for students and mentors to understand the type of skills expected going into any type of task/project. Students are required to finish entire "GSoC Student Ladder" to officially submit project application (and encouraged to start working in issue queues testing/rolling patches). Third step is to update this wiki page and list yourself as an "Interested Student" at interested project/s. Final step of students learning and following "d.o coding standards" is mandatory (https://drupal.org/coding-standards).

Mentor Information

Melange's GSoC Mentor Guide is best place to learn from an overall program 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.

Mentor Admins

  • ORG ADMIN - Matthew Lechleider (Slurpee https://drupal.org/user/91767) - Chicago USA - UTC-6 Hi I'm Matthew aka Slurpee on drupal.org/IRC. I've been working with Drupal full time for several years gaining majority of my experience by founding and organizing the Chicago Drupal Meet Up Group. My role as a community leader has brought me around the world attending/speaking/training at Drupal events and even organizing the DrupalCamp in Sri Lanka (http://groups.drupal.org/files/13_1.jpg). I first participated in GSoC as a mentor in 2012 for the VoIP-Drupal project, attended the Mentor Summit in 2012, and recently revamped Drupal's Google Code-In program leading using to awesome contributes from high school students in 2013. My current is role acting as Drupal's GSoC 2014 org admin. English is prefered language.
  • BACKUP ORG ADMIN - Janez Urevc (slashrsm - https://drupal.org/user/744628) - Slovenia, Europe - UTC+1 Hi! My name is Janez Urevc. I am located in a small country in central Europe called Slovenia. I have been very enthusiastic about free software since beginning of high school. This passion took me on an unforgettable ride. I have been Google Summer of code student and mentor. I've been making my living from free software (and mostly Drupal) since my first work day and I am very thankful for that. I speak English, Slovenian, all Ex-YU languages and a bit of Italian. I am currently employed as Drupal developer at world's largest Drupal website (www.examiner.com).
  • MENTOR MANAGER- Varun Baker (Varunity - https://groups.drupal.org/user/27216) - Jamaica - UTC-5 Hi, I'm Varun aka Varunity on drupal.org/IRC . My expertise is mainly with i18n, themes, and advanced site building. I recently played a major part in Google's Code-In 2013 contest mentoring many students and tasks. Now I'm helping organize Drupal's Google Summer of Code 2014 program with Slurpee and Slashsrm who I worked with during GCI. I live in Jamaica with timezone UTC-5 and speak English and Italian.

Mentors

  • Jingsheng Wang (skyredwang - https://drupal.org/user/228712) - Shanghai, China - UTC+8 I run a small Drupal and Android development shop in Shanghai, using Drupal and Android to do a few interesting projects like BeerCloud, or projects with cars, Arduino or tablets. I have presentated Drupal web services together with Android at a few DrupalCons. I am also a part-time Economist for projects needed long-term business vision and also constantly pay attention to the impact of technology on humans. English and Chinese are my languages of choice.
  • Abdul Qadir (abdulqadir028 https://drupal.org/user/1416206) - Colombo Sri Lanka - UTC+5.30 Hi I'm Abdul. I've been working with Drupal full time for several years mainly on Architecture and Module Development. I was part of Drupal Camp Sri Lanka and was one of the speakers at the event. I have attended many Drupal Events in Chicago, USA as well. English is my preferred language.
  • Johannes Haseitl (derhasi - https://drupal.org/user/83474) - Hannover, Germany - UTC+1 Hi, I'm Johannes, Drupal Engineer, Developer and CEO of undpaul, a Drupal shop in Germany. I have been working with and contributed to Drupal for over 7 years. I love Open Source and the principle it's driven by. With sharing our knowledge and best practices, we can go one step further.
  • Anja Schirwinski (aschiwi - https://drupal.org/user/107667) - Hannover, Germany - UTC+1 I am a frontend developer and (as well as Johannes above) CEO of undpaul, a German Drupal shop. I have been involved with the Drupal community for about 7 years and was a Drupal core code sprint mentor at DrupalCon Prague.
  • Jeff Linwood (jefflinwood - https://drupal.org/user/793944) - Austin, Texas - UTC-6 I'm Jeff Linwood, a mobile app developer in Austin, Texas who has been developing mobile apps for iOS and Android that work with Drupal 6 and 7. I've give training on building mobile apps with Drupal, as well as sessions at DrupalCamps. I'm also an adjunct professor at the University of Texas at Austin, where I teach iOS mobile app development with Objective-C to undergraduate and graduate students. I'm excited about native mobile app development with Drupal as a content management system and back end.
  • Patrick Elward(chicagowebmanagement - https://drupal.org/user/1015480) - Chicago, IL UTC-6 Hello, I'm Patrick Elward, a project manager focusing on PHP-driven projects. I've been working online since 1997 and enjoy sharing my knowledge with others. I was introduced to GSoC after being a GCI mentor in 2013 and I enjoyed helping students reach their goals. Looking forward to helping out both programs in 2014!
  • Lee Mitchell (Lee- https://drupal.org/user/797002) - Pennsylvania USA UTC-5 Hello, I'm Lee- on IRC. My background is in system administration and have been working with open source software since the mid 90s. Plus I have had been coding PHP before CMSs existed. In the Drupal world...I manage infrastructure for some of the largest Drupal sites in the world and write custom code/modules for them time to time. English is my preferred language.
  • Cody Carlson (serpicody https://drupal.org/user/923288) - Chicago USA UTC-6 Hello, I'm serpicody on IRC. My Drupal expertise in Drupal architecture, data/site migrations into Drupal, and fixing issues clients appear to create on their own. I'm good at communicating with clients in non-Drupal terms and I feel that will help mentor a student.
  • Michael Priest (pingers - https://drupal.org/user/56282) - Adelaide, Australia - UTC+10:30
    I graduated from the University of South Australia with a Degree in Information Technology. For the past 6 years I've been working with Trellon (http://trellon.com) building amazing Drupal sites. I've been in a Technical Lead role for the past 5 of those years. It's been a rollercoaster from the start working with Drupal, attending many Drupalcons, building CRM's, billing systems, 3rd party integrations, all manner of applications! I have a passion for helping team members succeed. I'm always looking for challenges and new problems to solve. I prefer English but speak a little German too.
  • DrupalJedi (https://drupal.org/marketplace/drupaljedi) - Novosibirsk, Russia - UTC+7
    The people you can contact directly: csandanov, IRuslan, PavelPrischepa
    Our organization will be glad to take part as a mentor. We're active member of Russian and Siberian (https://groups.drupal.org/drupalsib) drupal community (YES, it exists!), we organize local drupal schools, code sprints and drupal cafe. We have a lot of experience in big drupal projects on international level and will be glad to share with it.
  • Sascha Grossenbacher Berdir - Zurich, Switzerland - UTC+2
    I work at the Swiss Drupal service provider MD Systems, where I focus on architecture and backend development. I am one of the most active Drupal 8 contributors and maintain a number of contrib modules like TMGMT and Monitoring. I also co-mentored a GSoC project in 2013 related to TMGMT.
  • Miro Dietiker - Zurich, Switzerland - UTC+2
    I'm founder and CEO of the Swiss Drupal service provider MD Systems. We maintain quite some contrib modules and i mainly act as leading architect and coach. I initiated initiatives like TMGMT and also mentored its GSoC project in 2012. Also i started the Drupal 8 Contrib initiative to make the whole ecosystem ready.
  • Michael Schmid (Schnitzel) - Zurich, Switzerland - UTC+2
    I'm Head Technology of Amazee Labs, working as Tech Lead and Project Manager. Our Tech Team has 10 developers (backend, frontend, sitebuilder) which I manage and also mentor with customer projects but also Drupal Contrib and Core Modules. I'm active in the D8MI team. I give presentations at Drupal Camps and Cons about Performance, Multilingual and Project Management.
  • Chris Yu (cYu) - Alaska, USA - UTC-9
    I've been doing full time Drupal development since 2007 for a printing company in North Carolina called Classic Graphics. I started with a focus on e-commerce and have a broad range of experience working with contrib and writing custom modules. I mentored a Drupal GSOC project in 2008 and am eager to make up some community time that I've missed since then.
  • Anoop John (https://drupal.org/user/222163) - India - GMT+530 Anoop has been working with Drupal since 2006. He is the founder and Chief Architect at Zyxware Technologies, one of the largest exclusive Drupal companies from India. He maintains a few modules on Drupal.org. He also actively promotes Drupal in the local market through trainings and workshops.
  • Vimal Joseph (https://drupal.org/user/817380) - India - GMT+530
    Vimal is a Technical Architect at Zyxware Technologies, one of the largest exclusive Drupal companies from India. He has more than 10 years of experience in a wide range of Free Software platforms. For the last 4 years he has been designing and building solutions based on Drupal. He is also responsible for Drupal training in Zyxware.
  • Junaid P. V. (https://drupal.org/user/255728) - India - GMT+530 Junaid is a Drupal Consultant at Zyxware Technologies, one of the largest exclusive Drupal companies from India. He has been focusing on providing Drupal consultancy to multiple projects across the world. He also helps and mentors new developers into becoming competent Drupal developers.
  • Binny Thomas (https://drupal.org/user/2308804) - India - GMT+530
    Binny is a Team Lead at Zyxware Technologies, one of the largest exclusive Drupal companies from India. He manages and menotors his team of Drupal developers and is responsible for building and delivering multiple Drupal projects with his team.
  • Aron Novak (https://drupal.org/user/61864) - Erd, Hungary - UTC+1
    Hello! My name is Aron Novak and i participated 3 times in the Summer of Code as a student by the help of excellent mentors, chx, alex_b and narres. I would like to contribute back to the community now this way, by mentoring. I work for Agence Inovae, a Geneva-based Drupal shop. My Drupal development history is almost 8 year-long by now, the first Drupal version that i saw in action, was the 4.7.
  • Doug Vann (https://drupal.org/user/222746) - Indiana - GMT-5
    I travel around delivering Drupal training and consulting to Higher-Ed, Government Organizations, and Private Companies. My Drupal addiction started late 2007. I believe that sharing the power of Drupal is what makes Drupal so powerful!
  • Sivaji (https://drupal.org/user/328724) - India - GMT+530
    Sivaji works as Technical Director and also one of the founders of KnackForge, a featured Drupal services providing company in Chennai. His role at KnackForge includes delivering end to end Drupal solutions especially in e-Learning. He got hooked into Drupal since he took part as a student developer in GSoC 2009 to rewrite Quiz contrib module. He has been an active module maintainer of contrib modules, reviewer of Drupal books, occasional core patch contributor and organizer of Drupal Chennai meets and hands-on sessions. He also enjoys writing technical blog posts.
  • Sandip Khairnar (https://drupal.org/user/739524) - Mumbai, India - GMT+530
    Hello! My name is Sandip Khairnar working as Drupal Developer in Capgemini India. This is first time in the Summer of Code as a mentor/contributor I would like to contribute back to the community now this way, by mentoring.
  • Hai-Nam Nguyen (https://drupal.org/user/210762) - Paris, France - GMT+1
    Hai-Nam 'jcisio' Nguyen started with Drupal in 2008. He is doing full Drupal with Open Web Solutions since 2011. Hai-Nam is involved in many projects from media companies. He is a FOSS enthusiast and was a mentor at Mua He Sang Tao 2013 (a GSoC-like event in Vietnam).
  • Christian López (https://drupal.org/user/959536) - Sevilla, Spain - GMT+1
    Christian 'penyaskito' López started with Drupal in 2010, and since then is doing mostly full Drupal in big teams. Penyaskito is involved in the Drupal 8 Multilingual Initiative and the Drupal 8 Migrate in Core Initiative. He is a FOSS enthusiast, mentors in local meetups and sprints and participated as a student twice in Google Summer of Code under a different organization umbrella.

Projects Idea Quick Links

Project 1: Event Description Generator Module (Drupal 7/8)
https://groups.drupal.org/node/407793#project1

Project 2: Native Android library for Drupal Web Services
https://groups.drupal.org/node/407793#project2

Project 3: Wysiwyg inline entity (D8)
https://groups.drupal.org/node/407793#project3

Project 4: securesite
https://groups.drupal.org/node/407793#project4

Project 5: Offline Sync - Content Staging Solution for Drupal 8
https://groups.drupal.org/node/407793#project5

Project 6: VoIPDrupal: Dial First Call and Send SMS via Drupal 8
https://groups.drupal.org/node/407793#project6

Project 7: meetup.com import sync for Drupal 7
https://groups.drupal.org/node/407793#project7

Project 8: Port Apache Solr AJAX to Drupal 7
https://groups.drupal.org/node/407793#project8

Project 9: Port Disqus integration module to Drupal 8
https://groups.drupal.org/node/407793#project9

Project 10: Drupal 8 media subsystem
https://groups.drupal.org/node/407793#project10

Project 11: fluxpocket (Pocket integration for Fluxkraft) https://groups.drupal.org/node/407793#project11

Project 12: Paragraphs (Drupal 8 Port)
https://groups.drupal.org/node/407793#project12

Project 13: Migrate DrupalLadder.org to Drupal 8
https://groups.drupal.org/node/407793#project13

Project 14: Port XML Sitemap to Drupal 8
https://groups.drupal.org/node/407793#project14

Project 15: Build Example iOS App for Drupal 8
https://groups.drupal.org/node/407793#project15

Project 16: Port faq.module to Drupal 8
https://groups.drupal.org/node/407793#project16

Project 17: CRM Core Advocacy Toolkit
https://groups.drupal.org/node/407793#project17

Project 18: TMGMT Usability
https://groups.drupal.org/node/407793#project18

Project 19: TMGMT semantic language processing
https://groups.drupal.org/node/407793#project19

Project 20: Highlight projects that follow Best Practices on Drupal.org
https://groups.drupal.org/node/407793#project20

Project 21: Project management / ticketing system framework
https://groups.drupal.org/node/407793#project21

Project 22: Port Workflow module to D8
https://groups.drupal.org/node/407793#project22

Project 23: Create sensor instances for Monitoring D8
https://groups.drupal.org/node/407793#project23

Project 24: Port Diff module to D8
https://groups.drupal.org/node/407793#project24

Project 25: Gatling Drupal scenario recorder
https://groups.drupal.org/node/407793#project25

Project 26: Port Module GELF into Drupal 8
https://groups.drupal.org/node/407793#project26

Project 27: Build a Documentation System with Drupal
https://groups.drupal.org/node/407793#project27

Project 28: Build an Elastic search module for Drupal 8
https://groups.drupal.org/node/407793#project28

Project Idea Details

=================================
Project Number: 1

Project Name: Event Description Generator Module (Drupal 7/8)

Project Approved by Admins? YES

Project Mentors: Slurpee, Anoop John

Interested Students: Sai Supreetha Varanasi (https://drupal.org/user/2848517), Andrei - Marius Dincu (https://drupal.org/user/2628879 ; IRC: andreimarius; drupalladder.org: andrei.dincu and andreimarius)

Project Difficulty: EASIER

Project Skills/Prerequisite: PHP, CSS, Javascript, Drupal module development, Drupal theme layouts, structuring and displaying data.

Project Description: Create a Drupal 7/8 module that can be added to any site and contributed to drupal.org for anyone to download. Purpose of this module is for any user/meetup group or any type of organization that displays event listings on line to display event information in a web2.0 world. Too often event organizers are stuck in text editors creating elaborate listings of data often found in our Drupal sites. Create a system that provides a web interface providing event organizers a simple point/click method of entering event data and displaying it in multiple options. Final results are provided to event organizer as an easy to use copy/paste text, HTML, or download format via Drupal web UI.

Project Goal: Goal is to save event organizers time. This is an important Drupal task as Drupal meetup groups are and have always been an important strength of our community. Let's save organizers time by providing a simple interface to input event details, ensure every important detail about an event is required, then display the data in an easy to organize user interface.

Don't limit module to Drupal event organizers, but anyone in the world organizing events. An assumption is that various types of events listings can be created with contextual fields based on type of event (user group, conference, training, multiple days, recurring events, etc).

Project Resources: First step is to research as many user groups as possible with a focus on Drupal groups (groups.drupal.org is great place to start). Track down event listings in mailing list archives, facebook, g+, twitter, forums, newsgroups, whatever. Do you notice any information with missing or confusing layouts? Do you see any important information about the event missing from any postings in your research? After research it will be fairly clear to see which types of attributes/fields are required for the module. Learn about basic Drupal and configuring basic content types with fields such as Date, Link, Phone, and more. After learning how to input all of the data into a node, you will start researching the Drupal theme system which can change depending on version of Drupal. Learn how to move the event data around the page and organize it into specific layouts with CSS, JavaScript, AJAX, or whichever opensource tool/library you prefer. Other aspects include providing the user multiple layout and export options. In addition, preparing the module for Drupal standard user admin interface options with drupal.org coding standards will be a good learning experience too.

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

Project Name: Native Android library for Drupal Web Services

Project Approved by Admins? YES

Project Mentors: skyredwang, jefflinwood

Interested Students: Bilal Bakht Ahmad-bilalba (project 16 too), Nistorica Vlad (vlad.n -> https://drupal.org/user/2534602).

Project Difficulty: DIFFICULT

Project Skills/Prerequisite: Drupal REST web services, Drupal Architecture, Android Development, Asynchronous Programming, HTTP request, Advanced Authentication, Java

Project Description: Re-architect and refactor the existing DrupalCloud library on Android to build a better library for future Android App accessing Drupal via REST services. Also, the project needs to support modular authentication, for example, HTTP Basic Auth, Session Auth, Oz, etc.

Project Goal:
1. Add support for Drupal 8 Core REST Services
2. Re-architect the existing library to have a better EXCEPTION handling
3. Re-architect the existing library to have a pluggable layer of abstraction for authentication
4. Rebuild built-in HTTP Basic Auth and Session Auth with Drupal
5. Improve and Complete the support for Drupal 7 Services
6. Improve documentation and coding examples

Project Resources:
DrupalCloud: https://github.com/INsReady/DrupalCloud
Drupal 8 REST: https://drupal.org/documentation/modules/rest
Drupal 7 Services Module: https://drupal.org/project/services

Similar GSoC 2014 Project for ioS @ https://groups.drupal.org/node/404778#project16

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

Project Name: Wysiwyg inline entity (D8)

Project Approved by Admins? YES

Project Mentors: slashrsm, Vimal Joseph

Interested Students: Chandan Singh (cs_shadow - https://groups.drupal.org/user/2659413)

Project Difficulty: medium to difficult

Project Skills/Prerequisite: PHP, Javascript, jQuery, CKeditor

Project Description:

Lots of content editors want to work on their content via WYSIWYG editor. This is not limited to text-only data, but we want to support all sorts of
different content. Most obvious use-case if definitely embedded media (inline images, videos, ...). There are a lot of modules that try to provide this functionality in D7: Media, Scald, Asset (all media-related), Node embed, etc. All this modules are focused on one type of content only. If one wants to embed both images and nodes has to enable at least two modules that do almost the same code. This results in a lot of redundant code and non-consistent experience.

Another problem in D7 are Wysiwyg editors that are not standardized. In Drupal 8 we decided to support CKeditor only. This makes development and maintenance of Wysiwyg-related modules much easier.

For D8 we want to create a standardized solution for inline embedding to Wysiwyg, which will support all entity types. This reduces amount of redundant code, make user experience standardized, development and maintenance easier and provides solid ground for other modules to work on top of.

Project Goal:

Project should deliver working framework for wysiwyg embeds. It should support all entity types in general. Framework should provide basic APIs, basic integration with Drupal 8 CKeditor and basic rendering (display) configuration. All parts of the framework should be pluggable, which will allow other modules to extend, provide new features and improve experience.

Project Resources:
- http://drupal.org/project/media
- http://drupal.org/project/scald
- http://drupal.org/project/asset
- https://drupal.org/project/node_embed
- https://drupal.org/project/wysiwyg
- https://drupal.org/node/208456
- https://drupal.org/node/1882314
- feel free to ping @slashrsm on IRC (Project Number: drupal-contribute or Project Number: drupal-google on Freenode.net)

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

Project Name: securesite

Project Approved by Admins? YES

Project Mentors: Lee-, serpicody

Interested Students: shivanshuag ,ralph-mikera(https://drupal.org/user/2567004), Pranavan

Project Difficulty: EASIER

Project Skills/Prerequisite: Understanding of PHP, basic HTTP authentication

Project Description: securesite is a commonly used module to provide HTTP authentication (password protection) to a Drupal site without requiring modifying the web server configuration to make it happen. securesite can be used for a variety of reasons such as blocking the world from viewing a development site in progress or password protected sections of a site. It is a great module because it puts the power of password protection in hands on Drupal user and not system adminstrator.

Project Goal: Port securesite.module into Drupal 8.

Project Resources: The original module will be the primary resource for this project. The student will need to make necessary code changes to bring the module in to compatibility with Drupal 8. The original module can be found here:
http://drupal.org/project/securesite
A Wikipedia article describing basic access authentication:
https://en.wikipedia.org/wiki/Basic_access_authentication
Apache documentation describing how to make it work via an Apache configuration:
https://httpd.apache.org/docs/current/howto/auth.html

=================================
Project Number: 5

Project Name: Offline Sync - Content Staging Solution for Drupal 8

Project Approved by Admins? YES

Project Mentors: varunity, penyaskito

Interested Students: Hammad ( github.com/hammadhaleem ), Nistorica Vlad (vlad.n -> https://drupal.org/user/2534602), Zahor

Project Difficulty: DIFFICULT

Project Skills/Prerequisite: php, mysql, cms, content sync, local sync, local dev, OOP, Yaml, SQL

Project Description: The idea is to create a drupal 7(or 8) module which allows persons to create many copies of a website for offline distributed content management. This would work by having one central website that all data is ultimately fed to. The other 'satellite' websites(which can operate offline) have their own databases but keep track all new edits and content that it created. Once one of these sites goes online, an admin will have the option of synchronizing their data with the central 'main' site. This solution can leverage the migrate module to achieve this: https://drupal.org/project/migrate

In Drupal 8 the IMP initiative adds a migration API that would help people migrating from D6 and D7 to D8, and to help developers to build migrations from whatever else to Drupal.
But nothing stops you to migrate from D8 to D8, so this could provide a nice framework for implementing a content staging tool based on migrate API.

Project Goal: This project will allow for distributed teams of persons to author content on a website whether or not they are online so that they can operate effectively in scenarios where there is not always internet access. This will also have the added benefit of helping some drupal developers workflow between development, staging and production environments. One can even imagine being able to share a working drupal site on a USB stick. A module that allows to move content around different instances of the same site, allowing to move content from a staging site to a production site.

Project Resources: As with all of the drupal tasks here, start by creating a user account on drupal.org if you don't already have one. You can also learn about how to start contributing to drupal using Drupal ladder: http://drupalladder.org/ . Once you are comfortable enough using git, reviewing code and testing patches, start learning about how and what information is stored at the database level with Drupal. You will also want to look at the various backends that Drupal supports such as MySQL and SQLite. The general rationale for this project has been discussed in a couple places on d.o. eg. https://drupal.org/node/2012148 .

It is recommended to base your work on the migrate module (https://drupal.org/project/migrate) which already provides a flexible framework for migrating content into Drupal from other sources. Here is a video that demonstrates how to use the migrate module in general: http://vimeo.com/54448150 . Next would be to decide whether to work in drupal 7 or 8, the migrate module is being brought into the core of Drupal 8.

The best direction would be to break this project up into smaller milestones. First, figure out how to migrate content such as nodes, users, files, terms, and comments between separate installations of the same drupal site. The next step will be to allow an administrator to do this through the web interface and start figuring out how to manage merge conflicts, eg. if the same node was edited by two separate people so we have to decide which version to use or how to handle this case. Providing good documentation and instructions will be an important part of this project.

The IMP initiative: https://groups.drupal.org/imp
Content Staging Initiative contains ideas: https://groups.drupal.org/large-scale-drupal-lsd-projects-and-plans/cont...
IRC channel: #drupal-migrate
Work on Migrate API takes place here: https://drupal.org/sandbox/chx/2105305
Migrate docs: https://drupal.org/node/2129651
State of the art in Drupal 7:
https://drupal.org/project/deploy
https://drupal.org/project/defaultcontent

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

Project Name: VoIPDrupal: Dial First Call and Send SMS via Drupal 8

Project Approved by Admins? YES

Project Mentors: slurpee, Binny Thomas

Interested Students: Rohit jain

Project Difficulty: DIFFICULT

Project Skills/Prerequisite: PHP, API, VoIP, Twilio, Tropo, SQL, Symfony, SMS, Phone calls,

Project Description: VoIP Drupal is a versatile open source communication toolkit that adds the power of voice and Internet-telephony to Drupal websites. It can be used to build hybrid applications that combine regular touchtone phones, the Web, SMS, and other channels in a variety of ways, facilitating community outreach and providing an online presence even to those who are technically challenged, or who do not have regular access to computers.

Project Goal: Make the first phone call and send first SMS message from a Drupal 8 site. Project requirement is NOT to create a fully stable module that any user will be able to easily utilize. Basic user interfaces will be required (example typing sms data), but are not the focus of project. Project deliverable is committing code to drupal.org in the voipdrupal repo with a development version of module following d.o coding standards with proper documentation of how to make a phone call and send an sms in Drupal 8.

Project Resources: "VoIP Drupal" is a module based on a collection of various modules depending on your goal. Example, if your VoIP provider is Twilio, you need to utilize/create Twilio code. If interested in working with Twilio, look at modules for previous versions of Drupal.

VoIP Drupal Fact Sheet: http://bit.ly/voipdrupalfacts
Drupal Group to join: https://groups.drupal.org/voip-drupal
VoIP Drupal Module Page: https://drupal.org/project/voipdrupal
Configuring Drupal with Twilio: https://drupal.org/node/1078726
Twilio's Point of View of Drupal+Twilio: https://www.twilio.com/blog/2012/04/connecting-all-with-voip-drupal-and-...
Twilio: https://www.twilio.com/

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

Project Name: meetup.com import sync for Drupal 7

Project Approved by Admins? YES

Project Mentors: Lee-, Dougvann

Interested Students: Kumar Rishabh(hellboy2k8) IRC (penguinRaider) [https://groups.drupal.org/user/2397638]

Project Difficulty: EASIER

Project Skills/Prerequisite: PHP, API, 3rd party services, evens i, data import, data sync, meetup.com

Project Description: Meetup.com is a 3rd party website for orgnaizing events or "meetups". Did you know that multiple meetups are happening all over the world as we speak? Interestingly the Drupal community found many community members by posting Drupal user group listings on meetup.com. Fast forward several years and there are no hundreds of Drupal user groups on meetup.com. Meetup organizers have been wishing for a module to import event details from meetup into Drupal. Write a Drupal 7 module that can be downloaded by anyone from drupal.org to easily integrate meetup.com event import and syncing.

Project Goal: Allow meetup.com organizers to easily import event listings into a Drupal 7 site and keep event details in sync if updated. Save meetup organizers time by automatically importing event details into Drupal via a custom built module. An important goal of project is ensuring event details are updated when meetup.com event is updated too. Project goal is only importing meetup.com event data into Drupal. Project goal is NOT exporting event data from Drupal into meetup.com. Project goal require a UI to configure module options, but design/theme/css is NOT focus of project.

Project Resources: I have already written a similar module for a client in Drupal 6 (not on d.o (ask for code if interested)). The meetup.com API is very easy to understand and to work with in Drupal. Setup proper access on drupal.org to commit code for others to download module. Since your module will be contributed to the community to be openly downloaded, it is essential to write proper documentation (video helps!) and provide admin user interfaces for non-technical users to import events. Don't forget to use "d.o coding standards".

Main resource = http://www.meetup.com/meetup_api/

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

Project Name: Port Apache Solr AJAX to Drupal 7

Project Approved by Admins? YES

Project Mentors: SamerOnline, serpicody

Interested Students: Prateek Sachan(xan.ps)

Project Difficulty: DIFFICULT

Project Skills/Prerequisite: PHP experience is main requirement. AJAX is required to keep the "searching active on one page". Solr is a big part of this project. Previous experience working with search systems such as Solr will help.

Project Description: Create a Drupal 7 module port of the current Drupal 6 module already accomplishing this functionality.

Project Goal: Allow users to utilize Apache Solr searching functionality within an active page using AJAX.

Project Resources: First step is to setup a testing server with Drupal and Apache Solr in Drupal 6 to see this type of functionality. It important to see how Solr runs parallel to Drupal and how/why Solr creates indexes. After you have a good understanding of Solr searching works in Drupal, then spend time reviewing the current Drupal 6 version of the module preparing for a port into Drupal 7. api.drupal.org will help show the diff between Drupal versions.

Documentation for Apache Solr Ajax: https://drupal.org/node/846686
Apache Solr Module: https://drupal.org/project/apachesolr

Module page to review and contrib new version @ https://drupal.org/project/apachesolr_ajax

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

Project Name: Port Disqus integration module to Drupal 8

Project Approved by Admins? YES

Project Mentors: slashrsm, Junaid P. V

Interested Students: Jayesh Solanki (angrycodr),Vaibhav Pande (vaibhav),Miraj (miraj9093)

Project Difficulty: EASIER

Project Skills/Prerequisite: PHP, JavaScript

Project Description:

Disqus is a 3rd party system for comments. It is used on various websites. There is already an integration module available for Drupal 7, which is used on almost 14,000 sites. We need to prepare this module for next major version of Drupal.

Project Goal:

Integration module currently supports Disqus comments only on Nodes and Users. We should generalize this to all entities. Entity API in Drupal 8 is much more powerful than the one in Drupal 7 core, which should help us achieve that. Project should also utilize D8 migrate subsystem to implement migrations from Drupal native commenting system to Disqus (and possibly vice-versa).

Any other integrations with Disqus API would be a bonus.

Project Resources:
- http://disqus.com
- http://drupal.org/project/disqus
- http://www.youtube.com/watch?v=fCsiFCsvam
- http://www.youtube.com/watch?v=SI5oAbzG1Mk
- http://disqus.com/api/docs

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

Project Name: Drupal 8 media subsystem

Project Approved by Admins? YES

Project Mentors: slashrsm, miro_dietiker

Interested Students: Sai Supreetha Varanasi(https://drupal.org/user/2848517), Kumar Rishabh(hellboy2k8) IRC (penguinRaider) [https://groups.drupal.org/user/2397638]

Project Difficulty: MEDIUM to DIFFICULT

Project Skills/Prerequisite: PHP, JavaScript, CSS, jQuery

Project Description:

Media has been a challenging part of Drupal for a long time. For Drupal 8 we decided to go with new solution, that will be built using knowledge and experience from all solutions that are available for Drupal 7. This project will focus on this new solution. There are many subsystems which can be part of this project. This project will likely focus on one or two subsystems only, which will be decided together with a student (preferably before the student application). It is also possible to split this project into more smaller project that focus on different parts of the media ecosystem.

(Very simplified) structure of the system:

Project Goal:
Deliver one (or two) working subsystems of Drupal 8 media ecosystem. Sub-systems include:
- editorial experience (media library, media selection, upload, re-usage)
- display (render) configuration
- migration scripts from D7 solutions like Media/File entity, Scald, ...
- 3rd party providers integrations (YouTube, Vimeo, ...)

Project Resources:
- http://janezurevc.name/drupal-bootstrap-drupal-gr8-media
- https://groups.drupal.org/node/327508
- https://groups.drupal.org/node/327768
- https://groups.drupal.org/node/380128
- https://groups.drupal.org/node/384813
- http://prague2013.drupal.org/session/let%E2%80%99s-fix-file-and-media-ha...
- https://www.acquia.com/resources/podcasts/acquia-podcast-124-drupal-8-me...

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

Project Name: fluxpocket (Pocket integration for Fluxkraft)

Project Approved by Admins? YES

Project Mentors: derhasi, aschiwi

Interested Students: Umar Ahmad(umar-ahmad)

Project Difficulty: DIFFICULT

Project Skills/Prerequisite: PHP, RESTful APIs, oauth, Drupal, OOP, Documentation

Project Description: Integration of Pocket service (getpocket.com) for the Drupal Fluxkraft distribution. fluxkraft is a module suite and distribution for automating your socialmedia workflows! Connect and automate tools like facebook, twitter, flickr and dropbox or schedule tweets to promote your website content! It is an OpenSource alternative to services like IfTtT, Zapier or Cloudwork. For really becoming a usable alternative more and more services should be integrated to Fluxkraft.

Project Goal: The main goal is to build a module for integrating the Pocket API in the fluxkraft distribution for Drupal 7. In addition that project can be an example for revising the existing Documentation should be revised to add to better support future service integrators.

As a result of the project there should be a Drupal module that adds Pocket functionality to fluxkraft. For example making it possible to retrieve and post articles to Pocket, filtering stored items by tag and adding and removing tags to items.

The documentation shall be updated to support other developers for implementing new services, like Youtube, Github, Yammer and co.

Project Resources: The best resource for getting into development of a fluxkraft service, is to study the current implemented services (@see https://drupal.org/project/fluxservice). The Documentation on the Pocket API can be found on http://getpocket.com/developer/docs/overview. A first step for the implementation has been started on https://drupal.org/sandbox/derhasi/2146781 but is currently freezing. In addition there is more information on the following pages:

https://drupal.org/project/fluxkraft
https://drupal.org/project/fluxservice
http://getpocket.com/developer/docs/overview
http://fluxkraft.com/learn-about
http://fluxkraft.com/contribute
http://drunomics.com/lab/fluxkraft
https://twitter.com/fluxkraft
https://drupal.org/sandbox/derhasi/214678

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

Project Name: Paragraphs (Drupal 8 Port)

Project Approved by Admins? YES

Project Mentors: derhasi, aschiwi

Interested Students:Srikanth

Project Difficulty: Easier

Project Skills/Prerequisite: PHP, Drupal module development, OOP, Drupal 8 patterns,

Project Description: Porting Paragraphs module to Drupal 8. Paragraphs is the new way of content creation! Instead of putting all your content in one WYSIWYG body field, your content will exist of a paragraph field containing multiple paragraph items. Paragraph items can contain multiple fields and have different types of field sets(bundles), which makes your content extremely flexible!

Examples: Add a slideshow between blocks of text, add a youtube embed between your text, add quotes between your content blocks.

Project Goal: The project will port the Drupal 7 Version from paragraphs to a propper Drupal 8 module. The paragraphs module provides a fantastic way for content creation by using Drupal's core concepts. The Paragraphs approach shall be ported in a way to fit the Drupal 8 concepts and patterns. In addition integration to Display Suite might be welcome, but depends on the state of the module for Drupal 8. Please cotnact mentors for additional information if interested.

Project Resources: The current project is located on https://drupal.org/project/paragraphs for Drupal 7. For information on upgrading modules from Drupal 7 to Drupal 8 you can check out https://drupal.org/update/modules/7/8 . Start by creating a fresh Drupal 7 site and configuring the current Paragraph module. Learn how to module works, review the code in IDE of your choice, and starting researching api.drupal.org for changes between Drupal 7 and Drupal 8. This is a fairly straight forward module port and will not be too difficult for someone with basic experience with PHP. It might be a good learning experience for someone new to Symfony.

=================================
Project Number: 13

Project Name: Migrate DrupalLadder.org to Drupal 8

Project Approved by Admins? YES

Project Mentors: Slurpee, dougvann

Interested Students: Andrei - Marius Dincu (https://drupal.org/user/2628879 ; IRC: andreimarius; drupalladder.org: andrei.dincu and andreimarius);Ankit Kotak(anksy - https://groups.drupal.org/user/2648758)

Project Difficulty: EASIER

Project Skills/Prerequisite: Data migration, version upgrade, site upgrade, Drupal 8, Symfony, structure, site building, learning tools, community building, new user essentials,

Project Description: drupalladder.org is a central place for people to find and contribute lessons and materials. drupalladder.org is built on the Drupal Ladder distrobution, which people can download and use on their personal computers to work through the Drupal Ladder lessons. Semi-related, Google Code-In students finished many tasks creating and updating lessons/ladders. If the project seems too basic, add a requirement that lessons are responsively viewed on mobile/tablet devices? Discussing a hosting infrastructure upgrade with migration, researching/recommending providers, and accomplishing the system administration tasks will help take project up a few levels with exposure to plenty of open-source tools along the way.

Project Goal: Migrate DrupalLadder.org into newest version Drupal 8. Any new user interested in contributing to Drupal can find value in DrupalLadder.org. Not only will student migrate website into newest version of Drupal, but they will help fix/improve basic functionality that has been sadly ignored by a busy community. Project goal is for DrupalLadder to be even more accessibile to new users ultimatley allowing stronger growth of our community.

Project Resources: Visit drupalladder.org, create a user account, and finish the "GSoC Student Ladder". It is clear to see the benefits of ladder system with the potential it contains, but is a bit clunky. Examples, the URLs of lessons/ladders are random characters, site is running multiple version updates behind, and lacks proper permissions blocking new contributor access. Maybe the domain should be forced to https similar to drupal.org? Layout with UI/UX is too basic and not mobile friendly. Plus site is not running on the newest version of Drupal which needs to be required moving forward. A great place to start learning more about the program is @ https://groups.drupal.org/drupal-ladder and of course creating an account at drupalladder.org. It will help students to finish multiple ladders to get started with Drupal faster. Do a bit more research on drupal.org about site migrations between Drupal versions. Which modules are running on druapalladders.org now that are not ready in Drupal 8 yet?

=================================
Project Number: 14

Project Name: Port XML Sitemap to Drupal 8

Project Approved by Admins? YES

Project Mentors: cYu, penyaskito

Interested Students: Andrei - Marius Dincu (https://drupal.org/user/2628879 ; IRC: andreimarius; drupalladder.org: andrei.dincu and andreimarius)

Project Difficulty: DIFFICULT

Project Skills/Prerequisite: Search Engines (google, bing), XML, 3rd party integration, PHP

Project Description: The XML sitemap module creates a sitemap that conforms to the sitemaps.org specification. This helps search engines to more intelligently crawl a website and keep their results up to date. The sitemap created by the module can be automatically submitted to Ask, Google, Bing (formerly Windows Live Search), and Yahoo! search engines. The module also comes with several submodules that can add sitemap links for content, menu items, taxonomy terms, and user profiles, but purpose og GSoC project is NOT to worry about submodules.

Project Goal: Create a Drupal 8 module for the XML Sitemap without additional submodules. It will be important to update documentation.

Project Resources: Start by reviewing the module in previous versions of Drupal @ https://drupal.org/project/xmlsitemap. The module page has plenty of documentation and ways to get started. In fact, a GSoC student worked on this in a previous version of Drupal in 2005.

Visit sitemaps.org to understand the specification. Also, please read the included README.txt( http://drupalcode.org/project/xmlsitemap.git/blob_plain/refs/heads/7.x-2... ), the handbook documentation( https://drupal.org/documentation/modules/xmlsitemap), and the current list of known issues( https://drupal.org/node/482550 and https://drupal.org/project/issues/xmlsitemap?text=&status=Open&prioritie... ) for more information.

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

Project Name: Build Example iOS App for Drupal 8

Project Approved by Admins? YES

Project Mentors: jefflinwood, skyredwang

Interested Students: ralph-mikera, Vivek_Pandya(http://drupal.org/user/2836629),Vishnusree Narne, jennik(https://drupal.org/user/2836949), Nadir Palacios(https://drupal.org/user/1384694)

Project Difficulty: EASIER

Project Skills/Prerequisite: Objective-C/Willingness to learn iOS Development

Project Description: Drupal 8's REST API for web services is new, and needs examples of how to connect to Drupal from an iOS app to retrieve content, post content, login, logout, and other operations. Because all Drupal sites work similarly, building an open source iOS application that can be used as a boilerplate for future mobile applications will help spark iOS app development for Drupal 8

Project Goal: The project deliverable will be a working iOS app that connects to Drupal 8, and provides content creation, editing, and retrieval, along with user registration, login, and logout. The project deliverables are somewhat open ended, in that the app can be useful with a minimum amount of functionality, or additional features can be added as the project progresses, for instance, adding camera integration.

Project Resources: Similar to the Android GSoC project @ https://groups.drupal.org/node/404778#project2 this project will use
Drupal 8 REST - https://drupal.org/node/2096019
Drupal iOS SDK - https://github.com/kylebrowning/drupal-ios-sdk
AFNetworking iOS Networking Library - http://www.afnetworking.com/

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

Project Name: Port faq.module to Drupal 8

Project Approved by Admins? YES

Project Mentors: Sivaji, chicagowebmgmt

Interested Students: hurtonypeter,Ankit Kotak(anksy - https://groups.drupal.org/user/2648758)

Project Difficulty: EASIER

Project Skills/Prerequisite: php, symfony, module port, drupal 8

Project Description: The Frequently Asked Questions (faq) module allows users, with appropriate permissions, to create question and answer pairs which they want displayed on the 'faq' page. The 'faq' page is automatically generated from the FAQ nodes configured. Basic Views layouts are also provided and can be customised via the Views UI (rather than via the module settings page).

Some feel porting faq is an easier project, but we have beneficial experience improving basic modules and this is a very popular module. In addition to porting module into newest version of Drupal, a secondary goal is introducing a student new to Drupal that can learn and accomplish majority of project on their own. This is important as we have had awesome experiences retaining students as contributors in past years of GSoC even on basic projects. Not to mention we don't want to scare away every possible student with too many difficult projects. If you think project is too basic, rest assured student will be migrating additional faq submodules related such as faqfield and possibility of adding new functionality into the module.

Project Goal: #1 Port the FAQ module into Drupal 8. #2 Introduce a student new to Drupal that can learn and accomplish majority of project on their own. #3 port additional faq submodules related to faq such as faqfield. #4 provide idea of new functionality to faq module and implement it.

Project Resources: First step is to setup a Drupal 7 site and build a faq page. A mentor can set this up in a matter of minutes for you. Second step is reviewing the module code in IDE of your choice and learn how everything works. Third step is reviewing api.drupal.org for differences in code between D7 and D8.

*https://drupal.org/project/faq
*https://drupal.org/drupal-faq
*https://api.drupal.org/api/drupal

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

Project Name: CRM Core Advocacy Toolkit

Project Approved by Admins? YES

Project Mentors: pingers, techsoldaten

Interested Students: Ravi

Project Difficulty: MEDIUM

Project Skills/Prerequisite: PHP, Drupal, REST, AJAX

Project Description:

Integrating CRM Core with Sunlight API to provide contact information for policymakers.

CRM Core profile module allows you to collect data about contacts and generate activities in CRM Core. CRM Core is a Drupal native CRM system, taking full advantage of Drupal's entity API. The CRM Core petition module is an implementation of CRM Core profile forms, which collects signatures and records them in CRM Core. As part of the need for improved advocacy tools, it would be great if forms could be configured to query external API's to target specific government representatives based on user input on the forms.

An example would be finding the representative member for your area based on zipcode. A personalized e-mail containing the signature would then be sent to that member on the user's behalf.

A good solution would provide:
* a field mapping interface for selecting which user input fields should be use to query the API
* an actions interface for determining what should happen based on the user input
* visual indication that a suitable target has been found based on the input
* Bonus points: integration with CRM Core reporting tools

Project Goal: Improve the CRM Core petition feature, lowering the barrier to entry for creating a personalized user experience in a Drupal based advocacy site.

Project Resources:

https://drupal.org/project/crm_core
https://drupal.org/project/crm_core_profile
https://drupal.org/project/crm_core_petition
https://drupal.org/project/sunlight
http://sunlightfoundation.com/api/

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

Project Name: TMGMT Usability

Project Approved by Admins? YES

Project Mentors: schnitzel, miro_dietiker

Interested Students: Tripad

Project Difficulty: DIFFICULT

Project Skills/Prerequisite: PHP, Drupal, Usability

Project Description:
TMGMT (Translation Management Tool http://drupal.org/project/tmgmt) has a lot of UIs which can be streamlined and enhanced with Usability tests.
There are two types of users.

Translation manager:
Some related UI components: Collecting translatable items, job progress overview, job creation, job checkout to order translation, finally translation review and QA cycles including communication with translator through comments.

Translator:
Some related UI components: Manage my translation skills, Jobs i'm eligible to translate, Assign jobs, Overview of assigned jobs todo / done, Perform translation and finally correct / improve translations from review feedback.

Also determine if there are important missing features.

Project Goal: Improve the Usability of the contrib module TMGMT, initiate systematic usability tests, craft mockups for proof of concept and test and finally work on implement features which help the manager and translator to acchieve their goal.

Project Resources: TMGMT issue queue, feedback of users (drupal end users, agencies, translation service providers, translators) of the module.

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

Project Name: TMGMT semantic language processing

Project Approved by Admins? YES

Project Mentors: miro_dietiker, Berdir

Interested Students:

Project Difficulty: DIFFICULT

Project Skills/Prerequisite: PHP, Drupal, Semantics, Language processing

Project Description:
TMGMT (Translation Management Tool http://drupal.org/project/tmgmt) is a module to unify the translation experience for managers and translators. While the fundamental process (collecting translatable items, order translation with a service provider, review result) is in place, the system still has no own understanding of the payload of the content to translate.

Translating free text from a WYSIWYG body field with formatted HTML is a pain. The recent XLIFF HTML masking support introduced tries to address the issue with first steps.

To correctly solve the issue, we need an understanding of source item text formats and their domain (semantics of the format like HTML) and have a parser to traverse the natural language source - considering language specific aspects.

Once we are at this level, we can detect sentences and can break content into segments. This allows us to interact with translation memories and offer a next generation of translation editor that replaces the plain text edit textarea.

Project Goal: Implement language processing plugins to parse natural language and identify fragments (sentences) while considering source domain markup (HTML, ITS http://www.w3.org/TR/its/, ). Provide a translation blob / field editor that supports the translator and reviewer with an advanced UI interacting with translation memory matches, thesauri, synonyms and variants.

Project Resources: Open source translation memories, W3C MW-LT standards http://www.w3.org/International/multilingualweb/lt/, OASIS standards (XLIFF)

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

Project Name: Highlight projects that follow Best Practices on Drupal.org

Project Approved by Admins? YES

Project Mentors: varunity, jcisio

Interested Students: Ankit Kotak(anksy - https://groups.drupal.org/user/2648758)

Project Difficulty: DIFFICULT

Project Skills/Prerequisite: php5, cms, gamification, drupal.org improvements

Project Description: Create some sort of visual acknowledgement on project pages that where modules meets a set of agreed upon rules about what it means to be a well supported module. Develop the metrics that can evaluate modules and essentially create an automated scorcard. Review a module page such as https://drupal.org/project/views to see what is currently available. Following "d.o coding standards" (https://drupal.org/coding-standards) is crucial to build modules compatabile with other contributor's code in a standard way, but many contributed modules on drupal.org don't follow the standards. Being able to see a quick block/widget on a module page if a module follow d.o standards would revoltionize our community and hopefully finally encourage module maintainers to update code to d.o standards.

Project Goal: Goal is for users downloading modules on drupal.org to clearn see if module follows drupal.org coding standards. The final deliverable is an automated scorecard/badge listed on module pages at drupal.org. Defining metrics and scoring will be a major part of this project. Most difficult aspect of project will be learning politics of large open source projects attemping to implement a new feature on the organizations main pages. Here is an example screenshot of what this might look like: https://drupal.org/files/issues/Automated_Scorecard.png

Project Resources: Read the developments and reccomendations on this thread: https://drupal.org/node/2186377 . Even Dries, the Drupal project lead, recognises the need for this type of feature: https://drupal.org/node/326096 . Find out more about how Drupal.org is maintained here: https://drupal.org/node/349123 and check the Drupal.org development guidelines: https://drupal.org/node/863568 .

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

Project Name: Project management / ticketing system framework

Project Approved by Admins? YES

Project Mentors: csandanov, IRuslan, PavelPrischepa

Interested Students: jayeshanandani

Project Difficulty: DIFFICULT

Project Skills/Prerequisite: PHP, Drupal

Project Description: There're lots of project management tools / ticketing systems already implemented, you can check all of them here https://groups.drupal.org/node/17948. We want to build the very fundamental platform like Drupal Commerce for E-commerce solutions. If you want to use Drupal as platform for your PM tools/Ticketing system, you will use this module (set of modules in fact) the same as you use Drupal Commerce for your e-commerce website. Also, we plan to build distribution which will deliver most of functionality out of box.

Project Goal: For start we should make big work on architecture, we need to investigate existing popular solutions (not just drupal), like redmine, JIRA, find all their advantages and lacks, describe them. Next thing is understanding of what is common in all this systems and what should be included in project. After that we should plan the way we want to implement it in Drupal way, as a result we should have the very basic module, which will probably provide few functionality, but that's just a beginning.

Project Resources: We don't want to invent the bicycle, we want to re-use previous experience and work of developers, so this page https://groups.drupal.org/node/17948 - is our main page.

Of course, we should get know the most popular implementations like:
* https://drupal.org/project/support
* https://drupal.org/project/casetracker
* https://drupal.org/project/project

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

Project Name: Make Workflow module D8's go-to module for workflow control!

Project Approved by Admins? YES

Project Mentors: johnv, Hai-Nam Nguyen

Interested Students: vsskanand(https://drupal.org/user/2849057)

Project Difficulty: EASIER

Project Skills/Prerequisite: PHP

Project Description: Workflow module has been around since Drupal 4! It adds 'workflows' to entities, controlling allowed 'state transitions' and access to entities based upon their state. It then serves as the motor for any helpdesk/communication/ticketing system (like described in project 32).

Project Goal:
- take the current D7-version, dive into the new D8 API's, and create an appealing module.
- abstract the API, so that any existing field/property can be loaded with a workflow.
- create presentation for mentor (or student) to present this important module at DrupalCon Amsterdam!

Project Resources:
- https://drupal.org/project/workflow
- https://drupal.org/project/state_machine

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

Project Name: Create sensor instances for Monitoring D8

Project Approved by Admins? YES

Project Mentors: miro_dietiker, Berdir

Interested Students:

Project Difficulty: EASIER

Project Skills/Prerequisite: PHP, Drupal 8 plugin and config entity system

Project Description:
Monitoring is a new Drupal application monitoring framework that is already initially ported to Drupal 8.

Further work is required to port the current sensor info into Drupal 8 config entities. This results in a major rewrite of the code. It will allow users to create instances through the UI. The current sensor settings will need further work to allow more flexibility in sensor creation.

As a result, very flexible sensors are easily configured and migrated with the config system

Project Goal: Establish config entities, provide a UI to create sensors, port current default sensors to default configuration.

Project Resources: Monitoring http://drupal.org/project/monitoring, Drupal 8

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

Project Name: Port Diff module to D8

Project Approved by Admins? YES

Project Mentors: Aron Novak, Sandip Khairnar

Interested Students: Lucian Hangea (lhangea)

Project Difficulty: MEDIUM

Project Skills/Prerequisite: PHP, JavaScript, Diff,

Project Description:
Diff module is available from Drupal 4.0, used by at least 50.000 websites currently, but this contributed module currently only receives maintenance fixes . It provides the ability to compare selected revisions of content, makes the differences visually noticable. From a long time ago, Drupal supports revisions for nodes, if configured accordingly, with every modification, new database rows are added, keeping the old ones, so there's a full change history. To make it available for the end-users, Diff module provides invaluable help. But it's not only helpful for the end-users. For example in Drupal 7, Features module depends on it to highlight changes in the stored configuration versus the database. With the improvements of configuration management in Drupal 8, it won't be useful for such purpose anymore, but this case demonstrates that Diff module is a good foundation for various contributed modules too, in addition to the core functionality. Drupal 8 entity system has default support for revisions for content entities, which needs to be considered at the conception of the architecture for the new version.
We need to port this module to the next major version of Drupal.

Steps to accomplish the goal:
- study the structure of the Drupal 7 version of the module and the offered functionalities
- understand the main changes needed by the architectural changes in Drupal 8
- port the code to Drupal 8, restructuring the parts to be inline with Drupal 8 best practices

This project requires a very good understanding of Drupal 8, it's advisable that in addition of PHP knowledge, the candidate student already has Drupal programming experience.

Project Goal: Port Diff module to Drupal 8 with at least the same amount of supported fields.

Project Resources:
Project page: https://drupal.org/project/diff
An in-progress documentation on the changes between Drupal 7 and 8: https://drupal.org/update/modules/7/8

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

Project Name: Gatling Drupal scenario recorder

Project Approved by Admins? YES

Project Mentors: Aron Novak, Binny Thomas

Interested Students: Akif Khan (akif500)

Project Difficulty: DIFFICULT

Project Skills/Prerequisite: PHP

Project Description: Gatling is an open-source stress tool which is suitable to learn about the scalability of your website. It comes with a HTTP proxy that can create so-called scenarios without writing a line of Scala code. The scenario is a series of actions - HTTP requests - that's performed. Those scenarios can be executed in many different ways in parallel to stress the site and the environment. When you record a session this way, for authenticated Drupal users, it won't be suitable, for example because Drupal protects form misuse by form_build_id, there's an ever-changing component in the POST submissions. We can envision a Drupal 7 module that acts as a Scenario recorder for the Gatling tool, focusing only on queries towards PHP generated pages. The site administrator can choose which user (session) to track, afterwards every action by that is put into the scenario. After the recording is stopped, the user can download the ready-to-use Scenario file.

Steps to accomplish the goal:
- understand how a Gatling scenario is built, especially about sending dynamic data based on incoming markup
- understand hook system of Drupal, how to catch needed information for the steps of the scenario (merely HTTP requests), first sketch of transforming available data into Gatling scenario
- make it an easy-to-use Drupal module
- test it with several common use-cases, creating, editing nodes, submitting views exposed filters and so on.

This project does not require extensive Drupal knowledge, it's more important to be ready to dive into several topics to accomplish something great. Interest in performance/scalability is a plus.

Project Goal: Provide a user-friendly Drupal module that can record the requests in such a way that it's re-playable by Gatling. Provide basic documentation for Gatling-newcomers on how to use the module to do tests.

It would be nice to provide both Drupal 7 and Drupal 8 versions too, but the task is complex enough without dealing with a non-released version of Drupal.

Project Resources:
Core project: http://gatling-tool.org/
Non-automatic approach of the problem: https://github.com/absalon-james/DrupalGatling

=================================
Project Number: 26

Project Name: Port Module GELF into Drupal 8

Project Approved by Admins? YES

Project Mentors: sandipmkhairnar, Sivaji

Interested Students:
Project Difficulty: DIFFICULT

Project Skills/Prerequisite: PHP, Symfony, SQL, CMS, Drupal, syslog, GELF, Graylog

Project Description: This module allows you to send watchdog messages to Graylog2 using the Graylog Extended Log Format (GELF) format.

Syslog is okay for logging system messages of your machines or network gear. GELF is a great choice for logging from within applications. There are libaries and appenders for many programming languages and logging frameworks so it is easy to implement. You could use GELF to send every exception as a log message to your Graylog2 cluster. You don't have to care about timeouts, connection problems or anything that might break your application from within your logging class because GELF can be sent via UDP.

Graylog - Field-tested open source data analytics system used and trusted all around the world. Search your logs, create charts, send reports and be alerted when something happens. All running on the existing JVM in your datacenter.

Project Goal: Port the previous versions of GELF.module into Drupal 8. Porting all functionality into Drupal 8 is not necessary as all the many functions don't even have a stable release in Drupal 6 or 7 yet. Goal of project is for student to crete a module following d.o coding standard porting basic GELF capabilities into Drupal 8. Actual provide feature deliverables will be discussed during student application period.

Project Resources:
https://drupal.org/project/gelf
http://www.graylog2.org/gelf
http://www.graylog2.org/#home
https://github.com/Graylog2/gelf-php.git

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

Project Name: Build a Documentation System with Drupal

Project Approved by Admins? (???)

Project Mentors: dashohoxha (anybody else is welcome to be a mentor)

Interested Students: Zahor

Project Difficulty: DIFFICULT

Project Skills/Prerequisite: PHP, Drupal Modules, Drupal Profiles, Drupal Features

Project Description: A documentation system that can be used for creating and editing simple DocBook documents, quickly and easily, from a web interface. It uses a simple text markup syntax, similar to a wiki markup, to denote some of the most commonly used DocBook elements. Then, this markup can be converted to HTML for being displayed on a browser, and most importantly, can be converted to XML for exporting the documents in the DocBook format.

The number of tags/elements that can be used in a DocBook document is huge (see: http://www.docbook.org/tdg/en/html/part2.html). Fortunately, the structure of a DocBook document is very flexible, not all of the tags are required, and with a very small subset of them one can write pretty good DocBook documents. DocBookWiki employs a very small subset of DocBook tags, which usually are enough to write manuals or other technical documents for programs or applications. Maybe later it can also become extensible, in order to support other types of documents as well.

There is already a Book module in Drupal, which takes care of the book layout and navigation (the hierarchy of the pages and their order and relation to each other).
This project is built on top of it and extends its functionality.
Two custom modules are being developed, which allow to create, edit, import and export simple DocBook documents. An installation profile is being developed as well, which will try to make sure that the installation/configuration is done easily, it includes all the needed modules and features, and it provides a working system out-of-the-box.

There are also several modules that are based on the Book module
and extend it in different ways. Maybe they can be integrated on this profile too.
The problem is that some of them are a bit old (for example Drupal6 or Drupal5
modules) so they will need to be ported to Drupal7 or other modules with similar
functionality can be developed.

Project Goal:
1. Build a Drupal7 installation profile for documentation, which is similar to Booki: http://en.flossmanuals.net/booki-user-guide/
2. This profile will be based on the module Book and will integrate other existing modules that extend the Book module in various ways (some of these modules may need to be ported or to be fixed).
3. In addition, new modules will be developed for supporting DocBooWiki functionality.
4. The system should be able to import and export books in DocBook and other common formats.
5. The code of the project should be compliant with the Drupal coding standards and the project will be submitted as a full Drupal project.

Project Resources:
DocBookWiki on GitHub: https://github.com/dashohoxha/DocBookWiki
Sandbox project on drupalcode: http://drupalcode.org/sandbox/dashohoxha/2069279.git
Group on DrupalGroups: https://groups.drupal.org/docbookwiki

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

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

Project Name: Build an Elastic search module for Drupal 8

Project Approved by Admins? (???)

Project Mentors: Nick Veenhof, Thomas Seidl

Interested Students: sachith500Ridwan Shariffdeen, Prateek Sachan(xan.ps)

Project Difficulty: DIFFICULT

Project Skills/Prerequisite: PHP, CSS, Javascript, Drupal module development, composer, JSON, Solr, REST.

Project Description:
Elasticsearch is a flexible and powerful open source, distributed, real-time search and analytics engine. Elasticsearch is a search server based on Lucene. It provides a distributed, multitenant-capable full-text search engine with a RESTful web interface and schema-free JSON documents. Architected from the ground up for use in distributed environments where reliability and scalability are must haves, Elasticsearch gives the ability to move easily beyond simple full-text search. Many large companies are relying on Elasticsearch, such as Wikimedia, StumbleUpon, Mozilla, Quora, Foursquare, Etsy, SoundCloud, and GitHub. Elasticsearch is developed in Java and is released as open source under the terms of the Apache License.

Project Goal:
Develop an Elasticsearch module for Drupal 8 leveraging the new Search API.

The first challenge will be to review the various ways search has been implemented in Drupal using ApacheSolr, search_api_solr, and the various elasticsearch modules available on drupal.org. Based on this list of features and requirements, the student will propose a viable architecture for elasticsearch on Drupal 8 and Search API. The student will work closely with the Search API team in order to provide feedback on what additional features might be required in Search API to support the use case of elastic search. In return, the Search API team Nick Veenhof and Thomas Seidl will be available to answer questions and provide guidance. The end goal is to build an elasticsearch module for Drupal 8 allowing site builders to create fully featured search pages powered by elasticsearch, including faceting, sorting, spellchecking, ...

The query workflow of Search API for Drupal 8 sets more context around elasticsearch:

Project Resources:
There are a few elasticsearch modules available for Drupal 7, and the student will have to review the features provided by each of them to compile a list of must-have features for the Drupal 8 elastic search module. The Drupal 7 modules are:
- https://drupal.org/project/elasticsearch
- https://drupal.org/project/search_api_elasticsearch
- https://drupal.org/project/elastic_search_clients
- https://drupal.org/project/elasticsearch_connector

The Elasticsearch project is an open source project with lots of documentation, videos and use cases online:
- http://www.elasticsearch.org/overview/
- https://en.wikipedia.org/wiki/Elasticsearch
The ApacheSolr maintainers and the Search API maintainers have decided to combine efforts for making search in Drupal 8 better than ever. They discuss this online, see for example:
- https://groups.drupal.org/node/327723
- https://groups.drupal.org/node/327728
- http://www.acquia.com/blog/battleplan-search-solr-drupal-8

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

Comments

Query related securesite project?

Kunal Arora's picture

Hello
My doubt is specifically to mentors Lee and serpicody as I am interested in working on securesite project,but others are welcome to answer the query.I am really not getting what to do in the project, the project wants us to make some elements on the website password protected or if a site is under maintenance then the user should not be able to access it.
Can you please provide a brief idea ....Thanks in advance.

Akif Khan akif500's picture

Hi
I am Akif Khan, a 3rd year undergraduate student from New Delhi,India. I am intrested in working on this project idea and would like to know much details about it. I was a GSOC student last year with openSUSE.
I am not sure how to contact the mentors. can we get thier email ids or I have to contact them through IRC ?
Waiting to hear from you.

Cheers!
Akif Khan

Re: Interested in Project Number 25

darklrd's picture

Hi Akif,

You may contact mentors via our IRC channel - #drupal-google. If you are unable to get in touch with them there, then you may send them a message using contact form on their drupal.org profile.

Cheers!

interested students

Slurpee's picture

I added a field to each project description for "Interested Students:". If you're a student and you plan to write an application for the project, add yourself to wiki by updating this page.

Student here. Great addition

AshleyGerard's picture

Student here.

Great addition Slurpee, and thanks for thinking about us!

Contact Mentors

jayeshanandani's picture

Hello all,

I was looking a way to contact mentors. I tried looking up them on IRC but I didnt knew their nicks and apart from them I had left them a message from Contact page. Is there any other way to contact mentors?

Working on:

Project Number: 21

Project Name: Project management / ticketing system framework:

Thanks and Regards,
Jayesh Anandani

How long have you been waiting?

Slurpee's picture

When did you contact both mentors? How long have you been waiting for a response? Did you chat with anyone on IRC? We're on IRC now willing to answer questions.

As stated at top of this page..."Still can't contact anyone? Try our 2014 admin team directly (Slurpee, Slashrsm, or Varunity)."

GSOC 2014 - new project idea

nagashreesbhat@gmail.com's picture

Hello,
I have applied for GSOC 2014 with a new project idea but till now haven't got any reply/comments from the drupal team for my project proposal on Traffic analyzer as a security monitor.

Can anyone suggest how to contact mentor on IRC channel at freenode as I donno the nick

hemantgoyal123's picture

I am hemant goyal, undergraduate 3rd year from Rajasthan INDIA. I want to get involved in this project idea. I have applied for GSOC 2014 and I dont know how to contact mentor and meet on IRC channel so please help me out and make me concern.

have a nice day
hemant goyal

The project submission has closed

jefflinwood's picture

Hi Hemant,

The project submission deadline for GSoC has already closed, so you can't work on this project through Google Summer of Code 2014. I think the deadline was last month.

If you have questions about iOS app development for Drupal (in general), I'd be happy to help out.

Thanks,
Jeff

Email to mentor

vivekvpandya's picture

Hemant
This guy is one of the mentor for the same project
Jeff Linwood jlinwood@gmail.com and he replies to the mail regularly. And if you have set up your IRC nick name than you can join drupal channels form this url irc://irc.freenode.net/drupal, irc://irc.freenode.net/drupal-contribute any many more can be found on https://drupal.org/irc.

Google Summer of Code

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: