Google Code-in 2013 Task List (organized)

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!

Drupal's Google Code-in Task List 2013
===================================================
Title: EXAMPLE TITLE
Time: X Hours
Difficulty: (Easy, Medium, Difficult)
Category: (Code, Documentation/Training, Outreach/Research, Quality Assurance, User Interface)
Mentor: DRIES
Description: EXAMPLE OVERALL SUMMARY OF THE TASK.
Deliverables: EXAMPLE DETAILS OF WHAT IS EXPECTED OF TASK.
Resources: EXAMPLE RESOURCES TO HELP ACCOMPLISH TASK.
===================================================

*Code: Tasks related to writing or refactoring code
===================================================
#1 - Title: Code/Write Tour Module Tips your Favorite D8 Module

Time: 20 Hours

Difficulty: Easy

Category: Code

Mentor: Slurpee

Description: Tour.module is one of the new features in Drupal 8 core that is easy to use and will save many users lots of time. Research Drupal 8 modules that are currently working, find important information the Tour module can help with, then code the tour tips directly into the module.

Deliverables: Many of the fancy modules are for Drupal 8 are not ready, so focus on more basic modules that are lacking important information. Find and code at least 5 tips into one or more modules using the Tour module. After you finish coding, contribute the code to the appropriate d.o project page. Task is complete after the code is approved and added to d.o. If you have trouble hearing back from the module contributor about approving the code, contact your mentor.

Resources: Review drupal.org for various types of documentation and reference other modules implementing Tour. Places to start... https://api.drupal.org/api/drupal/core%21modules%21tour%21tour.module/8 https://drupal.org/project/tour_ui https://drupal.org/project/tour_builderhttps://drupal.org/node/1926296
===================================================
#2 - Title: Code a mobile base/starter theme for Drupal 8

Time: 40 Hours

Difficulty: Medium

Category: Code

Mentor: dudenhofer

Description: Over the years our Drupal community has started to adapt to utilizing various base/starter themes for building websites such as Zen and Omega. Many themes contain similar layouts such as grids, blocks, regions, menus, etc. Why waste your time rewriting the same code as someone else in an open source community? It is your task to create a simple yet useful base/starter theme for Drupal 8 that is focused on mobile browsers.

Deliverables: Follow drupal.org coding standards to create a theme. Create a sandbox project on drupal.org, upload theme, and request mentor to review.

Resources: Research other base/starter themes such as Zen and Omega. Next figure out what is important and should obviously be included in every mobile theme. Don't forget to review the Drupal 8 documentation about themes.
===================================================
#3 - Title: Code a Drupal 8 Module to Authenticate/Login Users via G+, Tw, FB, or Li

Time: 40 Hours

Difficulty: Difficult

Category: Code

Mentor: Slurpee

Description: Select one of the following 3rd party websites and code a module to authenticate user logins for a Drupal 8 site: g+, Twitter, Facebook, or LinkedIn. No additional features are required in the module. Simple user authentication into Drupal via the 3rd party service is the only requirement. Of course your module should have all of the standard documentation and follow d.o coding standards with proper module files.

Deliverables: Create a development sandbox on drupal.org for the project. Upload your module directly to the sandbox with instructions on how to test. Make sure to follow "d.o coding standards". Request mentor to review the code and module. Not necessary to complete task, but try to have your module approved from a sandbox to a real project/module page on d.o.

Resources: Review the APIs for the 3rd party services and the Drupal 8 API seeing which code you can relate to the easiest. Review modules that accomplish the same task for previous versions of Drupal. Review drupal.org process for creating and working with sandboxes.
===================================================
#4 - Title: Port any core VoIP Drupal modules to enable first phone or SMS call from a D8 site

Time: 60 Hours

Difficulty: Difficult

Category: Code

Mentor: Leo Burd

Description: Research VoIP providers with APIs that will work with Drupal 8. Code a module to connect the service and make the first phone call (or sms) with Drupal 8.

Deliverables: Create a sandbox project on drupal.org, upload code, and request mentor to review. Or contribute to an existing sandbox/module/project on drupal.org.
Resources: Review various VoIP providers such as Twillio that have awesome API documentation and previous versions of Drupal that have accomplished similar tasks.

Resources: Review various VoIP providers such as Twillio that have awesome API documentation and previous versions of Drupal that have accomplished similar tasks.
===================================================
*Documentation/Training: Tasks related to creating/editing documents and helping others learn more
===================================================
#1 - Title: Learn the Drupal Admin UI by building a Drupal Gardens website for yourself

Time: 10 depending on complexity

Difficulty: Easy

Category: Documentation/Training

Mentor: dudenhoffer

Description: Drupal Gardens (and its documentation) gives you a great chance to learn about assembling and running a Drupal website without having to code.

Deliverables: Set up a website for yourself, your sports club, your local school, whatever you need! Bonus points for building your own webform, learning why and how to use Views, and reuse content!
Resources: http://www.drupalgardens.com/documentation
===================================================
#2 - Title: Attend/Host a Drupal Event/User Group/Camp/Training/Meetup/Webinar/Whatever

Time: 5 hours

Difficulty: Easy

Category: Documentation/Training

Mentor: Slurpee

Description: Find an event that will mention or feature Drupal in your area (on line webinars are acceptable too). Register, attend, and write up a blog about the experience. Now the difficult part...Contact the event organizer, tell them you're a GCI student, and request a chance to stand up at start of meetup to explain/promote the GCI program. Many Drupal events are free or low cost. If entrance fee is a factor, contact task mentor and maybe we something can be arranged.

IF AN EVENT IS NOT IN YOUR AREA, CONTACT TASK MENTOR ABOUT HOSTING YOUR OWN DRUPAL MEEUTP!

Deliverables: Provide a link to the event and blog about the experience. Make sure to take at least one picture (or screenshot if virtual) for the blog and evidence of attending. Video of GCI promotion is not necessary, but would be awesome.

Resources: Search groups.drupal.org for a user group in your region, try meetup.com, and search Google for Webinars. Many Drupal companies host regular webinars such as Acquia, OS Training, and The Nerdery.
===================================================
#3 - Title: Install and Review the Community Media Stater Kit (Easy) Distribution

Time: 15 Hours

Difficulty: Medium

Category: Documentation/Training

Mentor: kreynen

Description: The Community Media Starter Kit (Easy) is a Drupal distribution designed for nonprofit media organizations to quickly build sites with video using RSS feeds provided by YouTube, Vimeo, Archive.org, Cloudcast, etc.

Deliverables: Using a free Pantheon site, install and configure a Community Media Starter Kit as to pull in videos about your school or city. Follow the configuration instructions. Take notes on anything that was not clear. Post an issue or question to https://drupal.org/project/cm_starterkit_easy. Start a discussion thread on https://groups.drupal.org/community-media about your experience. What was easy? Confusing? What would make it easier?

Resources: https://groups.drupal.org/community-media, https://drupal.org/project/cm_starterkit_easy
===================================================
#4 - Title: Document D7->D8 Theme Changes

Time: 40 Hours

Difficulty: Difficult

Category: Documentation/Training

Mentor: Dudenhoffer

Description: Lots of changes are happening in the theme system from Drupal 7 to Drupal 8. It is important for any and all "themers" to be aware of these changes. To help prepare our community it is your duty to research, test, and document many of the overall changes in the theme system. How will developers upgrade their themes from Drupal 7 to Drupal 8? Documenting every single change is important, but remember that in the open source community someone else can continue improving the document after the Code-In contest. It is your goal to provide a solid start to this initiative. This will provide our community a guideline of how to get started and save them headaches when starting to port themes.

Deliverables: Create or find a documentation page on Drupal.org for D7->D8 theme changes and have it added as part of the official Drupal 8 documentation. Provide at least "10 good tips/changes" in the documentation to finish task. Obviously adding more than 10 tips will be appreciated and will help the Drupal community port themes even faster!

Resources: Research Drupal.org for similar documentation in legacy versions. Example, documentation of porting themes from Drupal 6 to Drupal 7.
===================================================
*Outreach/Research: Tasks related to community management, outreach/marketing or studying problems and recommending solutions
===================================================
#1 - Title: Design a Graphic Badge for "Drupal GCI 2013"

Time: 10 Hours

Difficulty: Easy

Category: Outreach/Research

Mentor: Slurpee

Description: Badges are becoming more popular for students, consultants, employees, and companies to show off their participation in events and/or organizations. Not necessary, but it would be cool to allow the badge to be used in social networks such as FB/Li (open to ideas).

Deliverables: Create a graphic badge for "Drupal GCI 2013" in png/jpg, upload to d.o, and provide copy/paste HTML for yourself and other GCI students and mentors.

Resources: Search for other Drupal events and associations that have badges for members to put on their websites/blogs/whatever.
===================================================
#2 - Title: Design a T-Shirt for Drupal GCI 2013

Time: 20 Hours

Difficulty: Medium

Category: Outreach/Research

Mentor: Slurpee

Description: Design a t-shirt logo that is ready with specifics to print. If task is approved, we will find funding to make the t-shirts and ship to every student that completes at least 5 tasks.

Deliverables: Professional t-shirt printing file formats with exact details in documentation for printer.

Resources: Start looking at common t-shirt printing services. What type of specifics do they require for upload? Look for "drupalcamp t-shirt" that have already been printed. There are TONS of random Drupal t-shirts already out there.
===================================================
#3 - Title: Meet Dries Buytaert in real life and get his autograph

Time: 5

Difficulty: Difficult

Category: Outreach/Research

Mentor: Slurpee

Description: Find and meet Dries in person. Explain you're part of GCI and discuss your interest in Drupal. Dries is the founder of the Drupal project.

Deliverables: Take a picture with Dries and upload it to the task.

Resources: This might be a difficult task, but for someone lucky this might be an easy task. Dries frequents many events around the world. Check out d.o, blogs, and look for Drupal events in your area. It is VERY IMPORTANT not to stalk anyone in our community, so please be careful in the method of which you track down Dries.
===================================================
#4 - Title: Create an Event/Meetup Template for Drupal User Groups

Time: 15 Hours

Difficulty: Difficult

Category: Outreach/Research

Mentor: Slurpee

Description: All over the world Drupal user groups are happening on almost a daily basis. Drupal's on line and in person communications are some of our best attributes as a community. Research event listings of Drupal user groups on groups.drupal.org and meetup.com. Do you see a common factor between all of these event listings? Of course event's require basic information such as Who, What, Where, When, Why, How...However, some of these event listings are missing basic information and many others missing other important notes such as parking at the event location. Example, will there be a presentation at the event? If so, who is the presenter and what is the presentation summary? Your task is to create an easy to use template that any user group can utilize. Standardization truly helps evolve innovation and event listings should be easy to read/understand.

Deliverables: Create a node on groups.drupal.org/user-group-organizers with an easy to use template for event organizers. Be creative in the way the template works. Will it be a simple text file with search/replace? Or maybe you can build a quick Drupal site with an event content type, fields for all the data, and views with css to display the event listing in a very specific format? A standard listing of date/time with an address is not acceptable. This task requires thinking out of the box to include every detail a Drupal user group would ever need to display to potential attendees.

Resources: Research event listings of Drupal user groups on groups.drupal.org and meetup.com. Do you see a common factor between all of these event listings? Many of the event listings are fragmented or missing valuable information. Research good and bad event listings. How can we resolve this issue?
===================================================
*Quality Assurance: Tasks related to testing and ensuring code is of high quality
===================================================
#1 - Title: Test Bartik on Multiple Devices in Multiple Browsers

Time: 10 Hours

Difficulty: Easy

Category: Quality Assurance

Mentor: Slurpee

Description: Test the default Drupal 8 theme named Bartik on multiple devices in multiple browsers.

Deliverables: Obviously the basic desktop browsers have passed the standard cross browser test. Test the theme on various page in at least 3 devices and at least 3 browsers on each device (mobile/tablet/whatever). Contribute your feedback directly to the appropriate Bartik nodes on drupal.org with as many details/screenshots/feedback as possible. Note, positive feedback is good too (we might be pleased to hear everything works perfectly on old versions of Nokia phones). You will need to have a basic Drupal 8 install running to start this task. If you need help setting up a site, please contact mentor as this can be setup in a matter of minutes for you.

Resources: Review other cross browser testing scenrios and apply them to Bartik. Many web sites offer services for various browsers. If you need access to on of these paid services, please contact task mentor.
===================================================
#2 - Title: "Drupal 8 Multi-site" Develop a Drupal site and sub sites (mini sites) using one code base and multipple databases

Time: 40 Hours

Difficulty: Medium

Category: Quality Assurance

Mentor: Abdulqadir028

Description: Setup 2 different Drupal website that will have all the same functions with different themes and different database (One Code base and multiple databases). Multisite has been one of Drupal's best features since Drupal 4 and it is important we fully test its capabilities in Drupal 8 as many websites depends on this type of configuration and make it work even better. It is very important this process and documented/tested very well prior to Drupal 8 being released.

Deliverables: Two websites that will be using the same modules and folders but will have different content and users due to having separate databases.

Resources: Research on settings.php configuration and folder settings to call the settings.php file for sites. http://drupal.stackexchange.com/questions/36328/multiple-drupal-sites-us...
===================================================

#3 -Title: Install and Review the CiviCRM Stater Kit Distribution

Time: 10 Hours

Difficulty: Medium

Category: Quality Assurance

Mentor: kreynen

Description: The CiviCRM Starter Kit is a Drupal distribution designed for nonprofits including Schools, Sports Boosters, Arts and Music Fundraisers, etc. It includes features like event registration, mass emailer, donations, web forms, etc.

Deliverables: Using a free Pantheon site, install and configure a CiviCRM Starter Kit as if it was going to be used by your school or club, etc. Follow the configuration instructions. Take notes on anything that was not clear. Post an issue or question to https://drupal.org/project/civicrm_starterkit. Start a discussion thread on http://forum.civicrm.org/index.php/board,6.0.html about your experience. What was easy? Confusing? What would make it easier?

Resources: http://forum.civicrm.org/, https://drupal.org/project/civicrm_starterkit
===================================================
#4 - Title: Set up your own eCommerce store using Commerce Kickstart

Time: 20 depending on complexity

Difficulty: Difficult

Category: Quality Assurance

Mentor: dudenhofer (horncologne submitted)

Description: Download and install Commerce Kickstart on your server, Dev Desktop, whatever. Learn how the system works by setting up and customizing your own eCommerce shop. Document any problems or confusing directions in the documentation.

Deliverables: A customized eCommerce website based on the Commerce Kickstart package. Submit your findings to the appropriate issue queue for Commerce. Please contact task mentor if you have any problems as he works with Kickstart full time.

Resources: http://www.drupalcommerce.org/commerce-kickstart-2
===================================================
===================================================
*User Interface: Tasks related to user experience research or user interface design and interaction
===================================================
#1 - Title: Improve Drupal.org Registration/Welcome Process/Email

Time: 15 Hours

Difficulty: Easy

Category: User Interface

Mentor: Slurpee

Description: Register a user at drupal.org and document the process. Then provide feedback on how to improve the process and an improved email template for the welcome/registration email. This is very important and is a great task for someone new to Drupal. What information do you assume will appear? What obvious information is missing? What provided information is confusing and/or pointless?

Deliverables: Submit issues to d.o as any normal user would suggest to improve this process. Contact task mentor if you have questions on the process.

Resources: Go to drupal.org and register a new account. If you already have an account, create a test/fake account somewhere.
===================================================
#2 - Title: Landing Page for Community Media Starterkit Distribution

Time: 15 Hours

Difficulty: Medium

Category: User Interface

Mentor: jdcreativity

Description: Configure a landing page at least 2 different roles for the Community Media Starterkit Distribution that provides an embedded video and blocks to easily get started with site use and configuration.

Deliverables: 2 custom pages for two specified roles. Includes custom blocks.

Resources: https://groups.drupal.org/community-media, https://drupal.org/project/cm_starterkit_easy
===================================================
#3 - Title: Document 3 Mobile CMS Interfaces

Time: 4 Hours

Difficulty: Medium

Category: User Interface

Mentor: varunity

Description: Find and install mobile apps and mobile user interfaces (UIs) from content management systems (CMSs) other than Drupal, and add screenshots of their UI in a wiki on http://groups.drupal.org/usability -- the Drupal usability team would like to discover and draw inspiration from as many mobile interfaces that other CMSs offer as they can.

Deliverables: Make screenshots of the mobile interfaces for 3 CMSs other than Drupal and share this research with the Drupal community. Create an account on D.O. and join the Usability group: http://groups.drupal.org/usability. Log in and create 3 wiki pages with a title like "Mobile CMS screen shots of CMSNAME on DEVICE" (where CMSNAME is the name of the CMS you tried, and DEVICE is the mobile device you used). Upload your images, and make a page that tells what CMS you tried, and what the screenshots are (i.e., which tasks you were doing on your mobile device during each screen shot). Save the page.

Resources: Screenshots and uploading images: https://drupal.org/node/762
Document Mobile CMS Interfaces: https://drupal.org/contributor-tasks/document-mobile-cms-interfaces
===================================================
#4 - Title: Reproduce an Issue and Create Webcast on How to do Accessibility Testing

Time: 20 Hours

Difficulty: Difficult

Category: User Interface

Mentor: varunity

Description: Web accessibility refers to the inclusive practice of making websites usable by people of all abilities and disabilities. Verify a Drupal 8 issue(eg. with http://simplytest.me/project/drupal/8.x ) that "needs accessibility review". Use this research to create a simple webcast describing what web accessibility is and how to test a website for accessibility issues using a screen reader or a tool such as the WAVE toolbar: http://wave.webaim.org/ .

Deliverables: Reproduce an accessibility issue in Drupal 8 core. Comment on the issue on drupal.org to document steps to reproduce the reported issue. Create a webcast explaining what web accessibility is and how to do a website accessibility audit.

Resources: Wikipedia: http://en.wikipedia.org/wiki/Web_accessibility
There is a description of how to do accessibility testing here: https://drupal.org/contributor-tasks/accessibility-review
All you have to do though is document steps to reproduce a reported (accessibily) issue: https://drupal.org/contributor-tasks/add-steps-to-reproduce
Also check out the accessibility "core gates" for reference: https://drupal.org/core-gates#accessibility
===================================================