Google Code-in
Contents
- 1 Information for students
- 2 Adding Tasks
- 3 Tasks
- 3.1 Move the FAQ to the wiki
- 3.2 FAQ: Fix occurences of config.php
- 3.3 Review the installation instructions
- 3.4 Review the installation instructions
- 3.5 Find a replacement for kses
- 3.6 Provide a translation for a plugin
- 3.7 Update a Geeklog (Core) translation
- 3.8 Create a "Invitation to contribute" page
- 3.9 Design a flyer
- 3.10 Update plugins list
- 3.11 Review Patches
- 3.12 Convert the Geeklog Documentation to XHTML
- 3.13 Rewrite the Geeklog Help Files
- 3.14 Look into SPDX for possible use in Geeklog
- 3.15 Give a Geeklog Demo to a friend or family member
- 3.16 Coding: "Beginner" tasks from the Bugtracker
- 3.17 Redesign the Plugin Editor
- 3.18 Design a Stylesheet for Printable Views
- 3.19 Test and provide feedback for the new calendar plugin
- 3.20 Test the Akismet module for Spam-X
- 3.21 Write a TypePad AntiSpam module for Spam-X
- 3.22 Write a Defensio module for Spam-X
- 3.23 Write a Mollom module for Spam-X
- 3.24 Create a Screencast: Installing Geeklog
- 3.25 Create a Screencast: Installing a Plugin
- 3.26 Collect Information about Encryption Algorithms for Passwords
- 3.27 Compile Geeklog with hiphop
- 3.28 Redesign the Version Checker Page
- 3.29 Design a new Homepage for our Project Page
- 3.30 Create a Database Schema
- 4 Stats
Information for students
This is a collection of possible tasks for the Google Code-in. Please note that you can not claim these tasks from here. Should Geeklog be accepted as a mentoring organization, you will be able to claim tasks from the Code-in homepage, once the contest starts.
For more information, please see the Google Code-in FAQ.
If you have questions about a specific task, please contact the mentor(s) listed for the task or post on the geeklog-devel mailing list. You may also be able to get hold of a Geeklog developer on IRC, channel #geeklog at irc.freenode.net
Adding Tasks
When adding a new task, please keep these things in mind:
- the task should be suitable for 13-18 year olds
- the task should be small-ish, doable in a few hours to a few days
- the task needs to be clearly defined, i.e. when can it be considered "done"?
- the task shouldn't need a lot of explaining to start
Also, when adding a task, please consider to volunteer mentoring it!
Tasks
Move the FAQ to the wiki
Description: The Geeklog FAQ is hard to maintain in its current state (due to technical issues with the FAQ plugin and the fact that contributions can't be included easily). So the idea is to move all the current FAQ topics to the Geeklog Wiki. Hints: One wiki page per FAQ article. Add a FAQ category. Make sure the formatting, e.g. of sample code, is carried over.
Category: Documentation
Difficulty: easy
Time: a few hours
Possible Mentor: Dirk Haun
FAQ: Fix occurences of config.php
Description: There are a lot of places in the Geeklog FAQ that still refer to the config.php that was used for configuration in earlier Geeklog versions. Find and rewrite those sections to refer to the Configuration Admin panel instead. Note: Some occurences may still be valid (e.g. when referring to upgrading from an old version) or may need to refer to the siteconfig.php or db-config.php file now instead.
Category: Documentation
Difficulty: easy
Time: 1-2 hours
Possible Mentor: Dirk Haun
Review the installation instructions
Description: Try to install Geeklog following the installation instructions. Make notes of the problems you have understanding these instructions. Suggest a list of improvements.
Category: Documentation
Difficulty: easy
Time: 1-2 hours
Possible Mentor: Dirk Haun
Review the installation instructions
Description: Try to install Geeklog following the installation instructions. Make notes of the problems you run into following these instructions. Check that the troubleshooting section covers these problems. If not, suggest additions.
Category: Documentation
Difficulty: easy
Time: 1-2 hours
Possible Mentor: Dirk Haun
Find a replacement for kses
Description: Geeklog uses kses as its HTML filter. Since kses is no longer supported, we are looking for a replacement. Research other existing HTML filters and evaluate them. Check features such as filtering abilities (HTML tags + attributes, JavaScript, CSS), ability to close unbalanced HTML tags. Also consider dependency on any frameworks / libraries, ongoing support, and a GPLv2-compatible license.
Category: Research
Difficulty: medium
Time: about 8 hours
Possible Mentor: Dirk Haun
Provide a translation for a plugin
Description: Geeklog (i.e. the Geeklog Core) has been translated into more than 30 languages. However, not all of the plugins we ship with Geeklog have been translated to all those languages yet. If you speak one of those languages, provide a missing translation.
Category: Translation
Difficulty: medium
Time: about 4-6 hours each
Possible Mentors: preferably people speaking the language ...
for the Links Plugin
- most wanted: Portuguese
- also: Afrikaans, Bosnian, Bulgarian, Catalan, Croatian, Danish, Farsi, Finnish, Hellenic, Indonesian, Norwegian, Romanian, Serbian, Slovak, Swedish, Turkish
for the Polls Plugin
- most wanted: Italian, Portuguese
- also: Afrikaans, Bosnian, Bulgarian, Catalan, Croatian, Czech, Danish, Farsi, Finnish, Hellenic, Indonesian, Norwegian, Polish, Romanian, Serbian, Slovak, Swedish, Turkish
for the Spam-X Plugin
- most wanted: Chinese, Dutch, German, Italian, Portuguese
- also: Afrikaans, Bosnian, Bulgarian, Catalan, Croatian, Czech, Danish, Finnish, Hellenic, Indonesian, Korean, Norwegian, Polish, Romanian, Serbian, Slovak, Swedish, Turkish
for the Static Pages Plugin
- most wanted: Russian
- also: Afrikaans, Bosnian, Bulgarian, Catalan, Croatian, Finnish, Hellenic, Indonesian, Norwegian, Romanian, Serbian, Slovak
for the XML-Sitemap Plugin
- most wanted: Chinese, Dutch, Italian, Portuguese, Russian, Spanish
- also: Afrikaans, Bosnian, Bulgarian, Catalan, Croatian, Czech, Danish, Farsi, Finnish, Hellenic, Indonesian, Korean, Norwegian, Polish, Romanian, Serbian, Slovak, Swedish, Turkish, Ukrainian
(that's 16 tasks just counting the "most wanted" languages)
Update a Geeklog (Core) translation
Description: Geeklog (i.e. the Geeklog Core) has been translated into more than 30 languages. However, not all of the Core language files are actively maintained, so some of them are only partially translated. If you speak one of those languages, update one of those translations.
Category: Translation
Difficulty: medium
Time: from a few hours to a few days each, depending on the amount of work needed
Possible Mentors: preferably people speaking the language ...
Most work needed
These language files are seriously out of date and may need a lot of work:
- most wanted: Dutch, Portuguese, Spanish
- also: Afrikaans, Bosnian, Bulgarian, Catalan, Croatian, Czech, Danish, Farsi, Finnish, French (Canada), Hellenic, Indonesian, Norwegian, Romanian, Slovak, Swedish, Turkish
Actually, we should consider splitting those into smaller tasks ...
In better shape
These language files are more (but not quite) up-to-date:
- most wanted: Chinese, Russian
- also: Korean, Polish, Serbian, Slovenian, Ukranian
Create a "Invitation to contribute" page
Description: When you click to download OpenOffice.org, you are taken to this page that explains how you can contribute to OOo. Design a similar page for Geeklog.
Category: Outreach
Difficulty: medium
Time: about 4 hours
Possible Mentor: ???
Design a flyer
Description: Design a flyer / handout (for inspiration, here's an old flyer and a poster that can also be used as a flyer). Refer to the Geeklog Documentation for a list of features.
Category: Outreach
Difficulty: medium
Time: about 8-12 hours
Possible Mentor: ???
Update plugins list
Description: Update the plugins list and give some basic informations for each one (Description, last available version, last release date, link to support or contact).
Category: Documentation
Difficulty: medium
Time: about 1-2 days
Possible Mentor: ???
Review Patches
Description: We have quite a few patches for issues (bugs and feature requests) in our bugtracker. Your task would be to review such a patch, i.e. check that it can be applied to the current Geeklog version; fix it if it can't be applied as-is; check that it does resolve the issue; leave feedback and, if necessary, an updated patch on the issue in the bugtracker. Note: Your job here is to check that the patch can be applied and whether or not it solves the issue. If it doesn't solve the issue, then providing a correct patch would be a separate task (to be defined after your review).
Category: QA
Difficulty: medium
Time: between 4 hours and 2 days, depending on the patch
Possible Mentors: ??? (preferably more than one)
List of Patches (one task per patch):
- Update bigdump.php
- nl2br breaks the HTML compliance
- add 'linktext_maxlen' to story configuration panel
- e-mail autotag
- Allow autotag description and link to information page
- Provide a "Link Details" view for links in the Links plugin
- Use Admin lists in Spam-X plugin
- Add a use counter for Spam-X filtering rules
- Poll Plugin - Votes do not get counted correctly when updating a poll with multiple questions.
- "Report this post" option should have a comment field
- Get rid of the ereg functions
- Cosmetics: Get rid of the extra yellow-ish borders in advanced editor template
- The blogroll could be added to the link plugin
- Make topics sortable like blocks
- professional header.thtml language attribute
- Allow users to enter a password on the registration page
- Comments Form on same page as story
- FCKeditor doesn't use RTL automatically
- Add FCK editor to "mail users" utility
The corresponding bugtracker entries have all been tagged with "task" (please ignore issues that have status "assigned" or "resolved").
To do: Update Time estimates (and possibly Difficulty) for each task before this list goes into Melange.
Convert the Geeklog Documentation to XHTML
Description: The documentation that we ship with Geeklog (14 HTML files in public_html/docs/english) are currently HTML 4.01 compliant. Convert them to XHTML 1.0 Strict and confirm XHTML compliance using the W3C validator. In other words, fix bug #1145.
Category: Documentation
Difficulty: easy
Time: 4-8 hours
Possible Mentor: ???
Rewrite the Geeklog Help Files
Description: Geeklog ships with 10 very simple help files in public_html/help. Effectively, they only contain a list of required fields for certain forms. Check that the list of required fields is still correct and rewrite the help pages to be more friendly and informative. Design suggestions welcome.
Category: Documentation
Difficulty: easy
Time: about 10 hours
Possible Mentor: ???
Look into SPDX for possible use in Geeklog
Description: While most of Geeklog's code is licensed under the GPLv2, some third-party code and even some core components (e.g. feed read/write classes) are under different licenses. SPDX, Software Package Data Exchange, promises to help keeping an overview of the various licenses in a software package such as Geeklog, so that license conflicts can be detected easily. We know nothing about SPDX other than that it exists. Have a look into SPDX, provide a short summary of what it actually does, and provide a list of steps that would need to be taken to use it for Geeklog.
Category: Research
Difficulty: medium
Time: 1-2 days
Possible Mentor: ???
Give a Geeklog Demo to a friend or family member
Description: Find a friend or family member who's interested in running their own website (or already has one). Give them a demonstration of Geeklog and show off it's features. Discuss with them whether Geeklog would be suited for them. Make a list of things that were considered good, bad, or missing.
Category: Outreach
Difficulty: easy
Time: about 4 hours + some preparation
Possible Mentor: ???
Obviously, this task could be done several times with different people.
Coding: "Beginner" tasks from the Bugtracker
Description: There are some issues (bug reports and feature requests) in our bugtracker that are tagged with "beginner" to indicate that we consider them easy enough to do for someone new to the project. They will also help you understand some of the internal workings of Geeklog.
Category: Code
Difficulty: medium
Time: between 4 hours and 2 days, depending on the issue
Possible Mentors: ??? (preferably more than one)
List of issues (one task per issue):
- Progress bar during SQL import doesn't move?
- More consistency in autotag behaviour with invalid ids
- make staticpage textarea expandable like story editor + and - Buttons
- Allow bypass of censorship filter
- Implement a COM_versionCompare function to work around issues with version_compare
The corresponding bugtracker entries have all been tagged with "beginner" (please ignore issues that have status "assigned" or "resolved").
To do: Update Time estimates (and possibly Difficulty) for each task before this list goes into Melange.
Redesign the Plugin Editor
Description: Geeklog's plugin "editor" is mainly a form that displays some information about a plugin. It really only has options to enable/disable a plugin and possibly to update it. The main issue with this form, however, is that unlike all of the other editors in Geeklog, it has the buttons (save, cancel, ...) at the top of the form. But moving them to the bottom (for consistency) leaves some ugly blank space at the top of the form. So the task is to come up with a new design for this form that's both consistent with the rest of Geeklog and also looks nice.
Category: User interface
Difficulty: medium
Time: 2-4 hours
Possible Mentor: ???
Design a Stylesheet for Printable Views
Description: Geeklog provides simplified "printable" views for articles and static pages. These use a stripped-down print.css stylesheet that needs some work to make the printout look nicer, e.g. fonts, spacing, margins. Also: Is there a good way to make links appear in the printout (e.g. for a link saying "click here", make the URL it links to show up in the printout).
Category: User interface
Difficulty: medium
Time: 4-6 hours
Possible Mentor: ???
Test and provide feedback for the new calendar plugin
Description: You need to install the new calendar plugin and test it. You should provide feedback about bugs you find and about your overall experience. Also, suggestions on improving the plugin are welcome.
Category: QA
Difficulty: medium
Time: a few hours - 1 day.
Possible Mentor: Vlad Voicu
Test the Akismet module for Spam-X
Description: Spam-X is Geeklog's spam filter. It can be extended by dropping new modules into a designated directory. There is already an older module to support the Akismet anti-spam service. It needs a review for possible API changes and some testing.
Category: QA
Difficulty: easy
Time: 4-8 hours
Possible Mentor: Dirk Haun
Write a TypePad AntiSpam module for Spam-X
Description: Spam-X is Geeklog's spam filter. It can be extended by dropping new modules into a designated directory. The task is to implement and test a module for the TypePad AntiSpam service.
Category: Code
Difficulty: easy
Time: 1-2 days
Possible Mentor: Dirk Haun
Write a Defensio module for Spam-X
Description: Spam-X is Geeklog's spam filter. It can be extended by dropping new modules into a designated directory. The task is to implement and test a module for the Defensio anti-spam service.
Category: Code
Difficulty: medium
Time: 2-3 days
Possible Mentor: Dirk Haun
Write a Mollom module for Spam-X
Description: Spam-X is Geeklog's spam filter. It can be extended by dropping new modules into a designated directory. The task is to implement and test a module for the Mollom anti-spam service.
Category: Code
Difficulty: hard
Time: 4-5 days
Possible Mentor: Dirk Haun
Create a Screencast: Installing Geeklog
Description: While Geeklog's installation procedure has improved over the years (thanks in no small part due to our participation in GSoC), some people still have problems with our written installation instructions. So the idea is to make the process more visible by creating a Screencast. It should include all the necessary steps: Creating an empty database, uploading the files (including unpacking the tarball), and running the install script.
Category: Training
Difficulty: easy
Time: about 4 hours
Possible Mentor: ???
We may want to run this task several times for different setups: Unix / Windows, shared server / root server, ftp / ssh access, ...
Create a Screencast: Installing a Plugin
Description: The procedure for installing a plugin has improved somewhat over the years (thanks to our participation in GSoC) but still seems to confuse people. So the idea is to make the process more visible by creating a Screencast. It should include all the necessary steps, i.e. uploading the files and running the install script.
Category: Training
Difficulty: easy
Time: about 4 hours
Possible Mentor: ???
This should probably be 2 tasks: One demonstrating the new way (upload from within Geeklog) and one doing the manual install, including distributing the files over 3 directories.
Collect Information about Encryption Algorithms for Passwords
Description: Currently, Geeklog's passwords are stored as md5 hashes. There are some known attacks against md5 and it's about time we replace the algorithm with something more robust and secure. Collect information about possible replacements and provide an overview of their weaknesses and strengths.
Category: Research
Difficulty: hard (some maths / encryption knowledge required)
Time: about 2 days
Possible Mentor: ???
Compile Geeklog with hiphop
Description: Hiphop is a PHP-to-C++ compiler, developed by Facebook. Facebook is written in PHP but the actual Facebook site runs the C++ code produced by hiphop. There is probably only one Geeklog site that would benefit from this translation (Groklaw), but we'd like to know if you can actually compile Geeklog with hiphop and which, if any, problems exist with it. So the goal is to grab a standard Geeklog release, compile it with hiphop, and use the result to run a website. Make notes of any issues you run into and document them on the Geeklog wiki.
Category: Research
Difficulty: hard
Time: about 2-3 days
Possible Mentor: ???
Redesign the Version Checker Page
Description: Geeklog's Admin Panel has a link to a simple version check: A script running on geeklog.net, that compares your site's version against the latest released version and gives recommendations about upgrade paths. This page is currently very spartanic and could use a redesign to make it look nicer and more informative.
Category: User Interface
Difficulty: easy
Time: about 2-3 hours
Possible Mentor: ???
Design a new Homepage for our Project Page
Description: [http://project.geeklog.net/ project.geeklog.net is the server that hosts our development resources: bugtracker, Mercurial repository, and a few other tools. The homepage (just one HTML page with links to the various tools) is pretty sparse right now. It could use a few more texts explaining what you can find there and a nicer design.
Category: User Interface
Difficulty: easy
Time: about 4-6 hours
Possible Mentor: ???
Create a Database Schema
Description: Add a Database Schema to the wiki showing how the tables are all connected. Include a description for each column and possible values.
Category: Database
Difficulty: medium
Time: about 1-2 days
Possible Mentor: ???
Stats
Some rough statistics (some tasks could be run more than once).
Categories
- Code (8)
- Documentation (7)
- Outreach (3)
- QA (20)
- Research (4)
- Training (2-4)
- Translation (20+)
- User Interface (4)
Difficulty Levels
- easy (13)
- medium (52+)
- hard (3)
Mentors
- Dirk
- Vinny
- Cordiste
- Vlad Voicu
- (your name here)