|
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 structureWe 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.  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 wiki : http://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 wiki : http://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
|