Archived

GCI 2010-11

From Joomla! Documentation

Revision as of 16:59, 1 November 2010 by Elin (talk | contribs) (→‎Introduction)

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


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

This list is a work in progress. The final listing for each task that is offered to students must include:

  1. A specific work product, whether a piece of code, a written report, a piece of writing, a website or an image.
  2. Evaluation criteria which will be used for determining whether the task has been successfully completed. These should be useful for both the student and the evaluators. Finalized tasks need enough details in the evaluation criteria to allow rating using this rubric:
    1. Creativity
    2. Thoroughness
    3. Quality of Work
    4. Open Source Community Involvement.
  3. A list of any resources that would be useful for the student doing the project. These will usually be links to information but could something else such as the name of a specific project person to contact.
  4. A difficulty rating (we are using challenging, intermediate, basic).

Documents about Joomla!s Participation in GHOP 2007-2008 including task list.

Proposed Tasks[edit]

Code[edit]

Tasks related to writing or refactoring code

Challenging[edit]
  1. Add the ability for the Mass Mail feature in Joomla 1.6 to be able to send HTML messages.
  2. 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.
  3. 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.
  4. Create a plugin, com_users view or other solution to allow users to delete their accounts.
  5. Create a new component syndicate a combined feed from two separate components.
  6. Create a new document type: vcalendar.
  7. Create a new document type: ical.
  8. Create a new document type: rdf.
  9. Implement frontend editing for com_contact.
  10. Implement frontend editing for com_newsfeeds.
  11. Implement a method for Apply in the front end for com_content or com_weblinks.
  12. 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.
  13. Create a Debian package for Joomla! 1.6. Document the process.
  14. Create a Debian package for the Joomla! Framework. Document the process.
  15. Create a RPM package for Joomla! 1.6. Document the process.
    1. Resources: Resources: http://en.wikipedia.org/wiki/RPM_Package_Manager,
    2. Resources: http://www.rpm.org/
  16. Create a RPM package for the Joomla! Framework. Document the process.
    1. Resources: http://en.wikipedia.org/wiki/RPM_Package_Manager,
    2. Resources: http://www.rpm.org/
Intermediate[edit]
  1. Create a custom document type to download vcard information in RDF format.
  2. Create a Google Map user plugin for display based on address information in com_contact.
  3. Create a plugin that stores information from specific fields in a profile plugin in the jos_contact_details table
  4. Create a plugin that parses actions from Mosets Tree and stores them in Scout (directory monitoring)
  5. Create an administrator module for quick article create that could replace Quick Icons.
  6. Create a new document type: hcard.
  7. Create a new document type: csv.
  8. Create a new document type: vcard.
Basic[edit]
  1. Create a module to display a list of contacts in a category
  2. Create a module to display a list of newsfeeds in a category.
  3. Create user plugin to display a Twitter feed.
  4. Create a user plugin to display a Facebook feed.

Documentation[edit]

Challenging[edit]
  1. 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).
  2. Create a document describing the observer design pattern and how it is implemented in Joomla! plugins.
  3. Consult with the Joomla! development community and draft proposed code style standards for XML.
Intermediate[edit]
  1. Document the use of alternative component layouts and provide a detailed commented example for each of the core components.
  2. Document the use of alternative module layouts and provide detailed commented examples for at least 5 core modules.
  3. 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

  1. 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.
  2. Describe the meanings of the core permissions in Joomla 1.6 and the four levels over which they can be applied.
  3. Describe the Global Level of permissions in Joomla 1.6 and how a site owner might use them to broadly control site access.
  4. Describe the Component Level of permissions in Joomla 1.6 and how a site owner can restrict users in groups to certain components.
  5. 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.
  6. Describe the Article Level permissions in Joomla 1.6 and how a site owner can restrict content providers to edit and delete their articles.
  7. Describe how site owners can use the Edit Own permission effectively in Joomla 1.6.
  8. 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.
  9. Describe how to restore the default ACL settings.

Outreach[edit]

Challenging[edit]
  1. 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)
  2. Create a Joomla! website for a non profit organization. Write a report about the experience. (Can be done by several people)
  3. 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.
  4. Organize an Install Fest where a group of students in your school can install and start creating a Joomla! website.
Intermediate[edit]
  1. Translate the Evaluators Persona (http://docs.joomla.org/Evaluators) into a language other than English.
  2. Write an article for the Joomla! Community Magazine
  3. Write an article about Joomla! or the Joomla! Project for your school newspaper or a local newspaper.
  4. 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)
  5. 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.)
  6. Design and create a media resource pack (PSD's or similar, logo's, etc) that a Joomla! Day can use to promote their event on web sites or using printed material.
  7. Design and create a media resource pack (PSD's or similar, logo's, etc) that a Joomla User Group can use to promote their group on web sites or using printed material.
  8. Design a logo or badge for one of the official groups (Joomla Bug Squad, Joomla Extension Directory) on the people.joomla.org site. (Can be repeated)
Basic[edit]
  1. Create a standard "Download Joomla!" module that Joomla! fans can use on their sites.
  2. Create list of online media outlets for distribution of Joomla! announcements
  3. Create a document on ways to leverage participation in the Joomla! Project to promote your Joomla! Business (ideas like putting a link in your forum signature, listing on the Resources Directory and so on).
  4. Create contributing author badge for the Joomla! Community Magazine
  5. Update Author Resources content for the Joomla! Community Magazine
  6. Create a powerpoint presentation (or similar) on the new user features in Joomla 1.6 that could be used at conference presentations (including good slide notes).
  7. Create an information PDF about how to run a Joomla Day, how to register the event with Joomla, and include links to key and useful resources.
  8. Create an information PDF about how to set up a Joomla User Group in your area, how to register the group with Joomla, and include links to key and useful resources.

Quality Assurance[edit]

Tasks related to testing and ensuring code is of high quality

Challenging[edit]
  1. Write a PHPUnit test for a package or sub-package in the Joomla Libraries.(multiple opportunities exist for this task).
  2. Write a Selenium System test to cover a unit of the CMS functionality.(multiple opportunities exist for this task).
Intermediate[edit]
  1. 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[edit]
  1. Review 24 hours of posts in the New to Joomla! forums and report on the most common problems reported.
  2. 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[edit]
  1. Research how to read/write video metadata in MP4 and webm containers. Write a report summarizing what you learn for the development team.
  2. Research the best server side tools/methods to transcode video from various formats to those MP4 and webm containers including various compression schemes and settings for different screen formats (for Example transcoding to an iOS device like iPhone/Pod/Pad vs the full TV experience. Write a report summarizing what you learn for the development team.
  3. Research various online resources for video metadata along with the strengths and weaknesses of their API's, access rules and licensing restrictions. Write a report summarizing what you learn for the development team.
  4. Research what it would take to start using PHAR packages for distributing the framework. Write a report for the development team.
    1. Resources:See http://www.php.net/manual/en/intro.phar.php.
  5. Review the W3C Authoring Tool Accessibility Guidelines (ATAG) 1.0 checkpoints and document where Joomla! does and does not meet them.
  6. Review the W3C Authoring Tool Accessibility Guidelines 2.0 (http://www.w3.org/TR/ATAG20/) and write a report on what would be needed for Joomla! 1.7 to meet them.
  7. Read and summarize the materials from the W3C Workshop on Privacy for Advanced Web API held in July 2010. Write a report for developers about the ideas presented and what they might mean for the Joomla! Framework, CMS and extensions.
    1. See http://www.w3.org/2010/api-privacy-ws/report.html
Intermediate[edit]
  1. 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[edit]
  1. Analyze usage statistics for Joomla! Community Magazine and recommend changes to increase traffic
  2. 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.

Training[edit]

Tasks related to helping others learn more

Challenging[edit]
  1. 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.
  2. 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.
  3. 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[edit]
  1. 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[edit]
  1. Create a "HTML Basics" document aimed at someone who has a Joomla! site but has only used a WYSIWYG editor.
  2. 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 instance of each task per distinct language.)

Challenging[edit]
  1. 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.
  2. For a language that does not have an accredited translation team, provide a translation of core strings.
Intermediate[edit]
  1. Translate the Absolute Beginner's Guide (http://docs.joomla.org/Beginners) into a language besides English.
  2. Translate the documentation on creating translations and becoming an accredited translation team into a language besides English.
  3. Translate the security documentation into a language other than English. (http://docs.joomla.org/Security)
Basic[edit]
  1. Provide an accredited translation team with translation of sample data.
  2. Provide an accredited translation team with the translation of the help screens for one complete component.
  3. 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[edit]
  1. Card sorting studies are a basic approach to usability testing (http://www.deyalexander.com.au/resources/uxd/card-sorting.html ). Research card sorting and design a set of cards that could be used for analyzing usability in the Joomla! Administrator. Have at least one user try the card sorting task. Document your work and the results of the test case so that others know how to use the cards to test usability.
  2. Card sorting studies are a basic approach to usability testing (http://www.deyalexander.com.au/resources/uxd/card-sorting.html). Research card sorting and design a set of cards that could be used for analyzing usability of the docs.joomla.org. Have at least one user try the card sorting task. Document your work and the results of the test case so that others know how to use the cards to test usability.
  1. Think out loud studies are another basic type of usability research (http://en.wikipedia.org/wiki/Think_aloud_protocol). For the following tasks create and document a think out loud procedure and carry out a test with at least 3 users: Creating an article in the administrator.
  2. Think out loud studies are another basic type of usability research (http://en.wikipedia.org/wiki/Think_aloud_protocol). For the following tasks create and document a think out loud procedure and carry out a test with at least 3 users: Installing an extension.
  3. Think out loud studies are another basic type of usability research (http://en.wikipedia.org/wiki/Think_aloud_protocol). For the following tasks create and document a think out loud procedure and carry out a test with at least 3 users: Updating Joomla!.
  4. Think out loud studies are another basic type of usability research (http://en.wikipedia.org/wiki/Think_aloud_protocol). For the following tasks create and document a think out loud procedure and carry out a test with at least 3 users: Creating a menu item.
  5. Think out loud studies are another basic type of usability research (http://en.wikipedia.org/wiki/Think_aloud_protocol). For the following tasks and document a think out loud procedure for it and carry out a test with at least 3 users: Configuring permissions to achieve a specific goal.
  6. Think out loud studies are another basic type of usability research (http://en.wikipedia.org/wiki/Think_aloud_protocol). For the following tasks and document a think out loud procedure for it and carry out a test with at least 3 users: Creating an new action permissions user group.



Intermediate[edit]
  1. Create a document about techniques for usability testing for developers.
  2. 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[edit]
  1. Check a standard installation of Joomla 1.6 against a HTML and CSS validation site. Report back any errors that you find.
  2. Identify 10 common tasks in the Joomla! administrator and record step by step the number of clicks it takes to completion.