Support Joomla!
Summer of Code 2006 PDF Print

 In 2006 we received 90 project proposals for the Google Summer of Code program (SoC) . The team of mentors selected 9 projects for mentoring. Out of these 9 projects Google allocated the first 6. Google will provide a stipend of 5,000 USD to each student developer, of which 4,500 USD goes to the student and 500 USD goes to Joomla! project. With 6 accepted applications this adds up to a 30,000 USD investment over a three-month period !

The 3 students that haven't been allocated by Google have been given  the opportunity to work on their project and be treated in the same way  as the other 6 funded projects, the only difference will be that they  won't get paid. This means they will get the same press coverage, will  have someone assigned to as a mentor and the results of these projects will be included into Joomla! 2.0. Two of them have accepted and have also been invited to join in for the ride. 

The summer of code projects are targetted almost fully towards the next major release, Joomla! 2.0. To faciliate and manage this effort we have setup a seperate team and project structure. Community developers with specialised expertise in the different accepted projects have been asked to mentor the students and the overall project and team management will be in the hands of Wilco Jansen (S&G working group member). Louis Landry (core team member) will act as Wilco's "buddy" filling in and providing technical and project related feedback when needed.

Project goals

The Summer of Code 2006 is heavily targetted towards our next major version, Joomla! 2.0. Projects where choosen based on the main features for this version.

The goal of the Joomla! 2.0 is to create a stable, professional, well supported and extremely easy and intuitively to use CMS with a simple template system and driven by a simple yet powerfull extension API.

The framework created for Joomla! 1.5 will serve as the basis, allowing a easy transition for developers that's are already using it. It's important to understand that in order to achieve this goal the core architecture of Joomla! will need to be completely redesiged, resulting in major backwards compatibility breakages.

Project results 

This section has  been added after we have successfully ended the Joomla! Google Summer Of Code project. All projects described below have been evaluated (end-term was September 5 2006), all students have received a positive evaluation. The total program evaluation can be found in the complete summer of code end-report.

Project structure

We have setup a seperate project team to manage the development of the summer of code project. While mentors are responsible for the individual projects. A project manager will be in charge of the overall coordination and followup. We also appointed a co-project lead "buddy" who can fill in when needed and most importantly coach the project leader if technical decisions need to be made. 

Image
Summer of Code project structure

If all goes well, the SOC project will lead to some exiting new stuff for Joomla! 2.0. The structure will allow us to widen our focus behind the main summer of code tasks and will make sure that he work done at the soc project level will be in sync of the Joomla! general project management and connect to the final Joomla! roadmap.

 

Students and projects

1. Java XML-RPC application: J!Explorer  - Laurens Vandeput

Mentor : Gerben Dierick

Codename : JEXPLORER

J!Explorer is a XML-RPC application written in Java. It allows the user to administer the content of a Joomla!-powered website in a full-blown, rich-type user environment.

 

More info : http://forge.joomla.org/sf/wiki/do/viewPage/projects.joomla_soc/wiki/Jexplorer 

2. Joomla/AJAX Integration  - Blagovest Dachev

Mentor : Rastin Mehr and Mateusz Krzeszowiec

Codename : JAJAX 

Javascript and AJAX technologies have become an important part of todays web applications. In order to be able to bring these technologies to third party developers they need to be integrated into the Joomla! Framework. Third party developers should be able to make use of a PHP API for adding AJAX behavior to their extensions. In a perfect world it should even be possible to include AJAX behavior on the template level.  

JAJAX aims to create the infrastructure for integrated and easy to use AJAX/DHTML behaviors. It will establish reusable patterns and a mechanism to expose server side methods to the client, so they can be directly called from JavaScript.

Goals

  • Create Javascript PHP framework to load and manage javascript and AJAX libraries
  • Implement custom or existing AJAX library
  • Implement patTemplate functions to easily integrate AJAX behavior in templates

Resources : Ajax; Templating; and the Separation of Layout and Logic

Project wiki : http://forge.joomla.org/sf/wiki/do/viewPage/projects.joomla_soc/wiki/Jajax 

3. Package Management System for Joomla  - Joshua Neil Thompson

Mentor : Wilco Jansen and Samuel Moffatt

Codename : JPACKAGE

The project is to create a better installation/update system for Joomla. The package management system will be able to connect to remote servers through XML-RPC, mainly http://update.joomla.org, and browse through the available packages that can be downloaded. The server side of this has already been mostly completed by my mentors. SO the focus of the project is creating the client side logic. This includes connecting to the server, browsing the packages, installing, updating, and resolving dependencies. Dependencies are handled by the server, but the client still has to fetch each of the dependencies and possibly go through another chain of dependencies. This also means that cyclic dependencies have to be accounted for. 

Project wikihttp://forge.joomla.org/sf/wiki/do/viewPage/projects.joomla_soc/wiki/Jpackage

4. User & Access Management   - Hannes Papenberg

Mentor : Alex Kempkens

Codename : JACL

Joomla! 1.5 has a limited implementation of the phpGACL library. The goal of this project is to create a fullblown ACL (access control lists) implementation. This will allow for the ability to add and edit the user groups system. It also allows for administrators to alter the access permissions based on function though the user interface. For example, you will need to create a UI that is able to define which group(s) can install components or template, and so on. Also, you will need to allow for controlling permissions at the object level in a more detailed way. For example, you will need to provide a system able to select sections and categories that are viewable only to certain groups. 

Main achievments/goals
  • Simplifying the access managment for developers and users
  • Creating an interface to make the access managment system exchangeable
  • Creating a specification for third party developers
  • Creating an administrative interface thats easy to use for the end-user

Resources : phpGACL

Project wiki : http://forge.joomla.org/sf/wiki/do/viewPage/projects.joomla_soc/wiki/Jacl 

5. Cross Database Support and Node Based Schema  - Aaron Stone

Mentor : Lee Cher Yeong and Mitch Pirtle

Codename : JNBS

Joomla! 1.5 provides the plumbing to easily drop in a replacement driver for the database engine of your choice. However, that doesn’t solve the problem of all this MySQL-specific SQL code littering the core. This is extensive, and we need to find a way to replace the hardcoded SQL statements with a more general object-to-relational mapping system that can generate the SQL based on the driver selected. To achieve cross database support, a database abstraction library needs to be implemented. Core scripting also needs to be improved to prepare for compatibility with other database systems platforms.

Main achievements/goals

  • Create a database abstraction library
  • Create a PostgreSQL driver

Resources : Object relationship mapping and SQL Comparison

Project wiki : http://forge.joomla.org/sf/wiki/do/viewPage/projects.joomla_soc/wiki/Jnbs

6. Accessibility and WCAG 2.0 compilance -  Peter Thiessen

Mentor : Andy Miller

Codename : JWCAG

This project will modify the Joomla code base so it creates accessible content that complies with the new Web Content Accessibility Guidelines (WCAG 2.0). I will create a set of specifications that will determine what Joomla needs to output so it is accessible and compliant with the WCAG 2.0. I will test the new version of Joomla to ensure it follows the guidelines and creates conformant material.


Main achievments/goals
  • Step 1: will be to evaluate the new WCAG 2.0 guidelines in relation to the content created by Joomla and create documentation. This specification will clearly describe the content that Joomla must create to be accessible. I will use this documentation to write code and it will be useful for third party developers of templates.
  • Step 2: will be to modify the Joomla content component modules so they create accessible code as specified in the first part.
  • Step 3: will be to test the output of Joomla to ensure it is compliant with the WCAG2. This will be done using the ATRC accessibility checking software program (http://checker.atrc.utoronto.ca).

Resources : WCAG 2.0

Project wikihttp://forge.joomla.org/sf/wiki/do/viewPage/projects.joomla_soc/wiki/Jwcag  

7. WebDAV Server  - Mathew Rodley

Mentor : Mark Withington

Codename : JWEBDAV

Develop a PHP native webDAV server capable of serving content from the database as files.

Resources : webdav.org 

Project wiki : http://forge.joomla.org/sf/wiki/do/viewPage/projects.joomla_soc/wiki/Jwebdav

8. Semantification of Joomla!  - Fedor Bakalov

Mentor : Shayne Bartlett

Codename : JOWL

The purpose of the project is to develop JONTO module for Joomla! Content Management System. JONTO is a component which will enable users to create and manage website content with ontology-based approach. JONTO is the extension of Joomla! CMS that utilizes the power and flexibility of ontologies for semantic content management. JONTO provides the framework to create information architecture of website using one of the existed domain ontologies or an ontology created by user. The created information architecture is the structure that reflects the conceptual information model of the website content and is used by content managers as a template to populate the website with content. Once the content is entered, JONTO can publish the content in many forms, HTML pages or OWL instance files.


Main achievments/goals

 

JONTO will include the following components:

  • Information Architecture. IA is the component wherein users manage ontologies. In JONTO, ontologies are media and tools to specify structure of website. User has two options to build IA: 1) to select one of the existing ontologies from library and modify it, and 2) create new ontology.
  • Forms. This component generates forms through which the content of website is entered. The forms are generated based on the information architecture created in IA component. The structure of the selected ontology, composition of classes and data types of class properties, is used by JONTO to generate the forms. In this component, users are also enabled to modify the generated forms manually in order to adjust them to the content.
  • Content. In this component, content managers use the generated forms to populate website with information.
  • Navigation. This component analyzes the structure of the selected ontology and the entered content and generates navigation mechanisms through the website. JONTO will support several ways of organization of the content: hierarchical, task-based, alphabetical, chronological, popularity-based, and category-based.
  • Publishing. This component generates the final output, HTML pages of the website.

 Project wiki : http://forge.joomla.org/sf/wiki/do/viewPage/projects.joomla_soc/wiki/Jowl

 

  


 

Last Updated ( Thursday, 15 February 2007 )
 
< Prev   Next >