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[edit]
- 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.
- Create a component that would allow a backend user to change his or her password and other account settings in the backend without having access to the com_users user interface.
- Create a Debian package for Joomla! 1.6.
Intermediate[edit]
- 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[edit]
- 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[edit]
- 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[edit]
- 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[edit]
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[edit]
- 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[edit]
- Translate the Evaluators Persona (http://docs.joomla.org/Evaluators) into a language other than English.
- 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
- Meet with the team working on the redesign of joomla.org and write an article about the current status. (Can be repeated every 2 weeks)
- Staff or help staff a Joomla! table or booth at a local IT Expo or event (To do this you must submit information about the specific event before hand and write a short report about it afterwards.)
Basic[edit]
- 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
- With Joomla's Google Analytics data, analyse the data for the past six months and make comments about how people are using www.joomla.org (entry points, exist points, etc).
Basic
- Analyze usage of the Joomla! Developer site and recommend
- Analyze usage statistics for Joomla! Community Magazine and recommend changes to increase traffic
- Write a report on how you would improve one of the www.joomla.org sites to make it easier for people who don't know anything about Joomla to find information more easily.
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
- Create a guide to Joomla! resources, documents and sites for someone who has "inherited" a Joomla! site from somebody else and has never used Joomla! before. Create a persona for this profile in docs.joomla.org and link all resources to the persona page.
Basic
- Create a "HTML Basics" document aimed at someone who has a Joomla! site but has only used a WYSIWYG editor.
- Create a "CSS Basics" document aimed at someone with no web background.
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 (http://docs.joomla.org/Beginners) 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
- Check a standard installation of Joomla with the default template against a colour-blind checking site, then install a freely available template and do the same. Report any interesting results.
Basic
- Check a standard installation of Joomla 1.6 against a HTML and CSS validation site. Report back any errors that you find.