GCI 2010-11
From Joomla! Documentation
This page has been archived. This page contains information for an unsupported Joomla! version or is no longer relevant. It exists only as a historical reference, it will not be improved and its content may be incomplete and/or contain broken links.
Google Code-in 2010-2011[edit]
Introduction[edit]
Google Code-in (GCI) is a contest for pre-university (13-18 year old) students, that aims at helping students get involved in Open Source projects.
Google Code-in Frequently Asked Questions
Proposed Tasks[edit]
Code[edit]
Tasks related to writing or refactoring code
Challenging
- Add the ability for the Mass Mail feature in Joomla 1.6 to be able to send HTML messages.
- Add a batch update facility to the Joomla 1.6 user manager to be able to batch add, remove or set the user groups for users in a list.
- Create a bulk import utility for the Joomla! user manager to create from a csv file and optionally notify users of their account details via email.
- Create a plugin to allow users to delete their accounts.
- Create a new component syndicate a combined feed from two separate components.
- Create a new document type: vcalendar.
- Create a new document type: ical.
- Create a new document type: rdf.
- Create a new document type: hcard.
- Create a new document type: csv.
- Create a new document type: vcard.
- Implement frontend editing for com_contact.
- Implement frontend editing for com_newsfeeds.
- Implement a method for Apply in the front end for com_content or com_weblinks.
Intermediate
- Create a custom document type to download vcard information in RDF format.
- Create a Google Map user plugin for display based on address information in com_contact.
- Create a plugin that stores information from specific fields in a profile plugin in the jos_contact_details table
- Create a plugin that parses actions from Mosets Tree and stores them in Scout (directory monitoring)
- Create an administrator module for quick article create that could replace Quick Icons.
Basic
- Create a module to display a list of contacts in a category
- Create a module to display a list of newsfeeds in a category.
- Create user plugin to display a Twitter feed.
- Create a user plugin to display a Facebook feed.
Documentation[edit]
Challenging
- Document a complete class of the Joomla! Framework including appropriate code examples from the Joomla! core or elsewhere. (This task can be repeated for each framework class).
- Create a document describing the observer design pattern and how it is implemented in Joomla! plugins.
- Consult with the Joomla! development community and draft proposed code style standards for XML.
Intermediate
- Document the use of alternative component layouts and provide a detailed commented example for each of the core components.
- Document the use of alternative module layouts and provide detailed commented examples for at least 5 core modules.
- Document how to create a custom document type, using a core component as an example (document types might be rdf, csv, hcard, ical, hcal etc).
Basic
For each of these create a page in docs.joomla.org
- Describe the way view access levels can be expanded in Joomla 1.6 and how a site owner would use them to control the visible access to site content.
- Describe the meanings of the core permissions in Joomla 1.6 and the four levels over which they can be applied.
- Describe the Global Level of permissions in Joomla 1.6 and how a site owner might use them to broadly control site access.
- Describe the Component Level of permissions in Joomla 1.6 and how a site owner can restrict users in groups to certain components.
- Describe the Category Level permissions in Joomla 1.6 and how a site owner can restrict content providers to create, edit and delete content in those categories.
- Describe the Article Level permissions in Joomla 1.6 and how a site owner can restrict content providers to edit and delete their articles.
- Describe how site owners can use the Edit Own permission effectively in Joomla 1.6.
- Describe how a template designer can create a template parameter to for the site owner to include their Google Analytics code in the template automatically.
- Describe how to restore the default ACL settings.
Outreach[edit]
Challenging
- Do a presentation for a local club, school or group on how to create a Joomla! Website. Write a brief report about the experience. (Can be done by several people)
- Create a Joomla! website for a non profit organization. Write a report about the experience. (Can be done by several people)
- Create a survey of third party developers to learn how closely they follow Joomla! core development and what forms of communication about core development they would find most useful.
Intermediate
- Write an article for the Joomla! Community Magazine
- Write an article about Joomla! or the Joomla! Project for your school newspaper or a local newspaper.
- Assist with Joomla! community collaboration efforts to improve user interface on United Nations Conference on Sustained Development 2012 website
- Coordinate information architecture updates for joomla.org redesign project
Basic
- Create contributing author badge for the Joomla! Community Magazine
- Create list of online media outlets for distribution of Joomla! announcements
- Update Author Resources content for the Joomla! Community Magazine
Quality Assurance[edit]
Tasks related to testing and ensuring code is of high quality
Challenging
- Write a PHPUnit test for a package or sub-package in the Joomla Libraries.(multiple opportunities exist for this task).
- Write a Selenium System test to cover a unit of the CMS functionality.(multiple opportunities exist for this task).
Intermediate
- Take a package or sub-package from the Joomla Libraries and ensure that the code formatting complies with our standards, and make corrections as appropriate (multiple opportunities exist for this task).
Basic
- Review 24 hours of posts in the New to Joomla! forums and report on the most common problems reported.
- Review 24 hours of posts in the Administration forums and report on the most common problems reported.
Research[edit]
Tasks related to studying a problem and recommending solutions
Challenging
Intermediate
Basic
- Analyze usage of the Joomla! Developer site and recommend
- Analyze usage statistics for Joomla! Community Magazine and recommend changes to increase traffic
Training[edit]
Tasks related to helping others learn more
Challenging
- Suppose a teacher in your school was going to spend a month teaching his or her students to use Joomla! to make a website. Interview a teacher in your school about what resources would be useful for that and create a resource portal of links and materials on docs.joomla.org.
- Suppose a teacher in your school was going to spend a month teaching his or her students to develop a simple Joomla! component. Interview a teacher in your school about what resources would be useful for that and create a resource portal of links and materials on docs.joomla.org.
- Suppose a teacher in your school was going to spend a month teaching his or her students to create a Joomla! template. Interview a teacher in your school (this might be an art teacher) about what resources would be useful for that and create a resource portal of links and materials on docs.joomla.org.
Intermediate
Basic
- Create a "HTML Basics" document aimed at someone who has a Joomla! site but has only used a WYSIWYG editor.
Translation[edit]
Tasks related to localization
(Multiple opportunities exist for each of these but may be limited by the availability of mentors in a specific language. Limit of one task per distinct language.) Challenging
- For a language that does not have an accredited translation team, begin the process of organizing a team. Completion of this task will involve contacting the translation coordinators, using resources such as local JUGs and the Joomla! Forums and People site to find collaborators, learning to use com_localise, and beginning the translation process.
- For a language that does not have an accredited translation team, provide a translation of core strings.
Intermediate
- Translate the Absolute Beginner's Guide into a language besides English.
- Translate the documentation on creating translations and becoming an accredited translation team into a language besides English.
- Translate the security documentation into a language other than English. (http://docs.joomla.org/Security)
Basic
- Provide an accredited translation team with translation of sample data.
- Provide an accredited translation team with the translation of the help screens for one complete component.
- Provide an accredited translation team with translation of 100 strings.
User Interface[edit]
Tasks related to user experience research or user interface design and interaction
Challenging
Intermediate
Basic