<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Edo888</id>
	<title>Joomla! Documentation - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Edo888"/>
	<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/Special:Contributions/Edo888"/>
	<updated>2026-05-24T23:47:04Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=GSOC_2013_Project_Ideas&amp;diff=83666</id>
		<title>GSOC 2013 Project Ideas</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=GSOC_2013_Project_Ideas&amp;diff=83666"/>
		<updated>2013-04-02T17:37:11Z</updated>

		<summary type="html">&lt;p&gt;Edo888: /* Project: Create a translating tool extension for Joomla */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right; margin-left:1em; width:40%;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:left; margin-right:1em;&amp;quot;&amp;gt;[[Image:GSOC_2013.png|150px‎]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Welcome!==&lt;br /&gt;
Welcome to the Joomla! Google Summer of Code (GSoC) 2013 project ideas page. As we move forward with the 2013 version of the Joomla! GSoC, we will use this page to develop possible project ideas. Please note that anyone who is interested can participate in this process. You do not have to be a GSoC student or mentor to suggest possible project ideas. Please keep in mind that projects need to be realistically something that is able to be functionally completed by a student working full time for about eight weeks. Thanks!&lt;br /&gt;
&lt;br /&gt;
Discussion of ideas and other GSoC related items is welcome on our Google Group: https://groups.google.com/forum/?fromgroups#!forum/joomla-gsoc-2013&lt;br /&gt;
&lt;br /&gt;
If you are interested in participating as a student please review the materials on applying that are available at [http://www.google-melange.com/gsoc/document/show/gsoc_program/google/gsoc2013/help_page Google].  We strongly encourage you to ask questions about process and ideas on the mailing list.&lt;br /&gt;
&lt;br /&gt;
If you are interested in serving as a mentor, please fill out the [https://docs.google.com/a/community.joomla.org/spreadsheet/viewform?formkey=dHA2V1lJbThYQXpwMERiRG1FOTZlV3c6MA Mentor Application Form 2013].&lt;br /&gt;
&lt;br /&gt;
==Ideas==&lt;br /&gt;
&lt;br /&gt;
Opportunities exist for students to work with projects from either the Joomla CMS, the Joomla Platform or in some cases a combination of both.&lt;br /&gt;
&lt;br /&gt;
In addition to this ideas list, the Joomla! Community is able to voice their opinion on features they would like to see via the [http://ideas.joomla.org/ Joomla! Idea Pool].  Those wishing to add ideas to this listing are encouraged to review the Idea Pool and base their idea on the input received there. You can also view the past lists for [http://docs.joomla.org/GSOC_2012_Project_Ideas 2012] [http://docs.joomla.org/Summer_of_Code_2010_Project_Ideas 2010] and [http://docs.joomla.org/Summer_of_Code_2009_Project_Ideas 2009], which may be useful for reference. We ask that you keep ideas realistic for the time frame that students will have to complete their projects.&lt;br /&gt;
&lt;br /&gt;
Unless a mentor has proposed a specific project, mentors from the mentor pool will be matched with student projects. However members of the mentor pool are available to answer questions on the Joomla GSoC mailing list.&lt;br /&gt;
&lt;br /&gt;
===Joomla CMS===&lt;br /&gt;
&lt;br /&gt;
* [http://github.com/joomla/joomla-cms Source Code]&lt;br /&gt;
* [http://groups.google.com/d/forum/joomla-dev-cms Developer Mailing List]&lt;br /&gt;
&lt;br /&gt;
====Project: Build New Media Manager for CMS 3====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Brief Explanation:&#039;&#039;&#039; The current media manager is outdated and limited. Build a new media manager to include a better user interface, more robust functionality, and seamless integration for extensions to use. The improvements could include: &lt;br /&gt;
* Storage of media information in the database (including standard file property information, created by user and date, rights and other meta data and tracking of media as assets).&lt;br /&gt;
* Allow renaming of files&lt;br /&gt;
* Automated creation of thumbnails to dimensions that the webmaster can configure&lt;br /&gt;
* Support for a variety of media types that addresses security concerns &lt;br /&gt;
* Creation of a number of controllers for media manipulation such as cropping, resizing and filtering and implementation of their use.&lt;br /&gt;
* Use of nesting for management and display of media options&lt;br /&gt;
* Management of both local and remote media&lt;br /&gt;
* Support for creation of collections of media for example for display in a carousel as a separate content type.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Expected Results:&#039;&#039;&#039; A new Media Manager component to improve the usability, functionality, and reusability of the extension.  Work should be fully documented and include system tests as well as unit tests for all new classes.&lt;br /&gt;
&lt;br /&gt;
: The work will likely include creation of a new media management package in the CMS library as well as reusable controllers for media related tasks. &lt;br /&gt;
&lt;br /&gt;
: The work should align with other work in the content model and the student should expect to interact extensively with the team working on the Joomla 3.2 release. &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Knowledge Prerequisite:&#039;&#039;&#039;  PHP, MySQL, Javascript, Joomla CMS, Joomla Platform, HTML5, Usability&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
====Project: Convert JavaScript from MooTools to jQuery====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Brief explanation:&#039;&#039;&#039; Version 3 of the CMS introduced [http://twitter.github.com/bootstrap Twitter Bootstrap] and [http://jquery.com jQuery] to the core code base.  Previous versions of the CMS had been using MooTools as the preferred JavaScript library.  Currently, both JavaScript libraries are shipped and used within the CMS, which occasionally causes conflicts with a user&#039;s JavaScript functionality.  The CMS would like to reduce the dependency on MooTools by converting its core JavaScript behaviors from MooTools to jQuery or providing custom solutions.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Expected Results:&#039;&#039;&#039; Dependency on MooTools is reduced within the CMS.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Knowledge Prerequisite:&#039;&#039;&#039; Joomla CMS, PHP, JavaScript&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
====Project: html contenteditable Ajax based front-end editor for articles, categories, tags and other content====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Brief explanation:&#039;&#039;&#039; Allow seamless ajax-driven content-editing in the fronted of existing content.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Expected Results:&#039;&#039;&#039; Authors with ACL permissions should be able to directly edit all content (content, weblinks, contacts, newsfeeds and categories as well as any new types that are added in the future) from the front-end. Administrators should be able to configure front end editing for appropriate users to have access to the full set of fields available in the back end in the front end (rather than the limited set of fields now available).  All this should be done using Ajax.  This project should focus on editing data from the core_content table and will involve work with the team implementing the migration to core_content.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Knowledge Prerequisite:&#039;&#039;&#039; A good knowledge of Joomla, of jQuery and Ajax techniques would help a lot here.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium to Hard&lt;br /&gt;
&lt;br /&gt;
====Project: front-end editor for modules and menus====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Brief explanation:&#039;&#039;&#039; Allow seamless ajax-driven content-editing in the fronted of existing content and allowing to insert new modules.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Expected Results:&#039;&#039;&#039; Authors with ACL permissions should be able to directly edit modules (titles and content/settings, and inserting new modules including menus the front-end. The modules and content parameters editing should not be re-invented but just use the administration interface, if possible in front-end, otherwise with links to the corresponding administration page. This would at least allow to remove the guesswork of which module outputs what result. Using an open-source html-contenteditable javascript editor would help here in the formatting.&lt;br /&gt;
&lt;br /&gt;
Note: There will be some overlap here with the potential com_services project so project could be incorporated into that project or there could be coordination of the two projects.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Knowledge Prerequisite:&#039;&#039;&#039; A good knowledge of Joomla, of jQuery and Ajax techniques would help a lot here.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium to Hard&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Project: Update and add new editor plugins====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Brief explanation:&#039;&#039;&#039; Joomla has a system of editor_xtd plugins that allow users to safely insert correct html for common items such as images, page breaks, and links to articles independent of the editor used.  This project will involve updating and adding new plugins and improving usabilty.  For example in terms of new plugins might include:&lt;br /&gt;
* A plugin that adds modal behaviour (JHTML::_(&#039;behavior.modal&#039;);). The plugin can be deactivated by a {}tag (like {modal state=0}). &lt;br /&gt;
* A plugin that allows safe embedding of external web services such as video or maps.&lt;br /&gt;
&lt;br /&gt;
Updating plugins would include generalizing the article plugin to work across all content types using the core_content table.&lt;br /&gt;
&lt;br /&gt;
Here is an example of how a plan for a modal plugin would look:&lt;br /&gt;
&lt;br /&gt;
*Background: A link with the attribute &#039;class=&amp;quot;modal&amp;quot;&#039; is opened in a kind of lightbox. Thus easily galleries can be generated. Additionally prepare editor(s) (e. g. via editor.css in template folder) to offer the modal class in their link edit display.&lt;br /&gt;
&lt;br /&gt;
*Expected Results: The modal behaviour is always available - if plugin is published and it is not forbidden by a tag. And a link with class &#039;modal&#039; can easily be generated - via button and/or via editor.&lt;br /&gt;
Note that this may not be the ideal way to provide this functionality, it could be that the existing articles plugin is modified to allow a link type of modal for example. Thus this project would involve a careful review of existing plugins.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Expected Results:&#039;&#039;&#039; New plugins for a number of useful items, updates to older plugins and improved user interface for the buttons.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Knowledge Prerequisite:&#039;&#039;&#039; PHP, HTML, Javascript&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Easy/Medium&lt;br /&gt;
&lt;br /&gt;
====Project: Add plugin &#039;mvc override&#039;====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Brief explanation:&#039;&#039;&#039; Generate a plugin that enables the developer to overwrite models and controllers. &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Expected Results:&#039;&#039;&#039; Any model and controller can be overridden.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Knowledge Prerequisite:&#039;&#039;&#039; Joomla! CMS, PHP&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
====Project: Hathor is beautiful====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Brief explanation:&#039;&#039;&#039; Make the admin template &#039;Hathor&#039; more beautiful. Hathor is Isis&#039; little sister. While Isis is breathtaking, Hathor still lacks a little css: She&#039;s edgy, and pale, and boring. Yet she always does what she is told. She deserves being tended a little. No additional functionality needed, no html changes, just css beauty.&lt;br /&gt;
&lt;br /&gt;
: Note that for Google Summer of Code here must be substantial coding involved in the project. In the case of Hathor this would likely involve work on making Bootstrap Javascript meet accessibility standards and work on the core administrator layouts.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Expected Results:&#039;&#039;&#039; Hathor is beautiful.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Knowledge Prerequisite:&#039;&#039;&#039; Javascript, CSS, HTML, PHP&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Easy&lt;br /&gt;
&lt;br /&gt;
====Project: Accesssible Backend Template====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Brief explanation:&#039;&#039;&#039; For most people, the internet has become the norm. Information from around the world is freely available.  But not all people are benefitting from it, especially those with  disabilities. For those who find it difficult to participate fully in social life, much can be gained from communication technology.  But they often face barriers which make it difficult to access information and applications. Take &amp;quot;looking for a job&amp;quot; as an example. The computer gives people with disabilities excellent prospects in overcoming limitations to find employment. Wouldn&#039;t it be nice if they  had full access to the Joomla backend?  New career opportunties would be opened up. If the requirements of accessibility are carefully met, it would make the system easier to understand and easier to use for all users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: We already, have an accessible backend Joomla template, but it is not very attractive and it is not using all the new technical possibilities.&lt;br /&gt;
: For this reason we are looking for someone who will use Bootstrap to build (with our support):&lt;br /&gt;
&lt;br /&gt;
: - an attractive, accessible design with good user guidance (layout &amp;amp; colors, contrast)&lt;br /&gt;
&lt;br /&gt;
: - a meaningful semantic structure based on web standards&lt;br /&gt;
&lt;br /&gt;
: Some preliminary steps have been made to get you started, but this remains a very complex endeavor.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Expected Results:&#039;&#039;&#039; Accessible admin template&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Knowledge Prerequisite:&#039;&#039;&#039; WAI-ARIA, Javascript, CSS, HTML, PHP&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium-Hard&lt;br /&gt;
&lt;br /&gt;
: Posible mentors: Angie Radtke&lt;br /&gt;
&lt;br /&gt;
====Project: Refactor document model containers====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Brief explanation:&#039;&#039;&#039; When I say document model containers, what I&#039;m really talking about is all those arrays in the document model that store things like metas, scripts, css, etc. Those can be rendered collectively in the template using the jdoc head tag. The project would refactor the document model to allow more robust methods of working with document containers. One solution would be to use PHP ArrayObjects instead of simple arrays.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Expected Results:&#039;&#039;&#039; A robust solution should allow methods for appending and prepending items, method chaining, and the ability to create custom containers from within extensions and templates.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Knowledge Prerequisite:&#039;&#039;&#039; Joomla! CMS, PHP, some html, some css, and some javascript.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;References:&#039;&#039;&#039;&lt;br /&gt;
:* Joomla! Forums topic: [[jtopic:793482|The ArrayObject - a different approach to document containers]]&lt;br /&gt;
:: (the editor would not allow me to post the link)&lt;br /&gt;
&lt;br /&gt;
====Project: Add fieldtype &#039;oclock&#039; in fields====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Brief explanation:&#039;&#039;&#039; Joomla!&#039;s form generation offers a fix group of field types, such as text, textarea, radio, calendar etc. Write another field that enables the developer to create a time field, call it &#039;oclock&#039; or something else sensible. The display of the time should be configurable via a format attribute. It should have the look&#039;n&#039;feel of the calendar field ([[Calendar form field type|Calendar form field type]])&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Expected Results:&#039;&#039;&#039; Generation of a time field called in xml via &amp;lt;field type=&amp;quot;oclock&amp;quot; .../&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Knowledge Prerequisite:&#039;&#039;&#039; PHP, HTML, Javascript&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
====Project: Task scheduler and manager====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Brief explanation:&#039;&#039;&#039; Manage ,schedule and create tasks, from CMS administrator side, such as backup, virus scan, billing, reports, emailing and so on&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Expected Results:&#039;&#039;&#039;: The student will be expected to build an hosting agnostic solution that act as a framework to manage task, allowing to manage tasks from third party extensions too, and some ready to run common task&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;References:&#039;&#039;&#039;&lt;br /&gt;
:* http://en.wikipedia.org/wiki/Batch_processing&lt;br /&gt;
:* http://en.wikipedia.org/wiki/Scheduling_(computing)&lt;br /&gt;
:* http://en.wikipedia.org/wiki/Cron&lt;br /&gt;
:* http://en.wikipedia.org/wiki/Webcron&lt;br /&gt;
:* http://en.wikipedia.org/wiki/Daemon_(computing)&lt;br /&gt;
:* https://github.com/joomla/joomla-platform-examples/blob/master/cli/cron-plugins/run.php&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Knowledge Prerequisite:&#039;&#039;&#039;: PHP, Joomla CMS, Joomla Platform, Mysql, Operating Systems.&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
:&#039;&#039;&#039;Possible Mentors:&#039;&#039;&#039; Nicola Galgano&lt;br /&gt;
&lt;br /&gt;
====Project: Improvements to Template Manager for CMS 3====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Brief explanation:&#039;&#039;&#039; Templates are one of the most important elements of the Joomla CMS but except for the addition of template styles and template copy the functionality of the template manager has not changed dramatically since 1.5.  Currently users must go outside of the template manager to add CSS, to add or modify override files or to manage their LESS. This project will make working with templates easier and more user friendly.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Expected Results:&#039;&#039;&#039; By the end of the summer the student will produce fully documented and system tested code to do at least the following tasks in the template manager user interface:&lt;br /&gt;
:* See a list of overrides for a template&lt;br /&gt;
:* Edit the overrides for a template&lt;br /&gt;
:* Create a new override for a template (ideally with option to copy the core layout as a starting point)&lt;br /&gt;
:* Add a new CSS file to a template&lt;br /&gt;
:* Edit LESS file&lt;br /&gt;
:* Compile LESS&lt;br /&gt;
:* Upload images to a template&#039;s image&lt;br /&gt;
:* Provide a method of simple interaction with web based font and other providers.&lt;br /&gt;
Exact details to be developed in discussion with mentors.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Knowledge Prerequisite:&#039;&#039;&#039; Familiarity with the Joomla CMS and templates, PHP, file management, usability, javascript&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
==== Project: Remote web services management system for CMS 3====&lt;br /&gt;
:&#039;&#039;&#039;Brief explanation:&#039;&#039;&#039;  Integration with remote services is a central feature of the modern web. This Joomla CMS should provide ways for webmasters to seamlessly and easily manage their interactions withe external service providers.  &lt;br /&gt;
:&#039;&#039;&#039;Expected Results:&#039;&#039;&#039; A system for managing interactions with external services.  This would include but not be limited to:&lt;br /&gt;
:* Secure management of public and private keys using Keychain&lt;br /&gt;
:* Storage of relevant urls&lt;br /&gt;
:* Methods to safely manage embedding by front end users&lt;br /&gt;
:* Plugins for Google, Twitter and Facebook authentication&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Knowledge Prerequisite:&#039;&#039;&#039; PHP, Javascript, Joomla CMS, Web Servics&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium to Hard&lt;br /&gt;
&lt;br /&gt;
====Project: Redesign Users Profiles as a Form of Content for CMS 3====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Brief explanation:&#039;&#039;&#039; Build a new way to manage and display user profiles as a content type stored in the core content table with a combination of systems including both he current profile plugin system and new ways of approaching this including the use of the core fields for body, images, urls and xreference. At the same time improve integration with contact data providing the ability to easily search and sort and send email as well as to have complex layouts and integration of web services. &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Expected Results:&#039;&#039;&#039; A front end user profile system that provides a flexible way to create and manage use profiles. This system will follow Joomla design patterns and be fully documented, have unit tests for any classes, and have system tests.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Knowledge Prerequisite:&#039;&#039;&#039; PHP, Javascript, usability, familiarity with the Joomla CMS.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium to Hard&lt;br /&gt;
&lt;br /&gt;
====Project: Create com_services for front end website administration for CMS 3====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Brief explanation:&#039;&#039;&#039; The user experience for beginning site administrators in particular but also all site administrators will be improved if they can carry out basic administrative tasks such as updating the site title, meta data and email address, clearing cache, setting component defaults and doing basic user management in the front end. In this project you will provide a RESTful service and front end interface to that service to allow this. Specific tasks to be implemented will be decided in discussion with the mentors. &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Expected Results:&#039;&#039;&#039; A basic services based system for managing certain administrative tasks from the front end of the Joomla CMS. This will be fully documented, have automated tests, and follow Joomla development best practices. It will also be extensible so that additional tasks can be added over time.  This project will not involve content, only administrative tasks.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Knowledge Prerequisite:&#039;&#039;&#039; PHP, Javascript, web services, security practices, Joomla CMS and framework.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039;  Hard&lt;br /&gt;
&lt;br /&gt;
====Project: Webdriver system tests for CMS ====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Brief explanation:&#039;&#039;&#039; Automated system tests allow us to test the CMS by automatically running Joomla from a browser, selecting menu options, and evaluating results. At present, most of the system tests are written using the now-outdated Selenium RC program. A small number of tests are currently completed using the newer Selenium Webdriver technology and using the [https://code.google.com/p/selenium/wiki/PageObjects Page Objects] pattern to separate the page objects from the test objects. This project will build on the current base of Webdriver tests and expand the test coverage to include more of the CMS.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Expected Results:&#039;&#039;&#039; The student will complete the following tasks. &lt;br /&gt;
:# Create a strategy &amp;amp; roadmap for Joomla system tests. This will include things like:&lt;br /&gt;
:## How to organize the tests.&lt;br /&gt;
:## How to cover the critical back-end and front-end functionality of Joomla.&lt;br /&gt;
:# Write the reusable foundation classes for the expanded test coverage. These classes will be used to create the page object classes and test classes for the various portions of the CMS.&lt;br /&gt;
:# Begin the implementation of the roadmap.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Knowledge Prerequisite:&#039;&#039;&#039; PHP, object-oriented programming, Joomla CMS (from a user point of view), HTML&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Possible Mentors:&#039;&#039;&#039; Mark Dexter&lt;br /&gt;
&lt;br /&gt;
====Project: Create a &#039;&#039;&#039;translating tool&#039;&#039;&#039; extension for Joomla ====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Brief explanation:&#039;&#039;&#039; Projects like Facebook (see [http://www.insidefacebook.com/2008/04/02/now-you-can-help-translate-facebook-into-any-language/ insidefacebook.com/...]), RememberTheMilk ([http://www.rememberthemilk.com/services/translate/ http://www.rememberthemilk.com/...]) or other projects using [https://www.transifex.com] are taking advantage of their communities in order to  localize their software. Joomla is being translated by its community into 64 languages but there is plenty of space for more languages and more community participation.&lt;br /&gt;
At the same time many Joomla 3rd party developers are searching for a solution on how their communities can contribute in the translation of their extensions. &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Expected Results:&#039;&#039;&#039; It is a Goal for this GSoC 2013 project to create an improved tool based in [http://extensions.joomla.org/extensions/languages/language-edition/17755 com_localise] that allows to translators to easily translate and upload their translations to a GitHub repository using [http://developer.joomla.org/manual/chap-Joomla_Platform_Manual-Github.html JGithub package]. The tool also should allow frontend community members to suggest translated strings just like Facebook or Rememerthemilk does.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Knowledge Prerequisite:&#039;&#039;&#039; PHP, Git/Github, Joomla CMS and framework.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039;  Medium-Hard&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Posible mentors:&#039;&#039;&#039;  Javier Gómez, Jean Marie Simonet, Edvard Ananyan&lt;br /&gt;
&lt;br /&gt;
====Project: Module Modernization====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Brief explanation:&#039;&#039;&#039; Modules are an important part of the CMS but many of the modules have not been updated in many years and do not take advantage of new features like JImage or JQuery, JLayouts, or PHP 5. In addition aspects of module handling such as loadposition/loadmodule and the handling of modules in templates are due for refactoring and improvement as is the user interface of com_modules. This project will work on bringing modules up to date with the rest of the CMS.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Expected Results:&#039;&#039;&#039; Updated modules and module handling. Although subject to discussion with mentors, some likely areas are:&lt;br /&gt;
*Review all modules and bring up to PHP 5.4 standards.&lt;br /&gt;
*Incorporate JImage into modules as appropriate for example embedding the introtext image in articles modules.&lt;br /&gt;
*Incorporate or add new modules incorporating JQuery features such as image carousels.&lt;br /&gt;
*Add new modules for obviously missing features such as display of contact information.&lt;br /&gt;
*Develop the use of JLayouts in modules for standardization.&lt;br /&gt;
*Update the handling of loadposition.&lt;br /&gt;
*Work on handling modules as content and treating them as assets (i.e. providing module level access control).&lt;br /&gt;
*Work on a way to create basic configurable module default settings for items such as show title or class suffix.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Knowledge Prerequisite:&#039;&#039;&#039; PHP, SQL, Joomla CMS&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Easy to Medium &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Possible mentors:&#039;&#039;&#039; Elin Waring&lt;br /&gt;
&lt;br /&gt;
====Project: Smart Search Improvements====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Brief explanation:&#039;&#039;&#039; Smart Search is an advanced search system for the Joomla CMS. While extremely powerful, it does has some limitations that we would like to address.  First, it does always not properly handle some multibyte character sets and languages that do not use spaces between words. While partial solutions have been implemented, we would like to have more generic solutions. Also we would like to have a smart search interface in the Joomla Administrator and with the move to the core content model, to have better ties between smart search and other parts of the code base as well as extensions (how about an automated way to create a smart search plugin?). Finally, we would like to see some ongoing issues addressed including time out problems in the CLI application and modernization of queries and code to take advantage of newer databases and PHP versions as well as more parts of the Joomla API.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Expected Results:&#039;&#039;&#039; A much improved Smart Search shipped as part of Joomla CMS 3.2. &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Knowledge Prerequisite:&#039;&#039;&#039; PHP, SQL, search principles, Joomla platform, Smart Search.  &lt;br /&gt;
 &lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium to Hard&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Google Summer of Code 2013]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{dablink|Please add your project ideas here, you can use this &#039;&#039;&#039;[[GSOC 2013 Project template]]&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
===Joomla Framework===&lt;br /&gt;
&lt;br /&gt;
The Joomla Platform allows for ideas that can work within the Joomla CMS, or could be completely separate applications that have no connection at all. The Joomla Platform allows for applications to be built for the command line, process daemons and the web. The follow list outlines some ideas that will be immediately useful for the Joomla Platform project that a student may consider taking on. In addition to PHP libraries, the Joomla Platform also ships with MooTools and project ideas can be related to client-side operations as well as server-side. One emphasis on this year&#039;s list is on the incorporation of packages for accessing web services, however other ideas for libraries and packages are welcome. In some instances multiple students may work on different aspects of the project.  Two examples of this are unit testing and JStemmer.&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
*[http://github.com/joomla/joomla-platform github Source Code]&lt;br /&gt;
*[http://developer.joomla.org/strategy.html Development Strategy]&lt;br /&gt;
*[http://groups.google.com/d/forum/joomla-dev-platform Developer Mailing List]&lt;br /&gt;
&lt;br /&gt;
All code contributions must follow Joomla coding standards and include full unit test coverage.&lt;br /&gt;
&lt;br /&gt;
====Project: Platform Unit Testing====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Brief explanation:&#039;&#039;&#039; The Joomla Platform has a good suite of automated Unit Tests, but code coverage is lacking in some areas. The goal of this project is to improve the code coverage by writing unit tests for the Joomla Platform.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Expected Results:&#039;&#039;&#039; The student will be expected to review the current [http://developer.joomla.org/coverage/ code coverage report] for the Joomla Platform and write and agreed-upon number of unit tests with particular attention to packages that are below 50% coverage. Preference should be given to non-deprecated classes but the student may choose from either the core tree (/libraries/joomla) or the legacy tree (/libraries/legacy).&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Knowledge Prerequisite:&#039;&#039;&#039; PHP, PHPUnit&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Project: Object Relational Mapping (ORM) in Joomla====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Explanation:&#039;&#039;&#039; Implementation of Object Relational Mapping to provide an exiting new basis for building (complex) applications on or within Joomla.&lt;br /&gt;
&lt;br /&gt;
:Joomla uses an Active Record implementation. Via JTable and JTableNested data are CRUDded in models to and from database tables. Tables for different content types share the same kind of data and therefore code is duplicated. There are plans to solve this with a Unified Content Model (UCM), which will use a shared table for all content and a specialised table per content type. In order to implement that a JData class was made to store data in and a JDataMapper to map the database tables to the data. In terms of Martin Fowler&#039;s Patterns of Enterprise Architecture Patterns: Class Table Inheritance. This UCM would be a replacement for the current JTable classes and components. &lt;br /&gt;
&lt;br /&gt;
:Object Relational Mapping, especially when one-to-many and many-to-many relations are in play, has already been worked out in the PHP-world with ORM-frameworks like Propel and Doctrine. No need to reinvent a complete new wheel. Some work has been done to use Doctrine ORM in Joomla extensions, but it could be made more generally usable and easily available to open a lot of possibilities. &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Expected Results:&#039;&#039;&#039; &lt;br /&gt;
:The focus for such a GSOC-project could be one of the following:&lt;br /&gt;
:* a more general ORM interface in which specific ORM packages could fit; be it a &amp;quot;native&amp;quot; JDataMapper or other 3rd party ORM packages.&lt;br /&gt;
:* or a specific implementation (like Doctrine) with which core CMS extensions could be refactored. This would be a UCM-implementation using an existing ORM package.&lt;br /&gt;
:Both the Joomla Platform/Framework and the CMS would benefit from such projects.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Knowledge Prerequisite:&#039;&#039;&#039; Object Relational Mapping theory.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;References:&#039;&#039;&#039;&lt;br /&gt;
:* http://martinfowler.com/eaaCatalog/ and http://www.martinfowler.com/books/eaa.html&lt;br /&gt;
:* http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/index.html&lt;br /&gt;
:* https://github.com/eBaySF/joomla-platform/blob/data-package/docs/manual/en-US/chapters/packages/data.md#jdatamapper&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium to Hard&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Possible Mentors:&#039;&#039;&#039; Herman Peeren&lt;br /&gt;
&lt;br /&gt;
====Project: Expand Google API coverage====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Brief explanation:&#039;&#039;&#039; The JGoogle package provides a basic structure for using Google APIs in Joomla based code. However it only includes classes for a limited set of APIs.  Your task is to dramatically expand the coverage of Google data. Specific APIs to be agreed upon with mentors, with some preference for those of immediate usefulness to the Joomla CMS.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Expected Results:&#039;&#039;&#039; A set of well coded, fully unit tested and documented implementations for a range of Google data.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Knowledge Prerequisite:&#039;&#039;&#039; Github, PHPUnit, familiarity with web services and the Joomla CMS.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Google Summer of Code 2013]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{dablink|Please add your project ideas here, you can use this &#039;&#039;&#039;[[GSOC 2013 Project template]]&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Google Summer of Code 2013]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Edo888</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived:GSOC_2012_Project_Ideas&amp;diff=65298</id>
		<title>Archived:GSOC 2012 Project Ideas</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived:GSOC_2012_Project_Ideas&amp;diff=65298"/>
		<updated>2012-03-02T16:22:30Z</updated>

		<summary type="html">&lt;p&gt;Edo888: Added Joomla Translations idea&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Welcome!===&lt;br /&gt;
Welcome to the Joomla! Google Summer of Code (GSoC) 2012 project ideas page. As we move forward with the 2012 version of the Joomla! GSoC, we will use this page to develop possible project ideas. Please note that anyone who is interested can participate in this process. You do not have to be a GSoC student or mentor to suggest possible project ideas. Thanks!&lt;br /&gt;
&lt;br /&gt;
===Ideas===&lt;br /&gt;
&lt;br /&gt;
====Social Package====&lt;br /&gt;
&lt;br /&gt;
Over the last several years, social media has become a dominant force in online media.  Based on the number of extensions interacting with various social media APIs, it would be logical to build a Social package for the Joomla! Platform that provides a common and simplified interface to post and retrieve data from various social media networks.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Michael Babker&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla Platform, familiarity with social media APIs (Facebook, Twitter, Google+, etc.), OAuth&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium to Hard&lt;br /&gt;
&lt;br /&gt;
====Joomla Translations====&lt;br /&gt;
Create a centralized translation tool, which will be a kind of Facebook Self-Translation App for Joomla! communities to have better translation.&lt;br /&gt;
&lt;br /&gt;
The centralized website will make better translations for Joomla! It will help non-English speaking translation teams to get feedback about translation quality from people, who speak the same language. So translation teams can involve more volunteers in translation process. It will help also extension developers to translate their software. It will enable ability to submit a new extension translation INI file in English and get the translated version from the translation teams.&lt;br /&gt;
&lt;br /&gt;
See&lt;br /&gt;
*[http://www.facebook.com/translations/ Facebook Self-Translation]&lt;br /&gt;
*[http://localize.drupal.org]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Edvard Ananyan&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, JavaScript, MySQL, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;/div&gt;</summary>
		<author><name>Edo888</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Joomla!_Student_Outreach_Program_Project_Ideas&amp;diff=26579</id>
		<title>Joomla! Student Outreach Program Project Ideas</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Joomla!_Student_Outreach_Program_Project_Ideas&amp;diff=26579"/>
		<updated>2010-04-04T13:16:16Z</updated>

		<summary type="html">&lt;p&gt;Edo888: Added me as an interested student&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Joomla! Student Outreach Program==&lt;br /&gt;
JSOP has been created to provide a structure to allow students to participate in and contribute to the Joomla! project. Students will work with experienced mentors on coding and other projects designed to improve the Joomla! CMS and the general Joomla! ecosystem. &lt;br /&gt;
&lt;br /&gt;
This program will include two separate ways that students can contribute to Joomla! in structured programs with experienced mentors. The first way will be working on larger projects as part of a team. The team will include one or more students and one or more mentors. &lt;br /&gt;
&lt;br /&gt;
===Large Team Projects===&lt;br /&gt;
&lt;br /&gt;
Here is a starting list for possible large team projects. The idea is that these will be larger projects that would be worked on by teams of students and mentors.&lt;br /&gt;
&lt;br /&gt;
If you are interested in participating in one of these projects, please add your name under Interested Mentors or Interested Students. This is not final and does not commit you to anything. It will just help us figure out who is interested in what. You can add your name to more than one project if you like and then we can decide later which project you will work on.&lt;br /&gt;
&lt;br /&gt;
====Improved, automated API documentation presentation====&lt;br /&gt;
Figure out a way to read the PHP code documentation into a database and use it to allow access to accurate, up-to-date documentation of the Joomla! API in a way that is usable to developers.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Interested Mentors:&#039;&#039;&#039; Louis Landry. Chris Davenport&lt;br /&gt;
:&#039;&#039;&#039;Interested Students:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
====Web-based translation of Joomla core language files and 3rd party components====&lt;br /&gt;
Currently the process of making translations for Joomla requires manual copying of files and subsequently using a text editor to manually translate. This is labour intensive, hard to keep up to date with the latest Joomla releases and does not promote collaborations. I am proposing to use an automated system to create and distribute translations for Joomla. The translations would be done using Narro a free GPL web-based translation software used by Mozilla. In addition an automation layer with a Joomla components needs to be developer to ensure the system does not need any manual updating and ensures that translations are community driven. Its an important project and will be lots of fun at the same time.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Interested Mentors:&#039;&#039;&#039; Marius van Rijnsoever&lt;br /&gt;
:&#039;&#039;&#039;Interested Students:&#039;&#039;&#039; Edvard Ananyan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Internationalisation of the Joomla! help screens for 1.6====&lt;br /&gt;
Improve the process for creating and deploying the help screens in the many languages for which Joomla! is translated.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Interested Mentors:&#039;&#039;&#039; Jean-Marie Simonet,Akarawuth Tamrareang&lt;br /&gt;
:&#039;&#039;&#039;Interested Students:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====System Testing==== &lt;br /&gt;
Create automated system tests to allow testing of the CMS from a user perspective.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Interested Mentors:&#039;&#039;&#039; Mark Dexter&lt;br /&gt;
:&#039;&#039;&#039;Interested Students:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
====Version 1.5 to 1.6 migration script====&lt;br /&gt;
We need to allow 1.5 users to easily migrate their sites to version 1.6. Work on this has been started, but it is a big job. Also, this could include hooks to make it easier for third-party developers to build migration tools for their extensions.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Interested Mentors:&#039;&#039;&#039; Mark Dexter&lt;br /&gt;
:&#039;&#039;&#039;Interested Students:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
====Project Management Tools====&lt;br /&gt;
&lt;br /&gt;
This project could include:&lt;br /&gt;
&lt;br /&gt;
* Develop a component with project collaboration features (like BaseCamp: http://basecamphq.com/).&lt;br /&gt;
* ProgressBar views based on completed task based on sprints, milestones, project...&lt;br /&gt;
* Different front-end views for Clients, Team, Managers...&lt;br /&gt;
* A module to show the active projects and is respective ProgressBars.&lt;br /&gt;
* Allow Comments and discussions on tasks&lt;br /&gt;
* Allow manager/team to set the function points value of each task (eq: planing poker)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Skills needed:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP, MySQL, Javascript, MooTools&lt;br /&gt;
:&#039;&#039;&#039;Interested Mentors:&#039;&#039;&#039; Marcelo Eden&lt;br /&gt;
:&#039;&#039;&#039;Interested Students:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====Zen Joomla! template switcher====&lt;br /&gt;
This would be capable of efficiently allowing selection from a few hundred templates. Also maybe a component for submission and processing?&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Interested Mentors:&#039;&#039;&#039; &lt;br /&gt;
:&#039;&#039;&#039;Interested Students:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
====Usability testing====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Interested Mentors:&#039;&#039;&#039; Elin Waring&lt;br /&gt;
:&#039;&#039;&#039;Interested Students:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Joomla Dev Tools  ====&lt;br /&gt;
This is a project which automatically generate codes for you to help when developing Extensions. This will help, &lt;br /&gt;
* New comers to decrease the learning curve of Joomla! Development&lt;br /&gt;
* Professionals to automate their Joomla! tasks&lt;br /&gt;
&lt;br /&gt;
more details: http://docs.google.com/View?id=dhdpnvnz_59g6n3rsc8 &lt;br /&gt;
&lt;br /&gt;
samples     : http://code.google.com/p/arunoda/source/browse/#svn/trunk/kadira%3Fstate%3Dclosed&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Interested Mentors:&#039;&#039;&#039; Oleg Nesterov&lt;br /&gt;
:&#039;&#039;&#039;Interested Students:&#039;&#039;&#039; Arunoda Susiripala&lt;br /&gt;
&lt;br /&gt;
===Small Task Projects===&lt;br /&gt;
&lt;br /&gt;
The other part of this is that we can also have a list of small&lt;br /&gt;
tasks that students could work on individually (like the GHOP model,&lt;br /&gt;
for those of you familiar with this). One or more mentors could help&lt;br /&gt;
students with these tasks. Example of tasks might be to create a unit&lt;br /&gt;
or system test, fix a bug, or write some documentation.&lt;br /&gt;
&lt;br /&gt;
===Program Structure===&lt;br /&gt;
&lt;br /&gt;
In both cases, students would be working on a volunteer basis.&lt;br /&gt;
However, we will figure out some fun rewards, like awarding t-shirts or other Joomla! stuff. Also, we will issue official certificates to students who successfully contribute to either program.&lt;br /&gt;
&lt;br /&gt;
As with GSoC, the primary benefits to students are (a) real-world experience; (b) working with world-class mentors; and (c) the satisfaction of contributing to a great project and being part of a&lt;br /&gt;
great community.&lt;br /&gt;
&lt;br /&gt;
====Application Process====&lt;br /&gt;
Since JSOP is a volunteer program, we do not have a fixed limit on the number of students who can participate. However, we need to make sure we have mentors for each project or task. Also, we still want students to formally apply to the program so that we have information about each student and can make sure they are assigned to projects. We will have more information about the details of the application process shortly.&lt;/div&gt;</summary>
		<author><name>Edo888</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Summer_of_Code_2010_Project_Ideas&amp;diff=22231</id>
		<title>Summer of Code 2010 Project Ideas</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Summer_of_Code_2010_Project_Ideas&amp;diff=22231"/>
		<updated>2010-03-15T15:00:13Z</updated>

		<summary type="html">&lt;p&gt;Edo888: Joomla Translations&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Welcome!===&lt;br /&gt;
Welcome to the Joomla! Google Summer of Code (GSoC) 2010 project ideas page. As we move forward with the 2010 version of the Joomla! GSoC, we will use this page to develop possible project ideas. Please note that anyone who is interested can participate in this process. You do not have to be a GSoC student or mentor to suggest possible project ideas. Thanks!&lt;br /&gt;
&lt;br /&gt;
===Ideas===&lt;br /&gt;
&lt;br /&gt;
====Project Management Tools====&lt;br /&gt;
&lt;br /&gt;
This project could include:&lt;br /&gt;
&lt;br /&gt;
* Develop a component with project collaboration features (like BaseCamp: http://basecamphq.com/).&lt;br /&gt;
* ProgressBar views based on completed task based on sprints, milestones, project...&lt;br /&gt;
* Different front-end views for Clients, Team, Managers...&lt;br /&gt;
* A module to show the active projects and is respective ProgressBars.&lt;br /&gt;
* Allow Comments and discussions on tasks&lt;br /&gt;
* Allow manager/team to set the function points value of each task (eq: planing poker)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Marcelo Eden&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP, MySQL, Javascript, MooTools&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
====Improve Image Presentation Capabilities====&lt;br /&gt;
&lt;br /&gt;
This project could include:&lt;br /&gt;
&lt;br /&gt;
* Expand the JHtml modal behaviour to support groups of images (eg Litebox or similar).&lt;br /&gt;
* A content plugin to support modal gallery displays or inline image sliders.&lt;br /&gt;
* A module to support galleries of images.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Unassigned&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
====Audio/Video Support====&lt;br /&gt;
&lt;br /&gt;
This project could include:&lt;br /&gt;
&lt;br /&gt;
* Sourcing or creating a FOSS flash audio (see http://flash-mp3-player.net/) and video player.&lt;br /&gt;
* A content plugin to support embedding different types of audio files easily in content.&lt;br /&gt;
* A content plugin to support embedding different types of video files (both local and hosted, eg vimeo) easily in content.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Marcelo Eden&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, Flash&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
====Google Map Support====&lt;br /&gt;
&lt;br /&gt;
This project could include:&lt;br /&gt;
&lt;br /&gt;
* An editor-xtd plugin that allows you to insert &amp;quot;map code&amp;quot; for a content plugin.&lt;br /&gt;
* A content plugin to display a map with content.&lt;br /&gt;
* A module to display a map.&lt;br /&gt;
* Support for finding directions.&lt;br /&gt;
* Map based on address data in individual contacts&lt;br /&gt;
* Map all addresses in a category of contacts&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Marcelo Eden, Alessandro Nadalin&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, Javascript&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
====Simple User Subscription and User Utilities====&lt;br /&gt;
&lt;br /&gt;
This project would be suite of extensions that would provide enhanced user features such as:&lt;br /&gt;
&lt;br /&gt;
* Allow you to manage user account expiry.&lt;br /&gt;
* Allow you to manage password expiry.&lt;br /&gt;
* Allow for configurable email messages.&lt;br /&gt;
* Allow for user registration approval.&lt;br /&gt;
* Clean up bad user records.&lt;br /&gt;
* Run simple reports on user registration data.&lt;br /&gt;
* Bulk import of users and user information.&lt;br /&gt;
* Bulk export of users and user information.&lt;br /&gt;
* Allow user to self delete.&lt;br /&gt;
* Terms of service plugin.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Garthee, Alessandro Nadalin&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
====Extension Builder====&lt;br /&gt;
&lt;br /&gt;
This project would involve a component that builds other components, modules, plugins, languages and templates in skeletal form. It could also be used to create/edit new component and module layout overrides in templates.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Marcelo Eden, Oleg Nesterov, Alessandro Nadalin&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
====Joomla! API Reference====&lt;br /&gt;
&lt;br /&gt;
Currently the Joomla! API reference at [http://api.joomla.org] is not as useful as it could be. Develop a way to present the information in a useful (and search able) format and with the ability to have user contributed notes in a way similar to [http://www.php.net/manual/en/]. &lt;br /&gt;
&lt;br /&gt;
Currently api.joomla.org is static html produced by phpdocumenter. The project could achieve these goals by developing an extension or framework application to integrate the output from phpdocumenter with Joomla and incorporating a commenting style system.&lt;br /&gt;
&lt;br /&gt;
Note: There are also materials here in  docuwiki format [http://joomlacode.org/gf/project/joomla/scmsvn/?action=browse&amp;amp;path=%2Fdocumentation%2Ftrunk%2Fwiki%2Freferences%2Fjoomla.framework%2F] that could be incorporated. Other material is here [http://docs.joomla.org/Framework].&lt;br /&gt;
&lt;br /&gt;
Note: If you are interested in working on the API Reference then please talk to the Documentation Team before starting as we are currently working on a very different approach from the one described here.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; &lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MVC, MySQL, Joomla! CMS Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
====Improve Unit Test Coverage====&lt;br /&gt;
Work has been started on this with the goal of a continuous build model, but test coverage is incomplete. We need to add many more unit tests. Proposals should specify an area of concentration. Several projects for different areas would be welcome.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Alessandro Nadalin&lt;br /&gt;
:&#039;&#039;&#039;Consultant:&#039;&#039;&#039; Ian MacLennon&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, PHPUnit, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
====Improve System (Functional) Test Coverage====&lt;br /&gt;
Work has been started on this with the goal of a continuous build model, but test coverage is incomplete. We need to add many more system tests. Proposals should specify an area of concentration. Several projects for different areas would be welcome.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Alessandro Nadalin&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Selenium, Joomla! CMS&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====MooTools====&lt;br /&gt;
Build a content editor with Moo Tools.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! CMS, MooTools&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
====Enhanced Template Manager====&lt;br /&gt;
&lt;br /&gt;
Jooomla! 1.6 improves the template manager substantially.  Continue this by creating the ability to manage overrides form the template interface, develop an easier interface for beginners to modify css, and similar improvements in usability. &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; &lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! CMS&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
====Social layer====&lt;br /&gt;
&lt;br /&gt;
Joomla Social API. Not necessarily a component like Community Builder but an API to allow other components to build on top of. &lt;br /&gt;
Consider API for&lt;br /&gt;
* activitysteams: http://activitystrea.ms/&lt;br /&gt;
* Open social http://code.google.com/apis/opensocial/ Some initial work already started on a previous gsoc project and I (rob clayburn) have some additional code available to be worked on.&lt;br /&gt;
* XFN http://gmpg.org/xfn/&lt;br /&gt;
* FOAF&lt;br /&gt;
* Facebook&lt;br /&gt;
* Twitter&lt;br /&gt;
* etc&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Gary Brooks&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! CMS&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
====Advanced Voting====&lt;br /&gt;
Implement an advanced voting system that allows voting on several named dimensions of an item. Should work across all components, possibly as an improvement to the core voting or possibly as a separate extension.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Garthee&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! CMS&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
====Threaded Commenting and Comment Rating====&lt;br /&gt;
&lt;br /&gt;
Improve the core comment component so that it supports (a) threaded commenting and (b) comment rating (comments can be voted on or give thumbs up thumbs down and commenters can be rated based on comment votes). Troll rating system to allow auto un-publication of comments passing a set criterion of reporting. See Scoop&#039;s system as an example of the concept.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! CMS&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Community Moderation====&lt;br /&gt;
&lt;br /&gt;
Improve the core comment component so that it supports community moderation of articles and comments in a manner similar to Scoop &lt;br /&gt;
[http://en.wikipedia.org/wiki/Scoop_%28software%29]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! CMS&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
====Module Manager Improvements====&lt;br /&gt;
&lt;br /&gt;
Improve the User Interface and ease of use for the module manager.  &lt;br /&gt;
Examples:&lt;br /&gt;
*Make it easier to select groups of pages to assign modules to.&lt;br /&gt;
*Assign modules to all items in a submenu.&lt;br /&gt;
*Provide ability to assign/override module chrome on a per-module basis through the manager&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Brian Shaughnessy&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! CMS&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
====Moo Tools Depender ====&lt;br /&gt;
&lt;br /&gt;
Implement Moo Tools depender within Joomla.&lt;br /&gt;
&lt;br /&gt;
Depender is the official library builder for MooTools libraries.&lt;br /&gt;
&lt;br /&gt;
See&lt;br /&gt;
*[http://mootools.net/blog/2009/11/09/mootools-depender-a-build-tool-for-mootools-javascript-libraries/     Blog]&lt;br /&gt;
&lt;br /&gt;
*[http://mootools.net/docs/more/Core/Depender  Some details about the client side app]&lt;br /&gt;
*[http://github.com/anutron/mootools-depender/ Server side app]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! CMS&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Easy&lt;br /&gt;
&lt;br /&gt;
====Joomla Translations====&lt;br /&gt;
Create a centralized translation tool, which will be a kind of Facebook Self-Translation App for Joomla! communities to have better translation.&lt;br /&gt;
&lt;br /&gt;
The centralized website will make better translations for Joomla! It will help non-English speaking translation teams to get feedback about translation quality from people, who speak the same language. So translation teams can involve more volunteers in translation process. It will help also extension developers to translate their software. It will enable ability to submit a new extension translation INI file in English and get the translated version from the translation teams.&lt;br /&gt;
&lt;br /&gt;
See&lt;br /&gt;
*[http://www.facebook.com/translations/ Facebook Self-Translation]&lt;br /&gt;
*[http://localize.drupal.org]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! CMS&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====JMail====&lt;br /&gt;
&lt;br /&gt;
Create a Joomla! library to replace the phpmailer library. This should build on existing work in the xxx branch. &lt;br /&gt;
This would include POP and SMTP clients and data translation.&lt;br /&gt;
The goal should be to process both read and write. &lt;br /&gt;
Complete unit testing is a must for this.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;Consultant:&#039;&#039;&#039; Louis Landry&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Joomla! API&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====JFeed====&lt;br /&gt;
&lt;br /&gt;
Create a Joomla! library to replace the simplepie library. This should build on existing work in the xxx branch. This should plan for the future such as incorporating advanced atom specs and the ability to embed podcasts. &lt;br /&gt;
 &lt;br /&gt;
Complete unit testing is a must for this.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;Consultant:&#039;&#039;&#039; Louis Landry&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Joomla! API&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
====JXMLRPC====&lt;br /&gt;
&lt;br /&gt;
Complete the Joomla! library for XMLRPC. This should build on existing work in the xxx branch. &lt;br /&gt;
 &lt;br /&gt;
Complete unit testing is a must for this.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Gary Brooks&lt;br /&gt;
:&#039;&#039;&#039;Consultant:&#039;&#039;&#039; Louis Landry&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Joomla! API&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
====JCalendar====&lt;br /&gt;
&lt;br /&gt;
Create a JCalendar class. This should write iCal and hCal.   &lt;br /&gt;
 &lt;br /&gt;
Complete unit testing is a must for this.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;Consultant:&#039;&#039;&#039; Louis Landry&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Joomla! API&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====JCard====&lt;br /&gt;
&lt;br /&gt;
Create a JCard class. This should write vCard and hCard.    &lt;br /&gt;
 &lt;br /&gt;
Complete unit testing is a must for this.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;Consultant:&#039;&#039;&#039; Louis Landry&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Joomla! API&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
====Cache Improvements and Tests====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;Consultant:&#039;&#039;&#039; Louis Landry&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Joomla! API&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
====JImage====&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;Consultant:&#039;&#039;&#039; Louis Landry&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Joomla! API&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
====Google Wave/Apps API Integration====&lt;br /&gt;
&lt;br /&gt;
Integrate the functionality of Google Wave into the Publishing Workflow and/or Site Management processes.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Matt Lipscomb, Sandra Warren&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, Joomla! API, Google Wave/Apps API&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
====Improved Search====&lt;br /&gt;
&lt;br /&gt;
Currently Joomla! does not support term weights. This provides a disadvantage to many sites that rely on search. Users will not find the things that they need and you will loose those users.&lt;br /&gt;
&lt;br /&gt;
This project would include the following:&lt;br /&gt;
* Providing a more advance search API. &lt;br /&gt;
* Create a weight  structure for the search API (example: http://phpir.com/alternative-term-weighting)&lt;br /&gt;
* Provide a clean AJAX Advance Search&lt;br /&gt;
* Improve the plugin support for old and new plugins&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Steven Pignataro - &#039;corePHP&#039; (www.corephp.com)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla! CMS Framework, MVC, PHP 5.2+, mySQL, AJAX (mootools)&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Advanced&lt;br /&gt;
&lt;br /&gt;
====Page Versioning Extension====&lt;br /&gt;
&lt;br /&gt;
Build on work done in the past two years to add page versioning to Joomla!. &lt;br /&gt;
Create a 1.6 content versioning extension with the goal that this work could be integrated into the core Joomla CMS for future releases. The Page Versioning Extension will allow the ability for frontend and backend content users to be able to save and re-publish/revert previously saved versions of content items that they have access to.&lt;br /&gt;
&lt;br /&gt;
Further user permissions could be introduced in order to restrict access to this overall feature.&lt;br /&gt;
&lt;br /&gt;
Features could include a visual and html code difference between the current and previously saved versions, as well as general searching data such as dates and time of previous saved entries of that content.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Vic Drover&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla! Framework, MVC, PHP 5.2+, mySQL, AJAX (mootools)&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
====Search Plugin Tool and Search Display Customization====&lt;br /&gt;
&lt;br /&gt;
As more and more usage of 3PD extensions occurs, those extensions have data that needs to be integrated into the search capabilities.  This idea is part tool, and part plugin. &lt;br /&gt;
Create an installable tool component that can analyze the database for relevant fields in the database that are added by 3PD components.  Display those fields to be selectable in the component and once selected, have the tool create a search plugin to augment either the integrated search or various 3PD search solutions.  Once the plugin is created have a second part of the component allow the search results display to be organized in various ways that are customizable.  This tool could be part of setting up a site, or could be run at any given time that something new is added to add new fields of data that may be created and needed to be part of search.&lt;br /&gt;
&lt;br /&gt;
Would be an interesting project mixed with Improved Search to include weighting.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; &lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla! Framework, MVC, PHP 5.2+, mySQL, AJAX (mootools)&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
====Blank Slate Extensions====&lt;br /&gt;
&lt;br /&gt;
The basic idea is to develop a set of example extensions that have less than useful functionality, but show developers some of the core features of using the Joomla Framework.&lt;br /&gt;
&lt;br /&gt;
* Design a sample component that manages a set of records in the database&lt;br /&gt;
* Design a sample module that relies on the component and integrates with some of the behaviors&lt;br /&gt;
* Design a sample plugin or two that demonstrate the ways plugins can interact with the rendering process&lt;br /&gt;
* Utilize pure MVC methodology&lt;br /&gt;
* Concept is to focus on developing a project that can be easily repurposed&lt;br /&gt;
&lt;br /&gt;
Project would best suit a programmer with an extreme desire to dig deep into the API. These blank slate extensions could be available for download to developers, for study or for building upon.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; &lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP, MySQL, Javascript, MooTools&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Rewrite the internal research with Zend_Lucene====&lt;br /&gt;
&lt;br /&gt;
No many words to say, it would be great if some student would like to&lt;br /&gt;
do this amazing job: full-text MySQL make the environment spend lots&lt;br /&gt;
of resources, quering a lucene index wouldn&#039;t.&lt;br /&gt;
&lt;br /&gt;
The idea is to bring the Zend_Lucene engine, put it on Joomla! and&lt;br /&gt;
start rewriting an internal research from scratch. &lt;br /&gt;
&lt;br /&gt;
Things you&#039;ll need to focus are:&lt;br /&gt;
* an agile strategy to develop this new search engine&lt;br /&gt;
* localize entities suitable for the search engine ( articles, contacts, ... )&lt;br /&gt;
* add event/triggers for the CRUD of those entities&lt;br /&gt;
* index generation/optimization&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Alessandro Nadalin&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP, MySQL, Zend Framework, Lucene&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium - Hard&lt;br /&gt;
&lt;br /&gt;
====Improve Joomla user integration with CiviCRM contact records====&lt;br /&gt;
&lt;br /&gt;
CiviCRM is a contact relationship management extension for Joomla (www.civicrm.org). There are some existing limitations/weaknesses with how Joomla users and CiviCRM contacts connect and interact. The following improvements could be considered:&lt;br /&gt;
&lt;br /&gt;
* delete J user when related C contact is deleted&lt;br /&gt;
* allow creation of J user directly from C contact (add button to create user)&lt;br /&gt;
* improve editing of J user from within C contact (account popup in modal box)&lt;br /&gt;
* include J user handling in the C contact deduplication/merge process&lt;br /&gt;
* allow automatic redirection of J user registration pages to CiviCRM profile from within the Civi interface (global settings, via a system plugin)&lt;br /&gt;
* begin integrating C ACL functions with J 1.6 ACL&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Brian Shaughnessy&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, CiviCRM, PHP, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;/div&gt;</summary>
		<author><name>Edo888</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Summer_of_Code_2010_Project_Ideas&amp;diff=22064</id>
		<title>Summer of Code 2010 Project Ideas</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Summer_of_Code_2010_Project_Ideas&amp;diff=22064"/>
		<updated>2010-03-06T16:47:12Z</updated>

		<summary type="html">&lt;p&gt;Edo888: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Welcome!===&lt;br /&gt;
Welcome to the Joomla! Google Summer of Code (GSoC) 2010 project ideas page. As we move forward with the 2010 version of the Joomla! GSoC, we will use this page to develop possible project ideas. Please note that anyone who is interested can participate in this process. You do not have to be a GSoC student or mentor to suggest possible project ideas. Thanks!&lt;br /&gt;
&lt;br /&gt;
===Ideas===&lt;br /&gt;
&lt;br /&gt;
=====Project Management Tools=====&lt;br /&gt;
&lt;br /&gt;
This project could include:&lt;br /&gt;
&lt;br /&gt;
* Develop a component with project collaboration features (like BaseCamp: http://basecamphq.com/).&lt;br /&gt;
* ProgressBar views based on completed task based on sprints, milestones, project...&lt;br /&gt;
* Different front-end views for Clients, Team, Managers...&lt;br /&gt;
* A module to show the active projects and is respective ProgressBars.&lt;br /&gt;
* Allow Comments and discussions on tasks&lt;br /&gt;
* Allow manager/team to set the function points value of each task (eq: planing poker)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Marcelo Eden&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP, MySQL, Javascript, MooTools&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Improve Image Presentation Capabilities=====&lt;br /&gt;
&lt;br /&gt;
This project could include:&lt;br /&gt;
&lt;br /&gt;
* Expand the JHtml modal behaviour to support groups of images (eg Litebox or similar).&lt;br /&gt;
* A content plugin to support modal gallery displays or inline image sliders.&lt;br /&gt;
* A module to support galleries of images.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Unassigned&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Audio/Video Support=====&lt;br /&gt;
&lt;br /&gt;
This project could include:&lt;br /&gt;
&lt;br /&gt;
* Sourcing or creating a FOSS flash audio (see http://flash-mp3-player.net/) and video player.&lt;br /&gt;
* A content plugin to support embedding different types of audio files easily in content.&lt;br /&gt;
* A content plugin to support embedding different types of video files (both local and hosted, eg vimeo) easily in content.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Marcelo Eden&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, Flash&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Google Map Support=====&lt;br /&gt;
&lt;br /&gt;
This project could include:&lt;br /&gt;
&lt;br /&gt;
* An editor-xtd plugin that allows you to insert &amp;quot;map code&amp;quot; for a content plugin.&lt;br /&gt;
* A content plugin to display a map with content.&lt;br /&gt;
* A module to display a map.&lt;br /&gt;
* Support for finding directions.&lt;br /&gt;
* Map based on address data in individual contacts&lt;br /&gt;
* Map all addresses in a category of contacts&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Marcelo Eden&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, Javascript&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Simple User Subscription and User Utilities=====&lt;br /&gt;
&lt;br /&gt;
This project would be suite of extensions that would provide enhanced user features such as:&lt;br /&gt;
&lt;br /&gt;
* Allow you to manage user account expiry.&lt;br /&gt;
* Allow you to manage password expiry.&lt;br /&gt;
* Allow for configurable email messages.&lt;br /&gt;
* Allow for user registration approval.&lt;br /&gt;
* Clean up bad user records.&lt;br /&gt;
* Run simple reports on user registration data.&lt;br /&gt;
* Bulk import of users&lt;br /&gt;
* Allow user to self delete.&lt;br /&gt;
* Terms of service plugin.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Garthee&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Extension Builder=====&lt;br /&gt;
&lt;br /&gt;
This project would involve a component that builds other components, modules, plugins, languages and templates in skeletal form. It could also be used to create/edit new component and module layout overrides in templates.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Marcelo Eden, Oleg Nesterov&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
====Joomla! API Reference====&lt;br /&gt;
&lt;br /&gt;
Currently the Joomla! API reference at [http://api.joomla.org] is not as useful as it could be. Develop a way to present the information in a useful (and search able) format and with the ability to have user contributed notes in a way similar to [http://www.php.net/manual/en/]. &lt;br /&gt;
&lt;br /&gt;
Currently api.joomla.org is static html produced by phpdocumenter. The project could achieve these goals by developing an extension or framework application to integrate the output from phpdocumenter with Joomla and incorporating a commenting style system.&lt;br /&gt;
&lt;br /&gt;
Note: There are also materials here in  docuwiki format [http://joomlacode.org/gf/project/joomla/scmsvn/?action=browse&amp;amp;path=%2Fdocumentation%2Ftrunk%2Fwiki%2Freferences%2Fjoomla.framework%2F] that could be incorporated. Other material is here [http://docs.joomla.org/Framework].&lt;br /&gt;
&lt;br /&gt;
Note: If you are interested in working on the API Reference then please talk to the Documentation Team before starting as we are currently working on a very different approach from the one described here.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; &lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MVC, MySQL, Joomla! CMS Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
====Improve Unit Test Coverage====&lt;br /&gt;
Work has been started on this with the goal of a continuous build model, but test coverage is incomplete. We need to add many more unit tests. &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, PHPUnit, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
====Improve System (Functional) Test Coverage====&lt;br /&gt;
Work has been started on this with the goal of a continuous build model, but test coverage is incomplete. We need to add many more system tests. &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Selenium, Joomla! CMS&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====MooTools====&lt;br /&gt;
Build a content editor with Moo Tools.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! CMS, MooTools&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
====Enhanced Template Manager====&lt;br /&gt;
&lt;br /&gt;
Jooomla! 1.6 improves the template manager substantially.  Continue this by creating the ability to manage overrides form the template interface, develop an easier interface for beginners to modify css, and similar improvements in usability. &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; &lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! CMS&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
====Social layer====&lt;br /&gt;
&lt;br /&gt;
Joomla Social API. Not necessarily a component like Community Builder but an API to allow other components to build on top of. &lt;br /&gt;
Consider API for&lt;br /&gt;
* activitysteams: http://activitystrea.ms/&lt;br /&gt;
* Open social http://code.google.com/apis/opensocial/ Some initial work already started on a previous gsoc project and I (rob clayburn) have some additional code available to be worked on.&lt;br /&gt;
* XFN http://gmpg.org/xfn/&lt;br /&gt;
* FOAF&lt;br /&gt;
* Facebook&lt;br /&gt;
* Twitter&lt;br /&gt;
* etc&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! CMS&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Advanced Voting====&lt;br /&gt;
Implement an advanced voting system that allows voting on several named dimensions of an item. Should work across all components, possibly as an improvement to the core voting or possibly as a separate extension.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Garthee&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! CMS&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
====Threaded Commenting and Comment Rating====&lt;br /&gt;
&lt;br /&gt;
Improve the core comment component so that it supports (a) threaded commenting and (b) comment rating (comments can be voted on or give thumbs up thumbs down and commenters can be rated based on comment votes). Troll rating system to allow auto un-publication of comments passing a set criterion of reporting. See Scoop&#039;s system as an example of the concept.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! CMS&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Community Moderation====&lt;br /&gt;
&lt;br /&gt;
Improve the core comment component so that it supports community moderation of articles and comments in a manner similar to Scoop &lt;br /&gt;
[http://en.wikipedia.org/wiki/Scoop_%28software%29]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! CMS&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
====Module Manager Improvements====&lt;br /&gt;
&lt;br /&gt;
Improve the User Interface and ease of use for the module manager.  &lt;br /&gt;
Examples:&lt;br /&gt;
*Make it easier to select groups of pages to assign modules to.&lt;br /&gt;
*Assign modules to all items in a submenu.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! CMS&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Moo Tools Depender ====&lt;br /&gt;
&lt;br /&gt;
Implement Moo Tools depender within Joomla.&lt;br /&gt;
&lt;br /&gt;
Depender is the official library builder for MooTools libraries.&lt;br /&gt;
&lt;br /&gt;
See&lt;br /&gt;
*[http://mootools.net/blog/2009/11/09/mootools-depender-a-build-tool-for-mootools-javascript-libraries/     Blog]&lt;br /&gt;
&lt;br /&gt;
*[http://mootools.net/docs/more/Core/Depender  Some details about the client side app]&lt;br /&gt;
*[http://github.com/anutron/mootools-depender/ Server side app]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! CMS&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Easy&lt;br /&gt;
&lt;br /&gt;
====Joomla Translations====&lt;br /&gt;
Create a centralized translation tool, which will be a kind of Facebook Self-Translation App for Joomla! communities to have better translation.&lt;br /&gt;
&lt;br /&gt;
The centralized website will make better translations for Joomla! It will help non-English speaking translation teams to get feedback about translation quality from people, who speak the same language. So translation teams can involve more volunteers in translation process. It will help also extension developers to translate their software. It will enable ability to submit a new extension translation INI file in English and get the translated version from the translation teams.&lt;br /&gt;
&lt;br /&gt;
See&lt;br /&gt;
*[http://www.facebook.com/translations/ Facebook Self-Translation]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! CMS&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;/div&gt;</summary>
		<author><name>Edo888</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived:Summer_of_Code_2009_Project_Ideas&amp;diff=13731</id>
		<title>Archived:Summer of Code 2009 Project Ideas</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived:Summer_of_Code_2009_Project_Ideas&amp;diff=13731"/>
		<updated>2009-03-22T22:57:11Z</updated>

		<summary type="html">&lt;p&gt;Edo888: /* Working copy of Joomla! live site */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gsoc_2009_logo.png|right]]&lt;br /&gt;
&lt;br /&gt;
===Welcome!===&lt;br /&gt;
Welcome to the Joomla! Google Summer of Code (GSoC) 2009 project ideas page. As we move forward with the 2009 version of the Joomla! GSoC, we will use this page to develop possible project ideas. Please note that anyone who is interested can participate in this process. You do not have to be a GSoC student or mentor to suggest possible project ideas. Thanks!&lt;br /&gt;
&lt;br /&gt;
===Ideas===&lt;br /&gt;
&lt;br /&gt;
=====Advanced Poll/Survey Suite=====&lt;br /&gt;
&lt;br /&gt;
The core polls extension has been removed from Joomla! 1.6. Develop a fully featured poll/survey suite that will allow relatively simple user polls and the collection of complex anonymized survey data authenticated against either the Joomla users database or an external database. Possibly look to [http://limesurvey.org/] as a model or integration.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Full Frontend Editing=====&lt;br /&gt;
&lt;br /&gt;
Right now we only have frontend editing for articles, there are a few improvements I can propose&lt;br /&gt;
* Article editing is done in a modal popup&lt;br /&gt;
* Edit module content and params from frontend (Editing done via a modal popup?)&lt;br /&gt;
* Article Title - edit in place&lt;br /&gt;
* Create some kind of a library function which allows easy frontend editing for any value (This will need some thought)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; Javascript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Template Manager Improvements/Advanced Template Manager=====&lt;br /&gt;
&lt;br /&gt;
Extend the template manager so that it providers an better environment for template creation and modification.  Improvements might include: &lt;br /&gt;
*expanded tool bar, including copy for a complete template&lt;br /&gt;
*access to the media manager&lt;br /&gt;
*access to all template files (not just css and index.php)&lt;br /&gt;
*override manager&lt;br /&gt;
*integration of an editor with code highlighting (such as codepress)&lt;br /&gt;
*support for template parameter groups&lt;br /&gt;
*remove hard-wired references to template name from the core templates (so the new copy function will work as expected)&lt;br /&gt;
*&amp;quot;export&amp;quot; button on the toolbar which will create a zip package file containing the template (also fixes any errors in the templateDetails.xml file as it goes).&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Work Flow Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 Extension to flexibly manage workflow for com_content. &lt;br /&gt;
Ideally it should be extensible to other components, but com_content should be used as the proof of concept.&lt;br /&gt;
Work flow should manage the publication process, including assignment of editors or publishers to specific content items, notifications of relevant actions to specific individuals or groups, change of status to block author editing of published work.&lt;br /&gt;
&lt;br /&gt;
As much as possible administrators should be able to construct their own work flows.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Page Versioning Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 content versioning extension with the goal that this work could be integrated into the core Joomla CMS for future releases.&lt;br /&gt;
The Page Versioning Extension will allow the ability for frontend and backend content users to be able to save and re-publish/revert previously saved versions of content items that they have access to.&lt;br /&gt;
&lt;br /&gt;
Further user permissions could be introduced in order to restrict access to this overall feature.&lt;br /&gt;
&lt;br /&gt;
Features could include a visual and html code difference between the current and previously saved versions, as well as general searching data such as dates and time of previous saved entries of that content.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Taxonomy Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 Taxonomy extension with the goal that this work could be integrated into the core Joomla CMS for future releases.&lt;br /&gt;
The Taxonomy Extension will allow the ability to organise content for classification, improving on the current Section and Categories classification.&lt;br /&gt;
&lt;br /&gt;
Taxonomy is a vital feature of modern CMS solutions, evolving from the previous &amp;quot;pigeonholeing&amp;quot; of a content item. &lt;br /&gt;
Full organisational structures and multi tagging of content could be included, including powerful search functions of content under  those classifications.&lt;br /&gt;
&lt;br /&gt;
Taxonomy is a missing feature in Joomla!, which another open-source competitor product currently offers. We have seen a number of opportunities when Joomla! misses out on being the chosen option for a CMS due to the lacking of this feature.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Keywords Management Extension=====&lt;br /&gt;
Keywords in articles are an important part of many Joomla! sites. They are used for page rankings but also can be used with Related Articles modules and component extensions. In this capacity, they provide a way to relate articles that is much more flexible and free-form than the built-in Section / Category / Article hierarchy.&lt;br /&gt;
&lt;br /&gt;
Currently in Joomla!, keywords are entered when editing each individual article. This has several disadvantages, including:&lt;br /&gt;
* You cannot see already existing keywords when entering in keywords for an article.&lt;br /&gt;
* You cannot see existing articles that are already associated with a keyword.&lt;br /&gt;
* It is difficult to be consistent when using keywords. For example, should it be capitalized, singular or plural (&amp;quot;Dog&amp;quot; or &amp;quot;Dogs&amp;quot;), and so on.&lt;br /&gt;
&lt;br /&gt;
To deal with these issues, a back-end Keyword Management extension is proposed. This extension would allow the following capabilities:&lt;br /&gt;
* A management screen showing a list of all keywords currently in use. This would provide the ability to drill into any keyword and see all articles that use this keyword.&lt;br /&gt;
* A keyword picker screen. This would allow an author to pick keywords for an article from a list of existing keywords. This would make it easier to ensure consistency in spelling, capitalization, and usage between keywords. This screen would also allow the author to add a new keyword to the list.&lt;br /&gt;
* The ability to do global search and replace on keywords.&lt;br /&gt;
* The ability to see keywords ranked by frequency of use.&lt;br /&gt;
* The ability to list articles to which no keywords have been assigned.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====User-Defined List and Blog Layout Extension=====&lt;br /&gt;
Currently in Joomla!, there are built-in Menu Items for list and blog layouts for Sections and Categories. However, the way a list of articles is selected is tightly bound with the way the list is displayed on the page. In theory, you should be able to have a list or blog layout that shows any selection of articles.&lt;br /&gt;
&lt;br /&gt;
To provide this capability, an extension is proposed that would provide layouts similar to the current list and blog layouts. However, the extension would be designed so that the list of articles is provided by a plugin instead of being integrated into the layout. Example plugins could be provided to mimic the current Section, Article, and Front Page layouts. However, the power of this extension is that the user could add their own plugin that would provide a list of articles using any type of query. This list of articles would then feed into the built-in layouts provided by the extension to turn the raw article list into the desired layout.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Ian MacLennan(subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Improve Unit Test Coverage=====&lt;br /&gt;
Work has been started on this but the number of unit tests currently in use is small. We need to add many more unit tests. Also, currently unit tests are only able to be used for class methods. We have no way, for example, to test page layouts or module insertion into templates. Part of this project could be to research automated testing solutions to test the complete HTML code sent to the browser. This would allow end-to-end automated testing.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Alan Langford (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, PHPUnit, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Web Based Unit Test Runner=====&lt;br /&gt;
Write a test runner that makes it easy to run unit tests from a web browser. The existing unit test framework is based on running PHP from the command line. While this is essential for integrating testing into the build and release process, it&#039;s a barrier to using tests during development.&lt;br /&gt;
&lt;br /&gt;
This project involves adapting web-based test runners provided by PHPUnit to support the &amp;quot;Joomla!&amp;quot; testing environment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Alan Langford (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, PHPUnit, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====CiviCRM Integration: Plugins to Expose the CiviCRM API to the Joomla! Front End=====&lt;br /&gt;
[http://civicrm.org/ CiviCRM] is a powerful constituent relationship management system designed for the not-for-profit/nongovernmental organizations. It currently integrates with Joomla! and the 2.2 version is native to Joomla! 1.5.&lt;br /&gt;
&lt;br /&gt;
CiviCRM has a rich API only small parts of which are currently easily accessible from the Joomla! front end. Create a series of plugins that allows the flexible and highly integrated use of the CiviCRM API in Joomla Content, modules, and other core and non-core extensions (such as com_user, com_contact_diretory or calendaring components).&lt;br /&gt;
&lt;br /&gt;
For this project the student should plan on interacting closely with both the Joomla! and CiviCRM teams.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Elin Waring (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySQL, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====CiviCRM Integration: Develop Front End Extensions for CiviCRM Data=====&lt;br /&gt;
Develop a suite of front end Joomla! 1.5 extensions (modules, plugins and a Joomla! style MVC front end component) for CiviCRM.&lt;br /&gt;
&lt;br /&gt;
[http://civicrm.org/ CiviCRM] is a powerful constituent relationship management system designed for the not-for-profit/nongovernmental organizations. It currently integrates with Joomla! 1.0.x and 1.5 in legacy mode, and  and the 2.2 version is native to Joomla! 1.5.&lt;br /&gt;
&lt;br /&gt;
Thus far most functionality for CiviCRM in Joomla! has focused on the administrator. This project will focus on fuller development of the CiviCRM Joomla! front end.&lt;br /&gt;
&lt;br /&gt;
This development might include modules, plugins, and a MVC front end component which will allow exposure of various CiviCRM APIs as well as allowing Joomla! users the ability to use template overrides and other ways of controlling design and functionality in ways they are familiar with. &lt;br /&gt;
&lt;br /&gt;
The core of this project will be the completion of a Joomla! MVC front end component for existing front end functionality, the basic skeleton for which has been incorporated in CiviCRM 2.2.&lt;br /&gt;
&lt;br /&gt;
Additional items might focus on modules and views to display information.&lt;br /&gt;
&lt;br /&gt;
Some of these will focus on the display of and interaction with general information, for example:&lt;br /&gt;
* a module showing a list of upcoming events,&lt;br /&gt;
* a module showing progress on a fund raising thermometer,&lt;br /&gt;
* a module displaying the most recent donations, donations at certain levels, total donations or other information,&lt;br /&gt;
* a module containing a contribution button linked to a specific contribution page,&lt;br /&gt;
* a donation reporting view with a layout that displays lists of donors in a given time period, sorted by giving level.&lt;br /&gt;
&lt;br /&gt;
Some will focus on the display of user level information such as:&lt;br /&gt;
* a module displaying an individual&#039;s information from a given profile with the option to update,&lt;br /&gt;
* a module displaying an individual&#039;s summary giving information,&lt;br /&gt;
* a module displaying events an individual is registered for.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Elin Waring (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySQL, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====CiviCRM Integration: Development of Multilingual Functionality=====&lt;br /&gt;
&lt;br /&gt;
[http://civicrm.org/ CiviCRM] is an open source constituent relationship management system used by NGOs and advocacy groups (like Amnesty International, Wikimedia Foundation or the Joomla! and Drupal projects) all over the world. Judging by the number of community-contributed and -maintained translations and civicrm.org statistics, CiviCRM installations exist in over twenty languages using various alphabets (Latin, Cyrillic, Arabic, Devanagari, Chinese). Multi-language support is essential in multilingual countries (like Canada or India), as well as in cross-border (e.g., Central and East European) and worldwide organizations.&lt;br /&gt;
&lt;br /&gt;
For this project the student will extend the multilingual features of CiviCRM (initially created during Google Summer of Code 2008), including (but not limited to) some/all of the following:&lt;br /&gt;
* internationalization of further CiviCRM fields,&lt;br /&gt;
* new, database-based framework for handling translations (partially replacing the existing gettext solution),&lt;br /&gt;
* a solution for proper localization of the initial database seed, according to initial language selection (enumerable values, etc.),&lt;br /&gt;
* changes to CiviCRM upgrade process which will make it work transparently on multilingual sites (as opposed to the current explicit handling of multilingual sites),&lt;br /&gt;
* changes to CiviCRM’s translations portal easing translators’ work,&lt;br /&gt;
* multilingual demo installation for translators, picking up new translations “on the fly”,&lt;br /&gt;
* an automatic engine porting translation strings between CiviCRM releases.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wes Morgan (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySQL, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====CiviCRM Integration: Multi-Organizational Access Control Lists=====&lt;br /&gt;
[http://civicrm.org/ CiviCRM] is an open source constituent relationship management system used by small and large NGOs and advocacy groups, some of them spanning across many smaller (and not-so-small) organizations and/or divided into subgroups, chapters, etc.&lt;br /&gt;
&lt;br /&gt;
The goal of this project is to extend the current CiviCRM ACL capabilities to cover the needs of such multi-part organizations, as well as CiviCRM installations that span across many organizations (with various strengths of ties between them).&lt;br /&gt;
&lt;br /&gt;
The new ACL features should include (but not be limited to):&lt;br /&gt;
* optional inheritance of access right between related organizations and related sub-organizations,&lt;br /&gt;
* creation and sane management of functional groups on various levels of the (sub-)organization graph (“volunteer coordinator for East US chapters of Org X”, “coordinator of campaign Y across all orgs”, etc.),&lt;br /&gt;
* scalability of the designed ACL system – performance-wise,&lt;br /&gt;
* scalability of the designed ACL system – manageability-wise.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wes Morgan (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySQL, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Improved Error Handling=====&lt;br /&gt;
Create a component that will handle standard errors (ex. 404) so that headers are sent for the error code, but the error is trapped and redirected from the error.php file back to Joomla! &lt;br /&gt;
where it can be handled on a normal webpage.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Media Manager Improvements=====&lt;br /&gt;
The following improvements could be made to the current Joomla! Media Manager:&lt;br /&gt;
* Support content expiration (image/video) that allow user to set start – end date of each content which to be lived on site&lt;br /&gt;
**e.g. food image can be lived on site only 3 months, due to the license issue, so we need to take out the image and replace it with other default image or leave it blank&lt;br /&gt;
* Support user friendly input interface which allow user to complete content input in 1 screen (Text input, Multiple images/videos upload, Tagging, Mapping related content and so on)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Whiteboard/Wiki Component=====&lt;br /&gt;
Joomla comes with a few core components, and a Whiteboard/Wiki component would be a great addition to those.  It would be a basic implementation of the feature with the following possible features:&lt;br /&gt;
&lt;br /&gt;
* Provide a simple interface for editing (perhaps allowing multiple users to edit at once or locking down while under edit)&lt;br /&gt;
* Ability to restrict user access on posting&lt;br /&gt;
* Organize whiteboards&lt;br /&gt;
* Keep revisions in archive&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Ashwin Date (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Core Extensions Semantic and SEO Updates=====&lt;br /&gt;
The core extensions can be modified to produce semantic markup.  The tables should be replaced withmore appropriate containers for the contents.  This would not replace the need for template overrides, but rather make the default output stronger to build upon.  The output should also be arranged to best suit the content in the majority of situations.  Perhaps also a basic system reset CSS file would need to be developed to set some of the basic layout items, also to be easily disabled.&lt;br /&gt;
&lt;br /&gt;
The core output cannot be replaced completely without causing many 1.5 templates to break.  Therefore it would be necessary to&lt;br /&gt;
either have a legacy mode for templates or to automatically detect the template type (1.5 or 1.6) in order to provide the right output. &lt;br /&gt;
&lt;br /&gt;
Modules can be defined in a template to have pretty much any name they wish.  While this is great for template makers, it would be good to have at least some guidelines about naming modules.  Module names like user1 and user2 are essentially useless semantically, and to administrators of a site.  Some templates are designed for any module to fit in any position, but in general there are at least a handful that are designed with the menu, footer, and other aspects in mind.  Perhaps Joomla can create some guidelines (not requirements) related to this.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Templates for Joomla 1.6=====&lt;br /&gt;
Each version of Joomla comes with a set of templates, and they are updated with each major release.  1.6 is currently in development, and will need a new set of templates.  These templates should:&lt;br /&gt;
&lt;br /&gt;
* Employ semantic markup&lt;br /&gt;
* Provide a fresh look&lt;br /&gt;
* Be flexible to accommodate all kinds of content&lt;br /&gt;
* Come with example core overrides, perhaps for major extensions as well&lt;br /&gt;
* Should have a light memory print&lt;br /&gt;
* Comply with accessibility standards&lt;br /&gt;
* Validate&lt;br /&gt;
* Be easily modified and built upon&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, HTML, CSS, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Administrator and Usability Improvements=====&lt;br /&gt;
There are many little improvements that would help with general usability and administration for Joomla users. &lt;br /&gt;
&lt;br /&gt;
* Assigning modules in the Menu Manager&lt;br /&gt;
* Assigning links from Article Manager&lt;br /&gt;
* Copying templates&lt;br /&gt;
* Easily change Control Panel icons&lt;br /&gt;
* Improved Front Page article handling&lt;br /&gt;
* Improve internal mailing system and its notifications&lt;br /&gt;
* Make Control Panel in the menu a one click step, not hover then select&lt;br /&gt;
* Have the main tabs linked in case they are clicked, such as Content goes to Articles&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Content Item Templates=====&lt;br /&gt;
&lt;br /&gt;
Easy page layout template system so that editors can choose from a pre-defined range of layouts.&lt;br /&gt;
This could be useful when certain pages all require the Name, Date, Author name, photo in a certain area, tagline etc.&lt;br /&gt;
Content item templates could be defined, then saved and authors could then choose from this list, helping sites with larger article content to retain continuity throughout their areas of pages.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====XML DTDs and XML Schemas for all XML files used in Joomla=====&lt;br /&gt;
&lt;br /&gt;
XML files are used in various places throughout Joomla.  Historically, the installer XML files have had DTDs against which they can be validated.  However, there are a number of known issues with these DTDs and there are other XML files used in Joomla that have never had DTDs written at all.  Furthermore, DTDs can only catch certain classes of errors within XML files and we need to look beyond DTDs to look at XML Schemas to catch other classes of errors.&lt;br /&gt;
&lt;br /&gt;
* Review all XML files used in Joomla and list them on the documentation wiki.&lt;br /&gt;
* Create a collection of test cases of XML files that will fail in Joomla and which should, therefore, fail to validate in some way.&lt;br /&gt;
* Where DTDs already exist, review, revise and update them as necessary.&lt;br /&gt;
* Create DTDs for those XML files that don&#039;t currently have one.&lt;br /&gt;
* Create patches for the core code (target 1.6?) to ensure that valid DTDs can be written for all XML files.&lt;br /&gt;
* All current DTDs force some XML elements to appear in a particular order which is neither enforced nor required by Joomla.  If possible, solve this problem so that designers and developers can place those elements in arbitrary order in the XML and still have the XML files validate against the DTDs.&lt;br /&gt;
* Create XML Schemas for all XML files used in Joomla.&lt;br /&gt;
* Ensure that DTDs and XML Schemas are well commented and/or thoroughly documented.&lt;br /&gt;
* Write comprehensive documentation covering the process of validating an XML file against both DTDs and XML Schemas.  Some documentation already exists that can be used as the basis for this.&lt;br /&gt;
* Expand the collection of test cases to include XML files that will not fail in Joomla but which may or may not fail to validate against the DTDs or XML Schemas.&lt;br /&gt;
* Ensure that the test case collection is properly documented so that changes to Joomla and/or the DTDs and XML Schemas can be properly tested.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Chris Davenport (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, XML / DTD validation&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Alternate Component for Editing Articles=====&lt;br /&gt;
The idea is to have an component on admin side that allows articles to be edited based on the frontend navigation, Something similar to [http://thewebkitchen.co.uk/typo3temp/pics/a367ba3c04.jpg Typo3 admin]implementation (just 2 and 3 in the image).&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Amit Kumar Singh (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Magento eCommerce Platform integration into Joomla!=====&lt;br /&gt;
Magento is an actively developing award winning open source eCommerce platform. The idea is to develop a bridge between Magento and Joomla.&lt;br /&gt;
More info about Magento can be found from the following websites:&lt;br /&gt;
[http://www.magentocommerce.com/ Magento official website]&lt;br /&gt;
[http://demo.magentocommerce.com/ Magento online demo]&lt;br /&gt;
[http://www.magentocommerce.com/media/tour/magento-tour-store/view Store tour video]&lt;br /&gt;
[http://www.magentocommerce.com/media/tour/magento-tour-admin/view Admin tour video]&lt;br /&gt;
[http://www.infoworld.com/slideshow/2008/08/168-best_of_open_so-8.html Best of Open Source Enterprise Applications]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Not assigned yet&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Xinha WYSIWYG editor for Joomla! frontend and backend editing=====&lt;br /&gt;
Xinha is a powerful WYSIWYG editor, which supports plugins. So administrator can customize their working environment and even write their own plugins.&lt;br /&gt;
The idea is to integrate Xinha into Joomla! with ability of editing content from frontend and backend. The editor environment must be configurable, output&lt;br /&gt;
HTML code must be W3C compliant, for that we will need also to implement [http://htmlpurifier.org/ HTMLPurifier] plugin into Xinha.&lt;br /&gt;
&lt;br /&gt;
You can try [http://edo.webmaster.am/projects Xinha editor plugin demo] for Joomla! 1.5.&lt;br /&gt;
More info about Xinha can be found from the following websites:&lt;br /&gt;
[http://xinha.webfactional.com/ Xinha official website]&lt;br /&gt;
[http://xinha.raimundmeyer.de/x_examples/ext_example.html Xinha demo]&lt;br /&gt;
[http://xinha.webfactional.com/wiki/Plugins Currently available Xinha plugins]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Not assigned yet&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Working copy of Joomla! live site=====&lt;br /&gt;
Administrators usually work on their live site directly and sometimes they do mistakes as all people do. As a result, the live site gets messed after extension installation/uninstallation process and re-configuration. The idea is to have a working copy of the live site and make changes on it, then, if everything is okay after some testing, you can approve changes and the tool will apply them to your live site.&lt;br /&gt;
&lt;br /&gt;
Some of the steps, which will need to be done to complete this project:&lt;br /&gt;
* Develop a tool, which will create a working copy of the site&lt;br /&gt;
* Develop a diff tool, which will show not approved changes&lt;br /&gt;
* Develop a tool, which will synchronize working copy with the live website&lt;br /&gt;
* Interface in working copy to view not approved changes with possibility to reject or approve specified changes&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Sam Moffatt (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium to Hard&lt;br /&gt;
&lt;br /&gt;
=====Elgg Platform integration into Joomla!=====&lt;br /&gt;
Elgg was providing an elegant and powerful solution for anyone who wants to create their own online community. Elgg is free and open source and powers all kinds of social networks - from education and business to martial arts and rugby. If you are looking for a professional social intranet or just want to run a site for your fishing club, Elgg is a great choice. The idea is to develop a bridge between elgg and Joomla.&lt;br /&gt;
More info about elgg can be found from the following websites:&lt;br /&gt;
[http://www.elgg.org/ elgg official website]&lt;br /&gt;
[http://community.elgg.org/ elgg community online ]&lt;br /&gt;
[http://docs.elgg.org/wiki/Main_Page  elgg Documentation]&lt;br /&gt;
&lt;br /&gt;
Some of the steps, which will need to be done to complete this project:&lt;br /&gt;
* synchronize user between elgg and Joomla!&lt;br /&gt;
* develop module for Joomla! to show Users Activity &lt;br /&gt;
* develop module for Joomla! to show Members photo from Elgg&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Pisan Chueachatchai, Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====New Extension Install Manager=====&lt;br /&gt;
Update Systems presently doesn&#039;t have an easy to navigate structure for handling the large amount of information that is potentially available when a user wishes to install new extensions into their system backed from the update system. Updates are presented already and temporarily uninstalled items are also displayed as a technology demonstration of what can be achieved using the new system.&lt;br /&gt;
&lt;br /&gt;
A completely new look extension install manager is required to help make meaning of the information that the update system exposes. In part this system should also expose information about existing installed extensions in the system (including any pending updates they might have) as well as new extensions that are available. Its purpose should be similar to the way that &amp;quot;Synaptic&amp;quot; works on Debian or Ubuntu operating systems.&lt;br /&gt;
&lt;br /&gt;
The majority of the data loading framework is build already permitting the enterprising developer to focus primarily on interfacing with the installer system and building a useful user interface to make containing these extensions very easy.&lt;br /&gt;
&lt;br /&gt;
Areas of further development involve research involving the development of a Firefox plugin (or similar) that stream lines installing Joomla! extensions from a web site perhaps similar to the way that Firefox is handled. This would involve developing a service that facilitates authenticated remote installation procedures.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Sam Moffatt (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Update Server=====&lt;br /&gt;
With the development of the new infrastructure there is a need to create an independent update server to make a developer&#039;s life easier when installing creating extensions. The update server should in part offer a download facility where users can download directly from it via a front end Joomla! component as well as something that will generate XML files statically on the file system and dynamically dependent on the administrator&#039;s choice. The XML files should be generated in the defined format that already exists  and should handle updating automatically. &lt;br /&gt;
&lt;br /&gt;
Expanding on the system it should be able to push notifications out through an extensible plugin system as well as handle automatic mirroring of the files (again via plugins). An example of a notification plugin could be something that automatically updates the JED or posts a new article in a specific category with changelog information. An example of a mirror plugin could be something that automatically uploads files to a release on JoomlaCode, perhaps even creating the release automatically as well. The location of generated XML files should be configurable as well and may also be requested to be uploaded to external resources as well (e.g. a mirror server for the XML update files).&lt;br /&gt;
&lt;br /&gt;
The application should make the most of new features introduced into Joomla! 1.6 such as the Forms API to provide plugin customisable interfaces to various systems.&lt;br /&gt;
&lt;br /&gt;
An extension of this would be the provisioning of content plugins that handle the integration of download URL&#039;s and version numbers for packages that are handled through the system to allow Joomla! content items to interact with the system in a flexible manner.&lt;br /&gt;
&lt;br /&gt;
Proxy functionality would also be desirable to have the update server function as a slave to other sites and permit updates through a proxy. This would also involve a method for mirroring the binary files onto the proxy server as well but has some interesting different functionality to the main project. &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Sam Moffatt (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Authentication Systems=====&lt;br /&gt;
This is a major project consistent of various subparts. It should be undertaken by someone with at least a basic understanding of how Joomla! operates and developing for Joomla!. This is not a good starter project. Students should show an interest in this area and be happy to work in an agile method with tighter deadline for individual projects to come together as a final assessable package. A combination of options might be selected but at least three should be considered.&lt;br /&gt;
&lt;br /&gt;
This is still in moderate draft phase.&lt;br /&gt;
&lt;br /&gt;
* Group Mapping&amp;lt;br/&amp;gt;Group Mappings is a feature that permits external groups to be mapped onto Joomla! groups when the user logs into the system. Implementation of the data retrieval aspect of this project isn&#039;t required however implementation of a user interface to control group mappings is required. The system should permit the administrator to designate that a specified group name string should map to a given user group. Optionally settings may be given priorities to enable mapping of &amp;quot;primary&amp;quot; groups to the user. This project is Joomla! 1.6 only and includes work on the new ACL system that permits multiple groups.&lt;br /&gt;
&lt;br /&gt;
* LDAP Authentication Groups Discovery&amp;lt;br /&amp;gt;Tied in with group mapping the LDAP authentication plugin should then become capable of determining the groups that a user is a member of and reporting this back to the parent system. This will probably be in DN form which is why the group mapping application is useful.&lt;br /&gt;
&lt;br /&gt;
* LDAP User Plugin&amp;lt;br/&amp;gt;Presently I have an LDAP user plugin that permits Joomla! to push users details into LDAP. Ideally this could be expanded to handle groups as a general improvement to the entire user subsystem. Extra user fields should also be populated some how as well. Ideally it should be made into a configurable so that mappings could be made arbitrarily however &#039;templates&#039; for individual directory systems (MSAD, eDirectory, SunOne, OpenDirectory, plain OpenLDAP inetOrgPerson). &lt;br /&gt;
&lt;br /&gt;
* LDAP ACL Backend&amp;lt;br /&amp;gt;This would permit ACL changes to be pushed into LDAP which can then be copied into different Joomla! sites periodically permitting centralised control as well as more generalised ACL systems to hook into Joomla!.&lt;br /&gt;
&lt;br /&gt;
* Pluggable Authentication Requests&amp;lt;br /&amp;gt;Developers should be able to request authentication to occur and then be redirected back to where they are. This authentication system should be pluggable to permit different handlers to be implemented. For example a default plugin would be Joomla!&#039;s Login Form however another authentication fall back might push you through SSO instead and then fall back to the login form.&lt;br /&gt;
&lt;br /&gt;
* External SSO Authentication Hook&amp;lt;br /&amp;gt;Build an external authentication system that permits login hooks into the system outside of the primary site similar to how Moodle handles its authentication. This would aide non-obtrusive SSO authentication requests integrated with the above Pluggable Authentication Requests system without having to go through an entire potential request to Joomla!. This should be a lot more cut down than a full application load and would involve the development of a smaller application to handle this with a slightly different style to what is normally used and could be considered a &#039;harder&#039; project than the rest.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Sam Moffatt (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework, LDAP (for some).&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Adminlist library for Joomla! Developers=====&lt;br /&gt;
Many developers create new components every day all over the world. The idea is to develop a library for rendering lists of items in the administration panel (like standard lists of users/articles/categories/etc). It must handle all routine work of creating such lists for components.&lt;br /&gt;
&lt;br /&gt;
It should work like a common form creator class. You set list of fields with their types (columns) and list of values (rows) or an SQL-query to fetch them.&lt;br /&gt;
&lt;br /&gt;
The main features of the library should be:&lt;br /&gt;
&lt;br /&gt;
* Different column types (at least text, link, edit link, publish, order, logical and date types).&lt;br /&gt;
* Inputs for data filtering.&lt;br /&gt;
* Ability to set columns from either the php array or the xml file (this to be discussed).&lt;br /&gt;
* Ajax support for the following tasks: publish/unpublish, order up/order down, save ordering, filtering, sorting by columns.&lt;br /&gt;
* Quick edit mode to change some data on fly without entering item’s edit page.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Oleg Nesterov&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP5, OOP, MySQL, JavaScript, Ajax, and some base knowledge of Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Web Links Component Upgrades=====&lt;br /&gt;
&lt;br /&gt;
Add a new feature that could expand on the basic web links feature to allow users to submit links and then rate them.  It could emulate some of the main features of digg. &lt;br /&gt;
* Expand the submit links feature&lt;br /&gt;
* Provide a ranking functionality&lt;br /&gt;
* Produce modules&lt;br /&gt;
* Plugin to connect with each article written to be included in the ranking&lt;br /&gt;
* Ability to accept submissions from external sites or widgets&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Make it easier to Extend Editors=====&lt;br /&gt;
Currently it is very difficult to extend TinyMCE and other editors by using JavaScript plugins that are available for them. Idea is to make this process easier by allowing Joomla plugins to extend editors. We already have something similar on WordPress backend, which allows us to easily extend the TinyMCE editor using WordPress plugins.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Amit Kumar Singh (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; JavaScript, Joomla CMS framework, MVC, PHP 5.2 &lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Site Cloner=====&lt;br /&gt;
This project involves building a tool that will take an existing site (probably HTML but could be partially dynamically generated) and feature the ability to suck it into Joomla!, stripping the template as it goes and attempting to rebuild the navigation structure whilst also maintaining as much metadata as possible. This project requires exceptional programming skill, a deep knowledge of the Joomla! CMS, and someone with a knack for solving weird problems. An analogous module exists for Drupal in its &amp;quot;[http://drupal.org/project/import_html Import HTML]&amp;quot; and might serve as a good location for study of ideas and concepts.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Sam Moffatt (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2 &lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Very Hard&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Typography Plug-in=====&lt;br /&gt;
&#039;&#039;Introduction&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Typography (&#039;&#039;Etymology: typos ⎯ type, graphos ⎯ written&#039;&#039;) is the art and techniques of arranging type, type design, and modifying type glyphs ([http://en.wikipedia.org/wiki/Typography en.wikipedia.org/wiki/Typography]).&lt;br /&gt;
&lt;br /&gt;
Typography is an important part of any text design. It makes texts look better, more sophisticated, and professional. It was a must for all books, newspapers, and other printed text sources at the times when computers did not exist or were not widely spread and the texts were set up by professionals only. Nowadays 99% of texts are created not by professionals and the quality of typography leaves much to be desired. &lt;br /&gt;
&lt;br /&gt;
I agree with those who say that it’s just a small detail but details is something that makes things perfect. As a musician must play from music, a HTML coder must take into account typography rules of text formatting although in both cases most people may not notice any benefits.&lt;br /&gt;
&lt;br /&gt;
At the age of content management systems most texts are set up by common users and the typography issue has become even more visible. This problem can be at least partially solved by involving automated typography scripts while preparing texts for displaying on a web page.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Goal&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The goal is to create Joomla! CMS plug-in that would format texts correctly according to   typography rules of different languages without any loss of page display speed. &lt;br /&gt;
&lt;br /&gt;
The plug-in would be used to fix primes, opening and closing quotes, apostrophes; to fix dashes, and other punctuation; to insert spaces and correct special symbols such as Copyright, Registered, Trademark, and others; to fix parentheses, brackets, angle brackets, and guillemets; to format numbers; to add no-break symbols when necessary, and more. In addition it would be used to handle such issues as quotes within quotes, and others.&lt;br /&gt;
&lt;br /&gt;
Here are two examples from [http://everything2.com/title/rules%20of%20typography everything2.com] to illustrate the way the correctly formatted text would look:&lt;br /&gt;
&lt;br /&gt;
* En français: Einstein a (peut-être) dit : « J’adore 3,14, 298 000 — et 42 ! ».&lt;br /&gt;
* In English: Einstein said: “3.14, 298,000—and 42—are my all-time favourite numbers!”&lt;br /&gt;
&lt;br /&gt;
As you can see, it’s not only a matter of replacing certain symbols with their ‘correct’ versions. Everything is much more complicated, I’d say it’s a challenge :)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Previous Attempts&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
There are quite a few typography plug-ins for Joomla! CMS but none of them is actually intended to format texts correctly. Each of those does certain tricks like inserting special symbols but none is even close to making the whole thing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Functional Requirements&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The functional requirements in brief can be as follows:&lt;br /&gt;
&lt;br /&gt;
* The plug-in must adjust text formatting according to typography rules of supported languages.&lt;br /&gt;
* The plug-in must work really fast. Probably, regular expressions would work too slowly since there are pretty many typography rules and it would be necessary to create some lexical analyzer working without regular expressions.&lt;br /&gt;
* The plug-in must be scalable so that it must be relatively easy to add new rules for all or only for certain languages. Of course it’s not supposed to be done by end users but still it must be clear and not too complicated for programmers.&lt;br /&gt;
&lt;br /&gt;
Open Issues:&lt;br /&gt;
&lt;br /&gt;
* The plug-in might need cache functionality to speed up front-end pages displaying.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Related Links&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Typography en.wikipedia.org/wiki/Typography]&lt;br /&gt;
* [http://everything2.com/title/rules%20of%20typography Rules of Typography]&lt;br /&gt;
* [http://webtypography.net/toc/ The Elements of Typographic Style Applied to the Web]&lt;br /&gt;
* [http://www.languagegeek.com/typography/apostrophes.html Apostrophes in Native Languages]&lt;br /&gt;
* [http://www.wpdfd.com/issues/23/typography/ Typography]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Andrey Mishenin&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; PHP, OOP, Joomla! CMS Framework, experience with lexical analyzers coding would greatly help&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Page Title Tags Enhancement=====&lt;br /&gt;
Enhance title tags management in Joomla! for SEO purposes. This is first of all related to the content component that doesn’t handle titles perfectly at this time. &lt;br /&gt;
&lt;br /&gt;
The idea is to allow forming titles basing on the following:&lt;br /&gt;
&lt;br /&gt;
* Website name (optional)&lt;br /&gt;
* Current section and/or current category name (optional)&lt;br /&gt;
* Keywords for current section and/or current category (optional)&lt;br /&gt;
* Current article title&lt;br /&gt;
&lt;br /&gt;
There should be ability to choose a separating symbol: “/”, “⎯”, etc. and the above mentioned items order in the title tag.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Andrey Mishenin&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; PHP, OOP, MySQL, Joomla! CMS Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Relatively easy&lt;br /&gt;
&lt;br /&gt;
=====Joomla Multisites=====&lt;br /&gt;
&lt;br /&gt;
Recently, i needed develop one Joomla portal where users could create own sites easy and fastly.&lt;br /&gt;
For it, i build one small Multisite Master Component that do database reply, create link to Joomla slave directory and more.&lt;br /&gt;
I have table as:&lt;br /&gt;
* Title -&amp;gt; site 1&lt;br /&gt;
* Description -&amp;gt; Description of my site...&lt;br /&gt;
* User_id -&amp;gt; 67&lt;br /&gt;
* Url -&amp;gt; http://tom.yoursite.com&lt;br /&gt;
* Db_name -&amp;gt; slavesite_tom&lt;br /&gt;
* Db_user -&amp;gt; tom_userdb&lt;br /&gt;
* Db_pass -&amp;gt; mypass&lt;br /&gt;
* Pack_id -&amp;gt;12 (This indicates what slave directory and SQL for copy, i have other table with information for it).&lt;br /&gt;
* etc&lt;br /&gt;
&lt;br /&gt;
In Joomla slave configuration.php I have implemented contructor function, where I load Master DB information, and I do comparation URL with it. After, i initialize JConfig fields with it (title = title of site, description = metadata, etc...)&lt;br /&gt;
&lt;br /&gt;
So, i had good multisites system.&lt;br /&gt;
&lt;br /&gt;
But i think that could to be better:&lt;br /&gt;
* Write new code for Master Component and configuration.php slave sites. (in my old version, i have one include to external php file in constructor, this php file rewrite JConfig variables)&lt;br /&gt;
* Creation slave site using only PHP (in my old system, using sh file, dont window server soport).&lt;br /&gt;
* Posible Front-Site component for user creator, that let you change template and other minors admin features.&lt;br /&gt;
* Soport multiple slaves type sites. Now only: reply DB and same files. We can more options: share users DB, dont share files (real copy of joomla slave directory), etc.&lt;br /&gt;
* And more?&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; none?&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, mySQL, Apache (lighttpd, etc) servers, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium-Hard&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====SEF URLs with Sub-domains=====&lt;br /&gt;
&lt;br /&gt;
SEF URLs in Joomla can be made even more sophisticated by allowing using sub-domains for different components, content sections or categories. For example, forum.mysite.com for a forum component or about.mysite.com for About section of the content component.&lt;br /&gt;
&lt;br /&gt;
Of course it would require the sub-domains to be created on the server and pointed to the same directory as the main domain but it wouldn’t be an issue for most users since it easily can be done through many popular hosting control panels like CPanel.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Andrey Mishenin&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, OOP, MySQL, Joomla! CMS Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;/div&gt;</summary>
		<author><name>Edo888</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived:Summer_of_Code_2009_Project_Ideas&amp;diff=13601</id>
		<title>Archived:Summer of Code 2009 Project Ideas</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived:Summer_of_Code_2009_Project_Ideas&amp;diff=13601"/>
		<updated>2009-03-17T13:12:49Z</updated>

		<summary type="html">&lt;p&gt;Edo888: /* Working copy of Joomla! live site */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gsoc_2009_logo.png|right]]&lt;br /&gt;
&lt;br /&gt;
===Welcome!===&lt;br /&gt;
Welcome to the Joomla! Google Summer of Code (GSoC) 2009 project ideas page. As we move forward with the 2009 version of the Joomla! GSoC, we will use this page to develop possible project ideas. Please note that anyone who is interested can participate in this process. You do not have to be a GSoC student or mentor to suggest possible project ideas. Thanks!&lt;br /&gt;
&lt;br /&gt;
===Ideas===&lt;br /&gt;
&lt;br /&gt;
=====Advanced Poll/Survey Suite=====&lt;br /&gt;
&lt;br /&gt;
The core polls extension has been removed from Joomla! 1.6. Develop a fully featured poll/survey suite that will allow relatively simple user polls and the collection of complex anonymized survey data authenticated against either the Joomla users database or an external database. Possibly look to [http://limesurvey.org/] as a model or integration.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Full Frontend Editing=====&lt;br /&gt;
&lt;br /&gt;
Right now we only have frontend editing for articles, there are a few improvements I can propose&lt;br /&gt;
* Article editing is done in a modal popup&lt;br /&gt;
* Edit module content and params from frontend (Editing done via a modal popup?)&lt;br /&gt;
* Article Title - edit in place&lt;br /&gt;
* Create some kind of a library function which allows easy frontend editing for any value (This will need some thought)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; Javascript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Template Manager Improvements/Advanced Template Manager=====&lt;br /&gt;
&lt;br /&gt;
Extend the template manager so that it providers an better environment for template creation and modification.  Improvements might include: &lt;br /&gt;
*expanded tool bar, including copy for a complete template&lt;br /&gt;
*access to the media manager&lt;br /&gt;
*access to all template files (not just css and index.php)&lt;br /&gt;
*override manager&lt;br /&gt;
*integration of an editor with code highlighting (such as codepress)&lt;br /&gt;
*support for template parameter groups&lt;br /&gt;
*remove hard-wired references to template name from the core templates (so the new copy function will work as expected)&lt;br /&gt;
*&amp;quot;export&amp;quot; button on the toolbar which will create a zip package file containing the template (also fixes any errors in the templateDetails.xml file as it goes).&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Work Flow Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 Extension to flexibly manage workflow for com_content. &lt;br /&gt;
Ideally it should be extensible to other components, but com_content should be used as the proof of concept.&lt;br /&gt;
Work flow should manage the publication process, including assignment of editors or publishers to specific content items, notifications of relevant actions to specific individuals or groups, change of status to block author editing of published work.&lt;br /&gt;
&lt;br /&gt;
As much as possible administrators should be able to construct their own work flows.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Page Versioning Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 content versioning extension with the goal that this work could be integrated into the core Joomla CMS for future releases.&lt;br /&gt;
The Page Versioning Extension will allow the ability for frontend and backend content users to be able to save and re-publish/revert previously saved versions of content items that they have access to.&lt;br /&gt;
&lt;br /&gt;
Further user permissions could be introduced in order to restrict access to this overall feature.&lt;br /&gt;
&lt;br /&gt;
Features could include a visual and html code difference between the current and previously saved versions, as well as general searching data such as dates and time of previous saved entries of that content.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Taxonomy Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 Taxonomy extension with the goal that this work could be integrated into the core Joomla CMS for future releases.&lt;br /&gt;
The Taxonomy Extension will allow the ability to organise content for classification, improving on the current Section and Categories classification.&lt;br /&gt;
&lt;br /&gt;
Taxonomy is a vital feature of modern CMS solutions, evolving from the previous &amp;quot;pigeonholeing&amp;quot; of a content item. &lt;br /&gt;
Full organisational structures and multi tagging of content could be included, including powerful search functions of content under  those classifications.&lt;br /&gt;
&lt;br /&gt;
Taxonomy is a missing feature in Joomla!, which another open-source competitor product currently offers. We have seen a number of opportunities when Joomla! misses out on being the chosen option for a CMS due to the lacking of this feature.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Keywords Management Extension=====&lt;br /&gt;
Keywords in articles are an important part of many Joomla! sites. They are used for page rankings but also can be used with Related Articles modules and component extensions. In this capacity, they provide a way to relate articles that is much more flexible and free-form than the built-in Section / Category / Article hierarchy.&lt;br /&gt;
&lt;br /&gt;
Currently in Joomla!, keywords are entered when editing each individual article. This has several disadvantages, including:&lt;br /&gt;
* You cannot see already existing keywords when entering in keywords for an article.&lt;br /&gt;
* You cannot see existing articles that are already associated with a keyword.&lt;br /&gt;
* It is difficult to be consistent when using keywords. For example, should it be capitalized, singular or plural (&amp;quot;Dog&amp;quot; or &amp;quot;Dogs&amp;quot;), and so on.&lt;br /&gt;
&lt;br /&gt;
To deal with these issues, a back-end Keyword Management extension is proposed. This extension would allow the following capabilities:&lt;br /&gt;
* A management screen showing a list of all keywords currently in use. This would provide the ability to drill into any keyword and see all articles that use this keyword.&lt;br /&gt;
* A keyword picker screen. This would allow an author to pick keywords for an article from a list of existing keywords. This would make it easier to ensure consistency in spelling, capitalization, and usage between keywords. This screen would also allow the author to add a new keyword to the list.&lt;br /&gt;
* The ability to do global search and replace on keywords.&lt;br /&gt;
* The ability to see keywords ranked by frequency of use.&lt;br /&gt;
* The ability to list articles to which no keywords have been assigned.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====User-Defined List and Blog Layout Extension=====&lt;br /&gt;
Currently in Joomla!, there are built-in Menu Items for list and blog layouts for Sections and Categories. However, the way a list of articles is selected is tightly bound with the way the list is displayed on the page. In theory, you should be able to have a list or blog layout that shows any selection of articles.&lt;br /&gt;
&lt;br /&gt;
To provide this capability, an extension is proposed that would provide layouts similar to the current list and blog layouts. However, the extension would be designed so that the list of articles is provided by a plugin instead of being integrated into the layout. Example plugins could be provided to mimic the current Section, Article, and Front Page layouts. However, the power of this extension is that the user could add their own plugin that would provide a list of articles using any type of query. This list of articles would then feed into the built-in layouts provided by the extension to turn the raw article list into the desired layout.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Ian MacLennan(subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Improve Unit Test Coverage=====&lt;br /&gt;
Work has been started on this but the number of unit tests currently in use is small. We need to add many more unit tests. Also, currently unit tests are only able to be used for class methods. We have no way, for example, to test page layouts or module insertion into templates. Part of this project could be to research automated testing solutions to test the complete HTML code sent to the browser. This would allow end-to-end automated testing.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Alan Langford (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, PHPUnit, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Web Based Unit Test Runner=====&lt;br /&gt;
Write a test runner that makes it easy to run unit tests from a web browser. The existing unit test framework is based on running PHP from the command line. While this is essential for integrating testing into the build and release process, it&#039;s a barrier to using tests during development.&lt;br /&gt;
&lt;br /&gt;
This project involves adapting web-based test runners provided by PHPUnit to support the &amp;quot;Joomla!&amp;quot; testing environment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Alan Langford (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, PHPUnit, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====CiviCRM Integration: Plugins to Expose the Civicrm API to the  Joomla! Front End=====&lt;br /&gt;
CiviCRM [1] is a powerful constituent relationship management system designed for the not for profit/nongovernmental organizations. It currently integrates with Joomla! and the 2.2 version is native to Joomla! 1.5.&lt;br /&gt;
&lt;br /&gt;
CiviCRM has a rich API only small parts of which are currently easily accessible from the Joomla! front end. Create a series of plugins that allows the flexible and highly integrated use of the CiviCRM API in Joomla Content, modules, and other core and non cor extensions (such as com_user, com_contact_diretory or calendaring components).&lt;br /&gt;
&lt;br /&gt;
For this project the student should plan on interacting closely with both the Joomla! and CiviCRM teams.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Elin Waring (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Civicrm Integration: Develop Front End Extensions for CiviCRM Data=====&lt;br /&gt;
Develop a suite of front end Joomla! 1.5 extensions (modules, plugins and a Joomla! style MVC frontend component for CiviCRM.&lt;br /&gt;
&lt;br /&gt;
[Civicrm : http://civicrm.org] is a powerful constituent relationship management system designed for the not for profit/nongovernmental organizations. It currently integrates with Joomla! 1.0.x and 1.5 in legacy mode, and  and the 2.1 version will be native to Joomla! 1.5.&lt;br /&gt;
&lt;br /&gt;
Thus far most functionality for civicrm in Joomla! has focused on the administrator. This project will focus on fuller development of the CiviCRM Joomla! Front end.&lt;br /&gt;
&lt;br /&gt;
This development might include modules, plugins, and a MVC front end component which will allow exposure of various CiviCRM APIs as well as allowing Joomla! users the ability to use template over rides and other ways of controlling design and functionality in ways they are familiar with. &lt;br /&gt;
&lt;br /&gt;
The core of this project will be the completion of a Joomla! MVC front end component for existing front end functionality, the basic skeleton for which has been incorporated in CiviCRM 2.2.&lt;br /&gt;
&lt;br /&gt;
Additional items might focus on modules and views to display information.&lt;br /&gt;
&lt;br /&gt;
Some of these will focus on the display of and interaction with general information, for example:&lt;br /&gt;
* a module showing a list of upcoming events&lt;br /&gt;
* a module showing progress on a fund raising thermometer&lt;br /&gt;
* a module displaying the most recent donations, donations at certain levels, total donations or other information&lt;br /&gt;
* a module containing a contribution button linked to a specific contribution page&lt;br /&gt;
* a donation reporting view with a layout that displays lists of donors in a given time period, sorted by giving level.&lt;br /&gt;
&lt;br /&gt;
Some will focus on the display of user level information such as:&lt;br /&gt;
* a module displaying an individual&#039;s information from a given profile with the option to update.&lt;br /&gt;
* a module displaying an individual&#039;s summary giving information. &lt;br /&gt;
* a module displaying events an individual is registered for&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Elin Waring (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Civicrm Integration: Development of Multilingual Functionality =====&lt;br /&gt;
&lt;br /&gt;
CiviCRM is an open source constituent relationship management system used by NGOs and advocacy groups (like Amnesty International, Wikimedia Foundation or the Joomla! and Drupal projects) all over the world. Judging by the number of community-contributed and -maintained translations and civicrm.org statistics, CiviCRM installations exist in over twenty languages using various alphabets (Latin, Cyrillic, Arabic, Devanagari, Chinese). Multi-language support is essential in multilingual countries (like Canada or India), as well as in cross-border (e.g., Central and East European) and worldwide organizations.&lt;br /&gt;
&lt;br /&gt;
For this project the student will extend the multilingual features of CiviCRM.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Elin Waring (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Improved Error Handling=====&lt;br /&gt;
Create a component that will handle standard errors (ex. 404) so that headers are sent for the error code, but the error is trapped and redirected from the error.php file back to Joomla! &lt;br /&gt;
where it can be handled on a normal webpage.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Media Manager Improvements=====&lt;br /&gt;
The following improvements could be made to the current Joomla! Media Manager:&lt;br /&gt;
* Support content expiration (image/video) that allow user to set start – end date of each content which to be lived on site&lt;br /&gt;
**e.g. food image can be lived on site only 3 months, due to the license issue, so we need to take out the image and replace it with other default image or leave it blank&lt;br /&gt;
* Support user friendly input interface which allow user to complete content input in 1 screen (Text input, Multiple images/videos upload, Tagging, Mapping related content and so on)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Whiteboard/Wiki Component=====&lt;br /&gt;
Joomla comes with a few core components, and a Whiteboard/Wiki component would be a great addition to those.  It would be a basic implementation of the feature with the following possible features:&lt;br /&gt;
&lt;br /&gt;
* Provide a simple interface for editing (perhaps allowing multiple users to edit at once or locking down while under edit)&lt;br /&gt;
* Ability to restrict user access on posting&lt;br /&gt;
* Organize whiteboards&lt;br /&gt;
* Keep revisions in archive&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Ashwin Date (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Core Extensions Semantic and SEO Updates=====&lt;br /&gt;
The core extensions can be modified to produce semantic markup.  The tables should be replaced withmore appropriate containers for the contents.  This would not replace the need for template overrides, but rather make the default output stronger to build upon.  The output should also be arranged to best suit the content in the majority of situations.  Perhaps also a basic system reset CSS file would need to be developed to set some of the basic layout items, also to be easily disabled.&lt;br /&gt;
&lt;br /&gt;
The core output cannot be replaced completely without causing many 1.5 templates to break.  Therefore it would be necessary to&lt;br /&gt;
either have a legacy mode for templates or to automatically detect the template type (1.5 or 1.6) in order to provide the right output. &lt;br /&gt;
&lt;br /&gt;
Modules can be defined in a template to have pretty much any name they wish.  While this is great for template makers, it would be good to have at least some guidelines about naming modules.  Module names like user1 and user2 are essentially useless semantically, and to administrators of a site.  Some templates are designed for any module to fit in any position, but in general there are at least a handful that are designed with the menu, footer, and other aspects in mind.  Perhaps Joomla can create some guidelines (not requirements) related to this.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Templates for Joomla 1.6=====&lt;br /&gt;
Each version of Joomla comes with a set of templates, and they are updated with each major release.  1.6 is currently in development, and will need a new set of templates.  These templates should:&lt;br /&gt;
&lt;br /&gt;
* Employ semantic markup&lt;br /&gt;
* Provide a fresh look&lt;br /&gt;
* Be flexible to accommodate all kinds of content&lt;br /&gt;
* Come with example core overrides, perhaps for major extensions as well&lt;br /&gt;
* Should have a light memory print&lt;br /&gt;
* Comply with accessibility standards&lt;br /&gt;
* Validate&lt;br /&gt;
* Be easily modified and built upon&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, HTML, CSS, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Administrator and Usability Improvements=====&lt;br /&gt;
There are many little improvements that would help with general usability and administration for Joomla users. &lt;br /&gt;
&lt;br /&gt;
* Assigning modules in the Menu Manager&lt;br /&gt;
* Assigning links from Article Manager&lt;br /&gt;
* Copying templates&lt;br /&gt;
* Easily change Control Panel icons&lt;br /&gt;
* Improved Front Page article handling&lt;br /&gt;
* Improve internal mailing system and its notifications&lt;br /&gt;
* Make Control Panel in the menu a one click step, not hover then select&lt;br /&gt;
* Have the main tabs linked in case they are clicked, such as Content goes to Articles&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Content Item Templates=====&lt;br /&gt;
&lt;br /&gt;
Easy page layout template system so that editors can choose from a pre-defined range of layouts.&lt;br /&gt;
This could be useful when certain pages all require the Name, Date, Author name, photo in a certain area, tagline etc.&lt;br /&gt;
Content item templates could be defined, then saved and authors could then choose from this list, helping sites with larger article content to retain continuity throughout their areas of pages.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====XML DTDs and XML Schemas for all XML files used in Joomla=====&lt;br /&gt;
&lt;br /&gt;
XML files are used in various places throughout Joomla.  Historically, the installer XML files have had DTDs against which they can be validated.  However, there are a number of known issues with these DTDs and there are other XML files used in Joomla that have never had DTDs written at all.  Furthermore, DTDs can only catch certain classes of errors within XML files and we need to look beyond DTDs to look at XML Schemas to catch other classes of errors.&lt;br /&gt;
&lt;br /&gt;
* Review all XML files used in Joomla and list them on the documentation wiki.&lt;br /&gt;
* Create a collection of test cases of XML files that will fail in Joomla and which should, therefore, fail to validate in some way.&lt;br /&gt;
* Where DTDs already exist, review, revise and update them as necessary.&lt;br /&gt;
* Create DTDs for those XML files that don&#039;t currently have one.&lt;br /&gt;
* Create patches for the core code (target 1.6?) to ensure that valid DTDs can be written for all XML files.&lt;br /&gt;
* All current DTDs force some XML elements to appear in a particular order which is neither enforced nor required by Joomla.  If possible, solve this problem so that designers and developers can place those elements in arbitrary order in the XML and still have the XML files validate against the DTDs.&lt;br /&gt;
* Create XML Schemas for all XML files used in Joomla.&lt;br /&gt;
* Ensure that DTDs and XML Schemas are well commented and/or thoroughly documented.&lt;br /&gt;
* Write comprehensive documentation covering the process of validating an XML file against both DTDs and XML Schemas.  Some documentation already exists that can be used as the basis for this.&lt;br /&gt;
* Expand the collection of test cases to include XML files that will not fail in Joomla but which may or may not fail to validate against the DTDs or XML Schemas.&lt;br /&gt;
* Ensure that the test case collection is properly documented so that changes to Joomla and/or the DTDs and XML Schemas can be properly tested.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Chris Davenport (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, XML / DTD validation&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Alternate Component for Editing Articles=====&lt;br /&gt;
The idea is to have an component on admin side that allows articles to be edited based on the frontend navigation, Something similar to [http://thewebkitchen.co.uk/typo3temp/pics/a367ba3c04.jpg Typo3 admin]implementation (just 2 and 3 in the image).&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Amit Kumar Singh (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Magento eCommerce Platform integration into Joomla!=====&lt;br /&gt;
Magento is an actively developing award winning open source eCommerce platform. The idea is to develop a bridge between Magento and Joomla.&lt;br /&gt;
More info about Magento can be found from the following websites:&lt;br /&gt;
[http://www.magentocommerce.com/ Magento official website]&lt;br /&gt;
[http://demo.magentocommerce.com/ Magento online demo]&lt;br /&gt;
[http://www.magentocommerce.com/media/tour/magento-tour-store/view Store tour video]&lt;br /&gt;
[http://www.magentocommerce.com/media/tour/magento-tour-admin/view Admin tour video]&lt;br /&gt;
[http://www.infoworld.com/slideshow/2008/08/168-best_of_open_so-8.html Best of Open Source Enterprise Applications]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Not assigned yet&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Xinha WYSIWYG editor for Joomla! frontend and backend editing=====&lt;br /&gt;
Xinha is a powerful WYSIWYG editor, which supports plugins. So administrator can customize their working environment and even write their own plugins.&lt;br /&gt;
The idea is to integrate Xinha into Joomla! with ability of editing content from frontend and backend. The editor environment must be configurable, output&lt;br /&gt;
HTML code must be W3C compliant, for that we will need also to implement [http://htmlpurifier.org/ HTMLPurifier] plugin into Xinha.&lt;br /&gt;
&lt;br /&gt;
You can try [http://edo.webmaster.am/projects Xinha editor plugin demo] for Joomla! 1.5.&lt;br /&gt;
More info about Xinha can be found from the following websites:&lt;br /&gt;
[http://xinha.webfactional.com/ Xinha official website]&lt;br /&gt;
[http://xinha.raimundmeyer.de/x_examples/ext_example.html Xinha demo]&lt;br /&gt;
[http://xinha.webfactional.com/wiki/Plugins Currently available Xinha plugins]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Not assigned yet&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Working copy of Joomla! live site=====&lt;br /&gt;
Usually administrators are working on their live site directly and sometimes they do mistakes as all people do. Usually the live site get&#039;s messed after extension installation/uninstallation process and re-configuration. The idea is to have a working copy of the live site and make changes to it, then if everything is okay after some testing, you can approve changes and the tool will synchronize changes to your live site.&lt;br /&gt;
&lt;br /&gt;
Some of the steps, which will need to be done to complete this project:&lt;br /&gt;
* Develop a tool, which will create a working copy of the site&lt;br /&gt;
* Develop a tool, which will synchronize working copy with the live website&lt;br /&gt;
* Develop a diff tool, which will show not approved changes&lt;br /&gt;
* Interface in working copy to view not approved changes with possibility to reject or approve specified changes&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Not assigned yet&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Elgg Platform integration into Joomla!=====&lt;br /&gt;
Elgg was providing an elegant and powerful solution for anyone who wants to create their own online community. Elgg is free and open source and powers all kinds of social networks - from education and business to martial arts and rugby. If you are looking for a professional social intranet or just want to run a site for your fishing club, Elgg is a great choice. The idea is to develop a bridge between elgg and Joomla.&lt;br /&gt;
More info about elgg can be found from the following websites:&lt;br /&gt;
[http://www.elgg.org/ elgg official website]&lt;br /&gt;
[http://community.elgg.org/ elgg community online ]&lt;br /&gt;
[http://docs.elgg.org/wiki/Main_Page  elgg Documentation]&lt;br /&gt;
&lt;br /&gt;
Some of the steps, which will need to be done to complete this project:&lt;br /&gt;
* synchronize user between elgg and Joomla!&lt;br /&gt;
* develop module for Joomla! to show Users Activity &lt;br /&gt;
* develop module for Joomla! to show Members photo from Elgg&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Pisan Chueachatchai, Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;/div&gt;</summary>
		<author><name>Edo888</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived:Summer_of_Code_2009_Project_Ideas&amp;diff=13600</id>
		<title>Archived:Summer of Code 2009 Project Ideas</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived:Summer_of_Code_2009_Project_Ideas&amp;diff=13600"/>
		<updated>2009-03-17T12:56:54Z</updated>

		<summary type="html">&lt;p&gt;Edo888: /* Xinha WYSIWYG editor for Joomla! frontend and backend editing */  Strict output with HTMLPurifier&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gsoc_2009_logo.png|right]]&lt;br /&gt;
&lt;br /&gt;
===Welcome!===&lt;br /&gt;
Welcome to the Joomla! Google Summer of Code (GSoC) 2009 project ideas page. As we move forward with the 2009 version of the Joomla! GSoC, we will use this page to develop possible project ideas. Please note that anyone who is interested can participate in this process. You do not have to be a GSoC student or mentor to suggest possible project ideas. Thanks!&lt;br /&gt;
&lt;br /&gt;
===Ideas===&lt;br /&gt;
&lt;br /&gt;
=====Advanced Poll/Survey Suite=====&lt;br /&gt;
&lt;br /&gt;
The core polls extension has been removed from Joomla! 1.6. Develop a fully featured poll/survey suite that will allow relatively simple user polls and the collection of complex anonymized survey data authenticated against either the Joomla users database or an external database. Possibly look to [http://limesurvey.org/] as a model or integration.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Full Frontend Editing=====&lt;br /&gt;
&lt;br /&gt;
Right now we only have frontend editing for articles, there are a few improvements I can propose&lt;br /&gt;
* Article editing is done in a modal popup&lt;br /&gt;
* Edit module content and params from frontend (Editing done via a modal popup?)&lt;br /&gt;
* Article Title - edit in place&lt;br /&gt;
* Create some kind of a library function which allows easy frontend editing for any value (This will need some thought)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; Javascript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Template Manager Improvements/Advanced Template Manager=====&lt;br /&gt;
&lt;br /&gt;
Extend the template manager so that it providers an better environment for template creation and modification.  Improvements might include: &lt;br /&gt;
*expanded tool bar, including copy for a complete template&lt;br /&gt;
*access to the media manager&lt;br /&gt;
*access to all template files (not just css and index.php)&lt;br /&gt;
*override manager&lt;br /&gt;
*integration of an editor with code highlighting (such as codepress)&lt;br /&gt;
*support for template parameter groups&lt;br /&gt;
*remove hard-wired references to template name from the core templates (so the new copy function will work as expected)&lt;br /&gt;
*&amp;quot;export&amp;quot; button on the toolbar which will create a zip package file containing the template (also fixes any errors in the templateDetails.xml file as it goes).&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Work Flow Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 Extension to flexibly manage workflow for com_content. &lt;br /&gt;
Ideally it should be extensible to other components, but com_content should be used as the proof of concept.&lt;br /&gt;
Work flow should manage the publication process, including assignment of editors or publishers to specific content items, notifications of relevant actions to specific individuals or groups, change of status to block author editing of published work.&lt;br /&gt;
&lt;br /&gt;
As much as possible administrators should be able to construct their own work flows.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Page Versioning Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 content versioning extension with the goal that this work could be integrated into the core Joomla CMS for future releases.&lt;br /&gt;
The Page Versioning Extension will allow the ability for frontend and backend content users to be able to save and re-publish/revert previously saved versions of content items that they have access to.&lt;br /&gt;
&lt;br /&gt;
Further user permissions could be introduced in order to restrict access to this overall feature.&lt;br /&gt;
&lt;br /&gt;
Features could include a visual and html code difference between the current and previously saved versions, as well as general searching data such as dates and time of previous saved entries of that content.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Taxonomy Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 Taxonomy extension with the goal that this work could be integrated into the core Joomla CMS for future releases.&lt;br /&gt;
The Taxonomy Extension will allow the ability to organise content for classification, improving on the current Section and Categories classification.&lt;br /&gt;
&lt;br /&gt;
Taxonomy is a vital feature of modern CMS solutions, evolving from the previous &amp;quot;pigeonholeing&amp;quot; of a content item. &lt;br /&gt;
Full organisational structures and multi tagging of content could be included, including powerful search functions of content under  those classifications.&lt;br /&gt;
&lt;br /&gt;
Taxonomy is a missing feature in Joomla!, which another open-source competitor product currently offers. We have seen a number of opportunities when Joomla! misses out on being the chosen option for a CMS due to the lacking of this feature.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Keywords Management Extension=====&lt;br /&gt;
Keywords in articles are an important part of many Joomla! sites. They are used for page rankings but also can be used with Related Articles modules and component extensions. In this capacity, they provide a way to relate articles that is much more flexible and free-form than the built-in Section / Category / Article hierarchy.&lt;br /&gt;
&lt;br /&gt;
Currently in Joomla!, keywords are entered when editing each individual article. This has several disadvantages, including:&lt;br /&gt;
* You cannot see already existing keywords when entering in keywords for an article.&lt;br /&gt;
* You cannot see existing articles that are already associated with a keyword.&lt;br /&gt;
* It is difficult to be consistent when using keywords. For example, should it be capitalized, singular or plural (&amp;quot;Dog&amp;quot; or &amp;quot;Dogs&amp;quot;), and so on.&lt;br /&gt;
&lt;br /&gt;
To deal with these issues, a back-end Keyword Management extension is proposed. This extension would allow the following capabilities:&lt;br /&gt;
* A management screen showing a list of all keywords currently in use. This would provide the ability to drill into any keyword and see all articles that use this keyword.&lt;br /&gt;
* A keyword picker screen. This would allow an author to pick keywords for an article from a list of existing keywords. This would make it easier to ensure consistency in spelling, capitalization, and usage between keywords. This screen would also allow the author to add a new keyword to the list.&lt;br /&gt;
* The ability to do global search and replace on keywords.&lt;br /&gt;
* The ability to see keywords ranked by frequency of use.&lt;br /&gt;
* The ability to list articles to which no keywords have been assigned.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====User-Defined List and Blog Layout Extension=====&lt;br /&gt;
Currently in Joomla!, there are built-in Menu Items for list and blog layouts for Sections and Categories. However, the way a list of articles is selected is tightly bound with the way the list is displayed on the page. In theory, you should be able to have a list or blog layout that shows any selection of articles.&lt;br /&gt;
&lt;br /&gt;
To provide this capability, an extension is proposed that would provide layouts similar to the current list and blog layouts. However, the extension would be designed so that the list of articles is provided by a plugin instead of being integrated into the layout. Example plugins could be provided to mimic the current Section, Article, and Front Page layouts. However, the power of this extension is that the user could add their own plugin that would provide a list of articles using any type of query. This list of articles would then feed into the built-in layouts provided by the extension to turn the raw article list into the desired layout.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Ian MacLennan(subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Improve Unit Test Coverage=====&lt;br /&gt;
Work has been started on this but the number of unit tests currently in use is small. We need to add many more unit tests. Also, currently unit tests are only able to be used for class methods. We have no way, for example, to test page layouts or module insertion into templates. Part of this project could be to research automated testing solutions to test the complete HTML code sent to the browser. This would allow end-to-end automated testing.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Alan Langford (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, PHPUnit, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Web Based Unit Test Runner=====&lt;br /&gt;
Write a test runner that makes it easy to run unit tests from a web browser. The existing unit test framework is based on running PHP from the command line. While this is essential for integrating testing into the build and release process, it&#039;s a barrier to using tests during development.&lt;br /&gt;
&lt;br /&gt;
This project involves adapting web-based test runners provided by PHPUnit to support the &amp;quot;Joomla!&amp;quot; testing environment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Alan Langford (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, PHPUnit, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====CiviCRM Integration: Plugins to Expose the Civicrm API to the  Joomla! Front End=====&lt;br /&gt;
CiviCRM [1] is a powerful constituent relationship management system designed for the not for profit/nongovernmental organizations. It currently integrates with Joomla! and the 2.2 version is native to Joomla! 1.5.&lt;br /&gt;
&lt;br /&gt;
CiviCRM has a rich API only small parts of which are currently easily accessible from the Joomla! front end. Create a series of plugins that allows the flexible and highly integrated use of the CiviCRM API in Joomla Content, modules, and other core and non cor extensions (such as com_user, com_contact_diretory or calendaring components).&lt;br /&gt;
&lt;br /&gt;
For this project the student should plan on interacting closely with both the Joomla! and CiviCRM teams.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Elin Waring (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Civicrm Integration: Develop Front End Extensions for CiviCRM Data=====&lt;br /&gt;
Develop a suite of front end Joomla! 1.5 extensions (modules, plugins and a Joomla! style MVC frontend component for CiviCRM.&lt;br /&gt;
&lt;br /&gt;
[Civicrm : http://civicrm.org] is a powerful constituent relationship management system designed for the not for profit/nongovernmental organizations. It currently integrates with Joomla! 1.0.x and 1.5 in legacy mode, and  and the 2.1 version will be native to Joomla! 1.5.&lt;br /&gt;
&lt;br /&gt;
Thus far most functionality for civicrm in Joomla! has focused on the administrator. This project will focus on fuller development of the CiviCRM Joomla! Front end.&lt;br /&gt;
&lt;br /&gt;
This development might include modules, plugins, and a MVC front end component which will allow exposure of various CiviCRM APIs as well as allowing Joomla! users the ability to use template over rides and other ways of controlling design and functionality in ways they are familiar with. &lt;br /&gt;
&lt;br /&gt;
The core of this project will be the completion of a Joomla! MVC front end component for existing front end functionality, the basic skeleton for which has been incorporated in CiviCRM 2.2.&lt;br /&gt;
&lt;br /&gt;
Additional items might focus on modules and views to display information.&lt;br /&gt;
&lt;br /&gt;
Some of these will focus on the display of and interaction with general information, for example:&lt;br /&gt;
* a module showing a list of upcoming events&lt;br /&gt;
* a module showing progress on a fund raising thermometer&lt;br /&gt;
* a module displaying the most recent donations, donations at certain levels, total donations or other information&lt;br /&gt;
* a module containing a contribution button linked to a specific contribution page&lt;br /&gt;
* a donation reporting view with a layout that displays lists of donors in a given time period, sorted by giving level.&lt;br /&gt;
&lt;br /&gt;
Some will focus on the display of user level information such as:&lt;br /&gt;
* a module displaying an individual&#039;s information from a given profile with the option to update.&lt;br /&gt;
* a module displaying an individual&#039;s summary giving information. &lt;br /&gt;
* a module displaying events an individual is registered for&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Elin Waring (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Civicrm Integration: Development of Multilingual Functionality =====&lt;br /&gt;
&lt;br /&gt;
CiviCRM is an open source constituent relationship management system used by NGOs and advocacy groups (like Amnesty International, Wikimedia Foundation or the Joomla! and Drupal projects) all over the world. Judging by the number of community-contributed and -maintained translations and civicrm.org statistics, CiviCRM installations exist in over twenty languages using various alphabets (Latin, Cyrillic, Arabic, Devanagari, Chinese). Multi-language support is essential in multilingual countries (like Canada or India), as well as in cross-border (e.g., Central and East European) and worldwide organizations.&lt;br /&gt;
&lt;br /&gt;
For this project the student will extend the multilingual features of CiviCRM.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Elin Waring (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Improved Error Handling=====&lt;br /&gt;
Create a component that will handle standard errors (ex. 404) so that headers are sent for the error code, but the error is trapped and redirected from the error.php file back to Joomla! &lt;br /&gt;
where it can be handled on a normal webpage.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Media Manager Improvements=====&lt;br /&gt;
The following improvements could be made to the current Joomla! Media Manager:&lt;br /&gt;
* Support content expiration (image/video) that allow user to set start – end date of each content which to be lived on site&lt;br /&gt;
**e.g. food image can be lived on site only 3 months, due to the license issue, so we need to take out the image and replace it with other default image or leave it blank&lt;br /&gt;
* Support user friendly input interface which allow user to complete content input in 1 screen (Text input, Multiple images/videos upload, Tagging, Mapping related content and so on)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Whiteboard/Wiki Component=====&lt;br /&gt;
Joomla comes with a few core components, and a Whiteboard/Wiki component would be a great addition to those.  It would be a basic implementation of the feature with the following possible features:&lt;br /&gt;
&lt;br /&gt;
* Provide a simple interface for editing (perhaps allowing multiple users to edit at once or locking down while under edit)&lt;br /&gt;
* Ability to restrict user access on posting&lt;br /&gt;
* Organize whiteboards&lt;br /&gt;
* Keep revisions in archive&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Ashwin Date (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Core Extensions Semantic and SEO Updates=====&lt;br /&gt;
The core extensions can be modified to produce semantic markup.  The tables should be replaced withmore appropriate containers for the contents.  This would not replace the need for template overrides, but rather make the default output stronger to build upon.  The output should also be arranged to best suit the content in the majority of situations.  Perhaps also a basic system reset CSS file would need to be developed to set some of the basic layout items, also to be easily disabled.&lt;br /&gt;
&lt;br /&gt;
The core output cannot be replaced completely without causing many 1.5 templates to break.  Therefore it would be necessary to&lt;br /&gt;
either have a legacy mode for templates or to automatically detect the template type (1.5 or 1.6) in order to provide the right output. &lt;br /&gt;
&lt;br /&gt;
Modules can be defined in a template to have pretty much any name they wish.  While this is great for template makers, it would be good to have at least some guidelines about naming modules.  Module names like user1 and user2 are essentially useless semantically, and to administrators of a site.  Some templates are designed for any module to fit in any position, but in general there are at least a handful that are designed with the menu, footer, and other aspects in mind.  Perhaps Joomla can create some guidelines (not requirements) related to this.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Templates for Joomla 1.6=====&lt;br /&gt;
Each version of Joomla comes with a set of templates, and they are updated with each major release.  1.6 is currently in development, and will need a new set of templates.  These templates should:&lt;br /&gt;
&lt;br /&gt;
* Employ semantic markup&lt;br /&gt;
* Provide a fresh look&lt;br /&gt;
* Be flexible to accommodate all kinds of content&lt;br /&gt;
* Come with example core overrides, perhaps for major extensions as well&lt;br /&gt;
* Should have a light memory print&lt;br /&gt;
* Comply with accessibility standards&lt;br /&gt;
* Validate&lt;br /&gt;
* Be easily modified and built upon&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, HTML, CSS, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Administrator and Usability Improvements=====&lt;br /&gt;
There are many little improvements that would help with general usability and administration for Joomla users. &lt;br /&gt;
&lt;br /&gt;
* Assigning modules in the Menu Manager&lt;br /&gt;
* Assigning links from Article Manager&lt;br /&gt;
* Copying templates&lt;br /&gt;
* Easily change Control Panel icons&lt;br /&gt;
* Improved Front Page article handling&lt;br /&gt;
* Improve internal mailing system and its notifications&lt;br /&gt;
* Make Control Panel in the menu a one click step, not hover then select&lt;br /&gt;
* Have the main tabs linked in case they are clicked, such as Content goes to Articles&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Content Item Templates=====&lt;br /&gt;
&lt;br /&gt;
Easy page layout template system so that editors can choose from a pre-defined range of layouts.&lt;br /&gt;
This could be useful when certain pages all require the Name, Date, Author name, photo in a certain area, tagline etc.&lt;br /&gt;
Content item templates could be defined, then saved and authors could then choose from this list, helping sites with larger article content to retain continuity throughout their areas of pages.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====XML DTDs and XML Schemas for all XML files used in Joomla=====&lt;br /&gt;
&lt;br /&gt;
XML files are used in various places throughout Joomla.  Historically, the installer XML files have had DTDs against which they can be validated.  However, there are a number of known issues with these DTDs and there are other XML files used in Joomla that have never had DTDs written at all.  Furthermore, DTDs can only catch certain classes of errors within XML files and we need to look beyond DTDs to look at XML Schemas to catch other classes of errors.&lt;br /&gt;
&lt;br /&gt;
* Review all XML files used in Joomla and list them on the documentation wiki.&lt;br /&gt;
* Create a collection of test cases of XML files that will fail in Joomla and which should, therefore, fail to validate in some way.&lt;br /&gt;
* Where DTDs already exist, review, revise and update them as necessary.&lt;br /&gt;
* Create DTDs for those XML files that don&#039;t currently have one.&lt;br /&gt;
* Create patches for the core code (target 1.6?) to ensure that valid DTDs can be written for all XML files.&lt;br /&gt;
* All current DTDs force some XML elements to appear in a particular order which is neither enforced nor required by Joomla.  If possible, solve this problem so that designers and developers can place those elements in arbitrary order in the XML and still have the XML files validate against the DTDs.&lt;br /&gt;
* Create XML Schemas for all XML files used in Joomla.&lt;br /&gt;
* Ensure that DTDs and XML Schemas are well commented and/or thoroughly documented.&lt;br /&gt;
* Write comprehensive documentation covering the process of validating an XML file against both DTDs and XML Schemas.  Some documentation already exists that can be used as the basis for this.&lt;br /&gt;
* Expand the collection of test cases to include XML files that will not fail in Joomla but which may or may not fail to validate against the DTDs or XML Schemas.&lt;br /&gt;
* Ensure that the test case collection is properly documented so that changes to Joomla and/or the DTDs and XML Schemas can be properly tested.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Chris Davenport (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, XML / DTD validation&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Alternate Component for Editing Articles=====&lt;br /&gt;
The idea is to have an component on admin side that allows articles to be edited based on the frontend navigation, Something similar to [http://thewebkitchen.co.uk/typo3temp/pics/a367ba3c04.jpg Typo3 admin]implementation (just 2 and 3 in the image).&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Amit Kumar Singh (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Magento eCommerce Platform integration into Joomla!=====&lt;br /&gt;
Magento is an actively developing award winning open source eCommerce platform. The idea is to develop a bridge between Magento and Joomla.&lt;br /&gt;
More info about Magento can be found from the following websites:&lt;br /&gt;
[http://www.magentocommerce.com/ Magento official website]&lt;br /&gt;
[http://demo.magentocommerce.com/ Magento online demo]&lt;br /&gt;
[http://www.magentocommerce.com/media/tour/magento-tour-store/view Store tour video]&lt;br /&gt;
[http://www.magentocommerce.com/media/tour/magento-tour-admin/view Admin tour video]&lt;br /&gt;
[http://www.infoworld.com/slideshow/2008/08/168-best_of_open_so-8.html Best of Open Source Enterprise Applications]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Not assigned yet&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Xinha WYSIWYG editor for Joomla! frontend and backend editing=====&lt;br /&gt;
Xinha is a powerful WYSIWYG editor, which supports plugins. So administrator can customize their working environment and even write their own plugins.&lt;br /&gt;
The idea is to integrate Xinha into Joomla! with ability of editing content from frontend and backend. The editor environment must be configurable, output&lt;br /&gt;
HTML code must be W3C compliant, for that we will need also to implement [http://htmlpurifier.org/ HTMLPurifier] plugin into Xinha.&lt;br /&gt;
&lt;br /&gt;
You can try [http://edo.webmaster.am/projects Xinha editor plugin demo] for Joomla! 1.5.&lt;br /&gt;
More info about Xinha can be found from the following websites:&lt;br /&gt;
[http://xinha.webfactional.com/ Xinha official website]&lt;br /&gt;
[http://xinha.raimundmeyer.de/x_examples/ext_example.html Xinha demo]&lt;br /&gt;
[http://xinha.webfactional.com/wiki/Plugins Currently available Xinha plugins]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Not assigned yet&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Working copy of Joomla! live site=====&lt;br /&gt;
Usually administrators are working on their live site directly and sometimes they do mistakes as all people do. Usually the live site get&#039;s messed after extension installation/uninstallation process and re-configuration. The idea is to have a working copy of the live site and make changes to it, then if everything is okay after some testing, you can approve changes and the tool will synchronize changes to your live site.&lt;br /&gt;
&lt;br /&gt;
Some of the steps, which will need to be done to complete this project:&lt;br /&gt;
* Develop a tool, which will create the working copy of the site&lt;br /&gt;
* Develop a tool, which will synchronize working copy with live website&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Not assigned yet&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Elgg Platform integration into Joomla!=====&lt;br /&gt;
Elgg was providing an elegant and powerful solution for anyone who wants to create their own online community. Elgg is free and open source and powers all kinds of social networks - from education and business to martial arts and rugby. If you are looking for a professional social intranet or just want to run a site for your fishing club, Elgg is a great choice. The idea is to develop a bridge between elgg and Joomla.&lt;br /&gt;
More info about elgg can be found from the following websites:&lt;br /&gt;
[http://www.elgg.org/ elgg official website]&lt;br /&gt;
[http://community.elgg.org/ elgg community online ]&lt;br /&gt;
[http://docs.elgg.org/wiki/Main_Page  elgg Documentation]&lt;br /&gt;
&lt;br /&gt;
Some of the steps, which will need to be done to complete this project:&lt;br /&gt;
* synchronize user between elgg and Joomla!&lt;br /&gt;
* develop module for Joomla! to show Users Activity &lt;br /&gt;
* develop module for Joomla! to show Members photo from Elgg&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Pisan Chueachatchai, Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;/div&gt;</summary>
		<author><name>Edo888</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived:Summer_of_Code_2009_Project_Ideas&amp;diff=13587</id>
		<title>Archived:Summer of Code 2009 Project Ideas</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived:Summer_of_Code_2009_Project_Ideas&amp;diff=13587"/>
		<updated>2009-03-16T22:35:21Z</updated>

		<summary type="html">&lt;p&gt;Edo888: /* Working copy of Joomla! live site */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gsoc_2009_logo.png|right]]&lt;br /&gt;
&lt;br /&gt;
===Welcome!===&lt;br /&gt;
Welcome to the Joomla! Google Summer of Code (GSoC) 2009 project ideas page. As we move forward with the 2009 version of the Joomla! GSoC, we will use this page to develop possible project ideas. Please note that anyone who is interested can participate in this process. You do not have to be a GSoC student or mentor to suggest possible project ideas. Thanks!&lt;br /&gt;
&lt;br /&gt;
===Ideas===&lt;br /&gt;
&lt;br /&gt;
=====Advanced Poll/Survey Suite=====&lt;br /&gt;
&lt;br /&gt;
The core polls extension has been removed from Joomla! 1.6. Develop a fully featured poll/survey suite that will allow relatively simple user polls and the collection of complex anonymized survey data authenticated against either the Joomla users database or an external database.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Full Frontend Editing=====&lt;br /&gt;
&lt;br /&gt;
Right now we only have frontend editing for articles, there are a few improvements I can propose&lt;br /&gt;
* Article editing is done in a modal popup&lt;br /&gt;
* Edit module content and params from frontend (Editing done via a modal popup?)&lt;br /&gt;
* Article Title - edit in place&lt;br /&gt;
* Create some kind of a library function which allows easy frontend editing for any value (This will need some thought)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; Javascript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Template Manager Improvements/Advanced Template Manager=====&lt;br /&gt;
&lt;br /&gt;
Extend the template manager so that it providers an better environment for template creation and modification.  Improvements might include: &lt;br /&gt;
*expanded tool bar, including copy for a complete template&lt;br /&gt;
*access to the media manager&lt;br /&gt;
*access to all template files (not just css and index.php)&lt;br /&gt;
*override manager&lt;br /&gt;
*integration of an editor with code highlighting (such as codepress)&lt;br /&gt;
*support for template parameter groups&lt;br /&gt;
*remove hard-wired references to template name from the core templates (so the new copy function will work as expected)&lt;br /&gt;
*&amp;quot;export&amp;quot; button on the toolbar which will create a zip package file containing the template (also fixes any errors in the templateDetails.xml file as it goes).&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Work Flow Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 Extension to flexibly manage workflow for com_content. &lt;br /&gt;
Ideally it should be extensible to other components, but com_content should be used as the proof of concept.&lt;br /&gt;
Work flow should manage the publication process, including assignment of editors or publishers to specific content items, notifications of relevant actions to specific individuals or groups, change of status to block author editing of published work.&lt;br /&gt;
&lt;br /&gt;
As much as possible administrators should be able to construct their own work flows.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Page Versioning Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 content versioning extension with the goal that this work could be integrated into the core Joomla CMS for future releases.&lt;br /&gt;
The Page Versioning Extension will allow the ability for frontend and backend content users to be able to save and re-publish/revert previously saved versions of content items that they have access to.&lt;br /&gt;
&lt;br /&gt;
Further user permissions could be introduced in order to restrict access to this overall feature.&lt;br /&gt;
&lt;br /&gt;
Features could include a visual and html code difference between the current and previously saved versions, as well as general searching data such as dates and time of previous saved entries of that content.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Taxonomy Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 Taxonomy extension with the goal that this work could be integrated into the core Joomla CMS for future releases.&lt;br /&gt;
The Taxonomy Extension will allow the ability to organise content for classification, improving on the current Section and Categories classification.&lt;br /&gt;
&lt;br /&gt;
Taxonomy is a vital feature of modern CMS solutions, evolving from the previous &amp;quot;pigeonholeing&amp;quot; of a content item. &lt;br /&gt;
Full organisational structures and multi tagging of content could be included, including powerful search functions of content under  those classifications.&lt;br /&gt;
&lt;br /&gt;
Taxonomy is a missing feature in Joomla!, which another open-source competitor product currently offers. We have seen a number of opportunities when Joomla! misses out on being the chosen option for a CMS due to the lacking of this feature.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Keywords Management Extension=====&lt;br /&gt;
Keywords in articles are an important part of many Joomla! sites. They are used for page rankings but also can be used with Related Articles modules and component extensions. In this capacity, they provide a way to relate articles that is much more flexible and free-form than the built-in Section / Category / Article hierarchy.&lt;br /&gt;
&lt;br /&gt;
Currently in Joomla!, keywords are entered when editing each individual article. This has several disadvantages, including:&lt;br /&gt;
* You cannot see already existing keywords when entering in keywords for an article.&lt;br /&gt;
* You cannot see existing articles that are already associated with a keyword.&lt;br /&gt;
* It is difficult to be consistent when using keywords. For example, should it be capitalized, singular or plural (&amp;quot;Dog&amp;quot; or &amp;quot;Dogs&amp;quot;), and so on.&lt;br /&gt;
&lt;br /&gt;
To deal with these issues, a back-end Keyword Management extension is proposed. This extension would allow the following capabilities:&lt;br /&gt;
* A management screen showing a list of all keywords currently in use. This would provide the ability to drill into any keyword and see all articles that use this keyword.&lt;br /&gt;
* A keyword picker screen. This would allow an author to pick keywords for an article from a list of existing keywords. This would make it easier to ensure consistency in spelling, capitalization, and usage between keywords. This screen would also allow the author to add a new keyword to the list.&lt;br /&gt;
* The ability to do global search and replace on keywords.&lt;br /&gt;
* The ability to see keywords ranked by frequency of use.&lt;br /&gt;
* The ability to list articles to which no keywords have been assigned.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====User-Defined List and Blog Layout Extension=====&lt;br /&gt;
Currently in Joomla!, there are built-in Menu Items for list and blog layouts for Sections and Categories. However, the way a list of articles is selected is tightly bound with the way the list is displayed on the page. In theory, you should be able to have a list or blog layout that shows any selection of articles.&lt;br /&gt;
&lt;br /&gt;
To provide this capability, an extension is proposed that would provide layouts similar to the current list and blog layouts. However, the extension would be designed so that the list of articles is provided by a plugin instead of being integrated into the layout. Example plugins could be provided to mimic the current Section, Article, and Front Page layouts. However, the power of this extension is that the user could add their own plugin that would provide a list of articles using any type of query. This list of articles would then feed into the built-in layouts provided by the extension to turn the raw article list into the desired layout.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Ian MacLennan(subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Improve Unit Test Coverage=====&lt;br /&gt;
Work has been started on this but the number of unit tests currently in use is small. We need to add many more unit tests. Also, currently unit tests are only able to be used for class methods. We have no way, for example, to test page layouts or module insertion into templates. Part of this project could be to research automated testing solutions to test the complete HTML code sent to the browser. This would allow end-to-end automated testing.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Alan Langford (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, PHPUnit, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Web Based Unit Test Runner=====&lt;br /&gt;
Write a test runner that makes it easy to run unit tests from a web browser. The existing unit test framework is based on running PHP from the command line. While this is essential for integrating testing into the build and release process, it&#039;s a barrier to using tests during development.&lt;br /&gt;
&lt;br /&gt;
This project involves adapting web-based test runners provided by PHPUnit to support the &amp;quot;Joomla!&amp;quot; testing environment.&lt;br /&gt;
&lt;br /&gt;
Develop and implement a method to allow organizations to update their own CiviCRM records from the Joomla! front end.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Alan Langford (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, PHPUnit, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====CiviCRM Integration: Allow Organizational Updating From Joomla! Front End=====&lt;br /&gt;
Civicrm [1] is a powerful constituent relationship management system designed for the not for profit/nongovernmental organizations. It currently integrates with Joomla! and the 2.1 version is native to Joomla! 1.5.&lt;br /&gt;
&lt;br /&gt;
Constituent records in CiviCRM may be for individuals, households and organizations. Currently individuals can up date their records from the Joomla! front end if administrators allow it. However, many organizations have other organizations as contituents and currently there is no way for organizational (or household) records to be updated in the front end.&lt;br /&gt;
&lt;br /&gt;
For this project, the student will design and implement a method allowing organizations to update their records by exposing the organizational api to the Joomla! front end and developing appropriate access control and activity tracking.&lt;br /&gt;
&lt;br /&gt;
For this project the student should plan on interacting closely with both the Joomla! and CiviCRM teams.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Elin Waring (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Civicrm Integration: Develop Front End Extensions for CiviCRM Data=====&lt;br /&gt;
Develop a suite of front end Joomla! 1.5 extensions (modules, plugins and a Joomla! style MVC frontend component for CiviCRM.&lt;br /&gt;
&lt;br /&gt;
[Civicrm : http://civicrm.org] is a powerful constituent relationship management system designed for the not for profit/nongovernmental organizations. It currently integrates with Joomla! 1.0.x and 1.5 in legacy mode, and  and the 2.1 version will be native to Joomla! 1.5.&lt;br /&gt;
&lt;br /&gt;
Thus far most functionality for civicrm in Joomla! has focused on the administrator. This project will focus on fuller development of the CiviCRM Joomla! Front end.&lt;br /&gt;
&lt;br /&gt;
This development might include modules, plugins, and a MVC front end component which will allow exposure of various CiviCRM APIs. &lt;br /&gt;
&lt;br /&gt;
Some of these will focus on the display of and interaction with general information, for example:&lt;br /&gt;
* a module showing a list of upcoming events&lt;br /&gt;
* a module showing progress on a fund raising thermometer&lt;br /&gt;
* a module displaying the most recent donations, donations at certain levels, total donations or other information&lt;br /&gt;
* a module containing a contribution button linked to a specific contribution page&lt;br /&gt;
* a plugin showing total giving in a specified time period (day, week, month, year)&lt;br /&gt;
* a donation reporting view with a layout that displays lists of donors in a given time period, sorted by giving level.&lt;br /&gt;
&lt;br /&gt;
Some will focus on the display of user level information such as:&lt;br /&gt;
* a module displaying an individual&#039;s information from a given profile with the option to update.&lt;br /&gt;
* a module displaying an individual&#039;s summary giving information. &lt;br /&gt;
* a module displaying events an individual is registered for&lt;br /&gt;
* a plugin showing a user&#039;s information for a give field&lt;br /&gt;
* a plugin showing a user&#039;s total giving or giving in a given fiscal year&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Elin Waring (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Improved Error Handling=====&lt;br /&gt;
Create a component that will handle standard errors (ex. 404) so that headers are sent for the error code, but the error is trapped and redirected from the error.php file back to Joomla! &lt;br /&gt;
where it can be handled on a normal webpage.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Media Manager Improvements=====&lt;br /&gt;
The following improvements could be made to the current Joomla! Media Manager:&lt;br /&gt;
* Support content expiration (image/video) that allow user to set start – end date of each content which to be lived on site&lt;br /&gt;
**e.g. food image can be lived on site only 3 months, due to the license issue, so we need to take out the image and replace it with other default image or leave it blank&lt;br /&gt;
* Support user friendly input interface which allow user to complete content input in 1 screen (Text input, Multiple images/videos upload, Tagging, Mapping related content and so on)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Whiteboard/Wiki Component=====&lt;br /&gt;
Joomla comes with a few core components, and a Whiteboard/Wiki component would be a great addition to those.  It would be a basic implementation of the feature with the following possible features:&lt;br /&gt;
&lt;br /&gt;
* Provide a simple interface for editing (perhaps allowing multiple users to edit at once or locking down while under edit)&lt;br /&gt;
* Ability to restrict user access on posting&lt;br /&gt;
* Organize whiteboards&lt;br /&gt;
* Keep revisions in archive&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Ashwin Date (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Core Extensions Semantic and SEO Updates=====&lt;br /&gt;
The core extensions can be modified to produce semantic markup.  The tables should be replaced withmore appropriate containers for the contents.  This would not replace the need for template overrides, but rather make the default output stronger to build upon.  The output should also be arranged to best suit the content in the majority of situations.  Perhaps also a basic system reset CSS file would need to be developed to set some of the basic layout items, also to be easily disabled.&lt;br /&gt;
&lt;br /&gt;
The core output cannot be replaced completely without causing many 1.5 templates to break.  Therefore it would be necessary to&lt;br /&gt;
either have a legacy mode for templates or to automatically detect the template type (1.5 or 1.6) in order to provide the right output. &lt;br /&gt;
&lt;br /&gt;
Modules can be defined in a template to have pretty much any name they wish.  While this is great for template makers, it would be good to have at least some guidelines about naming modules.  Module names like user1 and user2 are essentially useless semantically, and to administrators of a site.  Some templates are designed for any module to fit in any position, but in general there are at least a handful that are designed with the menu, footer, and other aspects in mind.  Perhaps Joomla can create some guidelines (not requirements) related to this.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Templates for Joomla 1.6=====&lt;br /&gt;
Each version of Joomla comes with a set of templates, and they are updated with each major release.  1.6 is currently in development, and will need a new set of templates.  These templates should:&lt;br /&gt;
&lt;br /&gt;
* Employ semantic markup&lt;br /&gt;
* Provide a fresh look&lt;br /&gt;
* Be flexible to accommodate all kinds of content&lt;br /&gt;
* Come with example core overrides, perhaps for major extensions as well&lt;br /&gt;
* Should have a light memory print&lt;br /&gt;
* Comply with accessibility standards&lt;br /&gt;
* Validate&lt;br /&gt;
* Be easily modified and built upon&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, HTML, CSS, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Administrator and Usability Improvements=====&lt;br /&gt;
There are many little improvements that would help with general usability and administration for Joomla users. &lt;br /&gt;
&lt;br /&gt;
* Assigning modules in the Menu Manager&lt;br /&gt;
* Assigning links from Article Manager&lt;br /&gt;
* Copying templates&lt;br /&gt;
* Easily change Control Panel icons&lt;br /&gt;
* Improved Front Page article handling&lt;br /&gt;
* Improve internal mailing system and its notifications&lt;br /&gt;
* Make Control Panel in the menu a one click step, not hover then select&lt;br /&gt;
* Have the main tabs linked in case they are clicked, such as Content goes to Articles&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Content Item Templates=====&lt;br /&gt;
&lt;br /&gt;
Easy page layout template system so that editors can choose from a pre-defined range of layouts.&lt;br /&gt;
This could be useful when certain pages all require the Name, Date, Author name, photo in a certain area, tagline etc.&lt;br /&gt;
Content item templates could be defined, then saved and authors could then choose from this list, helping sites with larger article content to retain continuity throughout their areas of pages.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====XML DTDs and XML Schemas for all XML files used in Joomla=====&lt;br /&gt;
&lt;br /&gt;
XML files are used in various places throughout Joomla.  Historically, the installer XML files have had DTDs against which they can be validated.  However, there are a number of known issues with these DTDs and there are other XML files used in Joomla that have never had DTDs written at all.  Furthermore, DTDs can only catch certain classes of errors within XML files and we need to look beyond DTDs to look at XML Schemas to catch other classes of errors.&lt;br /&gt;
&lt;br /&gt;
* Review all XML files used in Joomla and list them on the documentation wiki.&lt;br /&gt;
* Create a collection of test cases of XML files that will fail in Joomla and which should, therefore, fail to validate in some way.&lt;br /&gt;
* Where DTDs already exist, review, revise and update them as necessary.&lt;br /&gt;
* Create DTDs for those XML files that don&#039;t currently have one.&lt;br /&gt;
* Create patches for the core code (target 1.6?) to ensure that valid DTDs can be written for all XML files.&lt;br /&gt;
* All current DTDs force some XML elements to appear in a particular order which is neither enforced nor required by Joomla.  If possible, solve this problem so that designers and developers can place those elements in arbitrary order in the XML and still have the XML files validate against the DTDs.&lt;br /&gt;
* Create XML Schemas for all XML files used in Joomla.&lt;br /&gt;
* Ensure that DTDs and XML Schemas are well commented and/or thoroughly documented.&lt;br /&gt;
* Write comprehensive documentation covering the process of validating an XML file against both DTDs and XML Schemas.  Some documentation already exists that can be used as the basis for this.&lt;br /&gt;
* Expand the collection of test cases to include XML files that will not fail in Joomla but which may or may not fail to validate against the DTDs or XML Schemas.&lt;br /&gt;
* Ensure that the test case collection is properly documented so that changes to Joomla and/or the DTDs and XML Schemas can be properly tested.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Chris Davenport (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, XML / DTD validation&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Alternate Component for Editing Articles=====&lt;br /&gt;
The idea is to have an component on admin side that allows articles to be edited based on the frontend navigation, Something similar to [http://thewebkitchen.co.uk/typo3temp/pics/a367ba3c04.jpg Typo3 admin]implementation (just 2 and 3 in the image).&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Magento eCommerce Platform integration into Joomla!=====&lt;br /&gt;
Magento is an actively developing award winning open source eCommerce platform. The idea is to develop a bridge between Magento and Joomla.&lt;br /&gt;
More info about Magento can be found from the following websites:&lt;br /&gt;
[http://www.magentocommerce.com/ Magento official website]&lt;br /&gt;
[http://demo.magentocommerce.com/ Magento online demo]&lt;br /&gt;
[http://www.magentocommerce.com/media/tour/magento-tour-store/view Store tour video]&lt;br /&gt;
[http://www.magentocommerce.com/media/tour/magento-tour-admin/view Admin tour video]&lt;br /&gt;
[http://www.infoworld.com/slideshow/2008/08/168-best_of_open_so-8.html Best of Open Source Enterprise Applications]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Not assigned yet&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Xinha WYSIWYG editor for Joomla! frontend and backend editing=====&lt;br /&gt;
Xinha is a powerful WYSIWYG editor, which supports plugins. So administrator can customize their working environment and even write their own plugins.&lt;br /&gt;
The idea is to integrate Xinha into Joomla! with ability of editing content from frontend and backend. The editor environment must be configurable.&lt;br /&gt;
You can try [http://edo.webmaster.am/projects Xinha editor plugin demo] for Joomla! 1.5.&lt;br /&gt;
More info about Xinha can be found from the following websites:&lt;br /&gt;
[http://xinha.webfactional.com/ Xinha official website]&lt;br /&gt;
[http://xinha.raimundmeyer.de/x_examples/ext_example.html Xinha demo]&lt;br /&gt;
[http://xinha.webfactional.com/wiki/Plugins Currently available Xinha plugins]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Not assigned yet&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Working copy of Joomla! live site=====&lt;br /&gt;
Usually administrators are working on their live site directly and sometimes they do mistakes as all people do. Usually the live site get&#039;s messed after extension installation/uninstallation process and re-configuration. The idea is to have a working copy of the live site and make changes to it, then if everything is okay after some testing, you can approve changes and the tool will synchronize changes to your live site.&lt;br /&gt;
&lt;br /&gt;
Some of the steps, which will need to be done to complete this project:&lt;br /&gt;
* Develop a tool, which will create the working copy of the site&lt;br /&gt;
* Develop a tool, which will synchronize working copy with live website&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Not assigned yet&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;/div&gt;</summary>
		<author><name>Edo888</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived:Summer_of_Code_2009_Project_Ideas&amp;diff=13586</id>
		<title>Archived:Summer of Code 2009 Project Ideas</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived:Summer_of_Code_2009_Project_Ideas&amp;diff=13586"/>
		<updated>2009-03-16T22:35:08Z</updated>

		<summary type="html">&lt;p&gt;Edo888: /* Xinha WYSIWYG editor for Joomla! frontend and backend editing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gsoc_2009_logo.png|right]]&lt;br /&gt;
&lt;br /&gt;
===Welcome!===&lt;br /&gt;
Welcome to the Joomla! Google Summer of Code (GSoC) 2009 project ideas page. As we move forward with the 2009 version of the Joomla! GSoC, we will use this page to develop possible project ideas. Please note that anyone who is interested can participate in this process. You do not have to be a GSoC student or mentor to suggest possible project ideas. Thanks!&lt;br /&gt;
&lt;br /&gt;
===Ideas===&lt;br /&gt;
&lt;br /&gt;
=====Advanced Poll/Survey Suite=====&lt;br /&gt;
&lt;br /&gt;
The core polls extension has been removed from Joomla! 1.6. Develop a fully featured poll/survey suite that will allow relatively simple user polls and the collection of complex anonymized survey data authenticated against either the Joomla users database or an external database.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Full Frontend Editing=====&lt;br /&gt;
&lt;br /&gt;
Right now we only have frontend editing for articles, there are a few improvements I can propose&lt;br /&gt;
* Article editing is done in a modal popup&lt;br /&gt;
* Edit module content and params from frontend (Editing done via a modal popup?)&lt;br /&gt;
* Article Title - edit in place&lt;br /&gt;
* Create some kind of a library function which allows easy frontend editing for any value (This will need some thought)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; Javascript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Template Manager Improvements/Advanced Template Manager=====&lt;br /&gt;
&lt;br /&gt;
Extend the template manager so that it providers an better environment for template creation and modification.  Improvements might include: &lt;br /&gt;
*expanded tool bar, including copy for a complete template&lt;br /&gt;
*access to the media manager&lt;br /&gt;
*access to all template files (not just css and index.php)&lt;br /&gt;
*override manager&lt;br /&gt;
*integration of an editor with code highlighting (such as codepress)&lt;br /&gt;
*support for template parameter groups&lt;br /&gt;
*remove hard-wired references to template name from the core templates (so the new copy function will work as expected)&lt;br /&gt;
*&amp;quot;export&amp;quot; button on the toolbar which will create a zip package file containing the template (also fixes any errors in the templateDetails.xml file as it goes).&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Work Flow Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 Extension to flexibly manage workflow for com_content. &lt;br /&gt;
Ideally it should be extensible to other components, but com_content should be used as the proof of concept.&lt;br /&gt;
Work flow should manage the publication process, including assignment of editors or publishers to specific content items, notifications of relevant actions to specific individuals or groups, change of status to block author editing of published work.&lt;br /&gt;
&lt;br /&gt;
As much as possible administrators should be able to construct their own work flows.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Page Versioning Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 content versioning extension with the goal that this work could be integrated into the core Joomla CMS for future releases.&lt;br /&gt;
The Page Versioning Extension will allow the ability for frontend and backend content users to be able to save and re-publish/revert previously saved versions of content items that they have access to.&lt;br /&gt;
&lt;br /&gt;
Further user permissions could be introduced in order to restrict access to this overall feature.&lt;br /&gt;
&lt;br /&gt;
Features could include a visual and html code difference between the current and previously saved versions, as well as general searching data such as dates and time of previous saved entries of that content.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Taxonomy Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 Taxonomy extension with the goal that this work could be integrated into the core Joomla CMS for future releases.&lt;br /&gt;
The Taxonomy Extension will allow the ability to organise content for classification, improving on the current Section and Categories classification.&lt;br /&gt;
&lt;br /&gt;
Taxonomy is a vital feature of modern CMS solutions, evolving from the previous &amp;quot;pigeonholeing&amp;quot; of a content item. &lt;br /&gt;
Full organisational structures and multi tagging of content could be included, including powerful search functions of content under  those classifications.&lt;br /&gt;
&lt;br /&gt;
Taxonomy is a missing feature in Joomla!, which another open-source competitor product currently offers. We have seen a number of opportunities when Joomla! misses out on being the chosen option for a CMS due to the lacking of this feature.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Keywords Management Extension=====&lt;br /&gt;
Keywords in articles are an important part of many Joomla! sites. They are used for page rankings but also can be used with Related Articles modules and component extensions. In this capacity, they provide a way to relate articles that is much more flexible and free-form than the built-in Section / Category / Article hierarchy.&lt;br /&gt;
&lt;br /&gt;
Currently in Joomla!, keywords are entered when editing each individual article. This has several disadvantages, including:&lt;br /&gt;
* You cannot see already existing keywords when entering in keywords for an article.&lt;br /&gt;
* You cannot see existing articles that are already associated with a keyword.&lt;br /&gt;
* It is difficult to be consistent when using keywords. For example, should it be capitalized, singular or plural (&amp;quot;Dog&amp;quot; or &amp;quot;Dogs&amp;quot;), and so on.&lt;br /&gt;
&lt;br /&gt;
To deal with these issues, a back-end Keyword Management extension is proposed. This extension would allow the following capabilities:&lt;br /&gt;
* A management screen showing a list of all keywords currently in use. This would provide the ability to drill into any keyword and see all articles that use this keyword.&lt;br /&gt;
* A keyword picker screen. This would allow an author to pick keywords for an article from a list of existing keywords. This would make it easier to ensure consistency in spelling, capitalization, and usage between keywords. This screen would also allow the author to add a new keyword to the list.&lt;br /&gt;
* The ability to do global search and replace on keywords.&lt;br /&gt;
* The ability to see keywords ranked by frequency of use.&lt;br /&gt;
* The ability to list articles to which no keywords have been assigned.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====User-Defined List and Blog Layout Extension=====&lt;br /&gt;
Currently in Joomla!, there are built-in Menu Items for list and blog layouts for Sections and Categories. However, the way a list of articles is selected is tightly bound with the way the list is displayed on the page. In theory, you should be able to have a list or blog layout that shows any selection of articles.&lt;br /&gt;
&lt;br /&gt;
To provide this capability, an extension is proposed that would provide layouts similar to the current list and blog layouts. However, the extension would be designed so that the list of articles is provided by a plugin instead of being integrated into the layout. Example plugins could be provided to mimic the current Section, Article, and Front Page layouts. However, the power of this extension is that the user could add their own plugin that would provide a list of articles using any type of query. This list of articles would then feed into the built-in layouts provided by the extension to turn the raw article list into the desired layout.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Ian MacLennan(subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Improve Unit Test Coverage=====&lt;br /&gt;
Work has been started on this but the number of unit tests currently in use is small. We need to add many more unit tests. Also, currently unit tests are only able to be used for class methods. We have no way, for example, to test page layouts or module insertion into templates. Part of this project could be to research automated testing solutions to test the complete HTML code sent to the browser. This would allow end-to-end automated testing.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Alan Langford (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, PHPUnit, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Web Based Unit Test Runner=====&lt;br /&gt;
Write a test runner that makes it easy to run unit tests from a web browser. The existing unit test framework is based on running PHP from the command line. While this is essential for integrating testing into the build and release process, it&#039;s a barrier to using tests during development.&lt;br /&gt;
&lt;br /&gt;
This project involves adapting web-based test runners provided by PHPUnit to support the &amp;quot;Joomla!&amp;quot; testing environment.&lt;br /&gt;
&lt;br /&gt;
Develop and implement a method to allow organizations to update their own CiviCRM records from the Joomla! front end.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Alan Langford (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, PHPUnit, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====CiviCRM Integration: Allow Organizational Updating From Joomla! Front End=====&lt;br /&gt;
Civicrm [1] is a powerful constituent relationship management system designed for the not for profit/nongovernmental organizations. It currently integrates with Joomla! and the 2.1 version is native to Joomla! 1.5.&lt;br /&gt;
&lt;br /&gt;
Constituent records in CiviCRM may be for individuals, households and organizations. Currently individuals can up date their records from the Joomla! front end if administrators allow it. However, many organizations have other organizations as contituents and currently there is no way for organizational (or household) records to be updated in the front end.&lt;br /&gt;
&lt;br /&gt;
For this project, the student will design and implement a method allowing organizations to update their records by exposing the organizational api to the Joomla! front end and developing appropriate access control and activity tracking.&lt;br /&gt;
&lt;br /&gt;
For this project the student should plan on interacting closely with both the Joomla! and CiviCRM teams.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Elin Waring (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Civicrm Integration: Develop Front End Extensions for CiviCRM Data=====&lt;br /&gt;
Develop a suite of front end Joomla! 1.5 extensions (modules, plugins and a Joomla! style MVC frontend component for CiviCRM.&lt;br /&gt;
&lt;br /&gt;
[Civicrm : http://civicrm.org] is a powerful constituent relationship management system designed for the not for profit/nongovernmental organizations. It currently integrates with Joomla! 1.0.x and 1.5 in legacy mode, and  and the 2.1 version will be native to Joomla! 1.5.&lt;br /&gt;
&lt;br /&gt;
Thus far most functionality for civicrm in Joomla! has focused on the administrator. This project will focus on fuller development of the CiviCRM Joomla! Front end.&lt;br /&gt;
&lt;br /&gt;
This development might include modules, plugins, and a MVC front end component which will allow exposure of various CiviCRM APIs. &lt;br /&gt;
&lt;br /&gt;
Some of these will focus on the display of and interaction with general information, for example:&lt;br /&gt;
* a module showing a list of upcoming events&lt;br /&gt;
* a module showing progress on a fund raising thermometer&lt;br /&gt;
* a module displaying the most recent donations, donations at certain levels, total donations or other information&lt;br /&gt;
* a module containing a contribution button linked to a specific contribution page&lt;br /&gt;
* a plugin showing total giving in a specified time period (day, week, month, year)&lt;br /&gt;
* a donation reporting view with a layout that displays lists of donors in a given time period, sorted by giving level.&lt;br /&gt;
&lt;br /&gt;
Some will focus on the display of user level information such as:&lt;br /&gt;
* a module displaying an individual&#039;s information from a given profile with the option to update.&lt;br /&gt;
* a module displaying an individual&#039;s summary giving information. &lt;br /&gt;
* a module displaying events an individual is registered for&lt;br /&gt;
* a plugin showing a user&#039;s information for a give field&lt;br /&gt;
* a plugin showing a user&#039;s total giving or giving in a given fiscal year&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Elin Waring (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Improved Error Handling=====&lt;br /&gt;
Create a component that will handle standard errors (ex. 404) so that headers are sent for the error code, but the error is trapped and redirected from the error.php file back to Joomla! &lt;br /&gt;
where it can be handled on a normal webpage.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Media Manager Improvements=====&lt;br /&gt;
The following improvements could be made to the current Joomla! Media Manager:&lt;br /&gt;
* Support content expiration (image/video) that allow user to set start – end date of each content which to be lived on site&lt;br /&gt;
**e.g. food image can be lived on site only 3 months, due to the license issue, so we need to take out the image and replace it with other default image or leave it blank&lt;br /&gt;
* Support user friendly input interface which allow user to complete content input in 1 screen (Text input, Multiple images/videos upload, Tagging, Mapping related content and so on)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Whiteboard/Wiki Component=====&lt;br /&gt;
Joomla comes with a few core components, and a Whiteboard/Wiki component would be a great addition to those.  It would be a basic implementation of the feature with the following possible features:&lt;br /&gt;
&lt;br /&gt;
* Provide a simple interface for editing (perhaps allowing multiple users to edit at once or locking down while under edit)&lt;br /&gt;
* Ability to restrict user access on posting&lt;br /&gt;
* Organize whiteboards&lt;br /&gt;
* Keep revisions in archive&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Ashwin Date (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Core Extensions Semantic and SEO Updates=====&lt;br /&gt;
The core extensions can be modified to produce semantic markup.  The tables should be replaced withmore appropriate containers for the contents.  This would not replace the need for template overrides, but rather make the default output stronger to build upon.  The output should also be arranged to best suit the content in the majority of situations.  Perhaps also a basic system reset CSS file would need to be developed to set some of the basic layout items, also to be easily disabled.&lt;br /&gt;
&lt;br /&gt;
The core output cannot be replaced completely without causing many 1.5 templates to break.  Therefore it would be necessary to&lt;br /&gt;
either have a legacy mode for templates or to automatically detect the template type (1.5 or 1.6) in order to provide the right output. &lt;br /&gt;
&lt;br /&gt;
Modules can be defined in a template to have pretty much any name they wish.  While this is great for template makers, it would be good to have at least some guidelines about naming modules.  Module names like user1 and user2 are essentially useless semantically, and to administrators of a site.  Some templates are designed for any module to fit in any position, but in general there are at least a handful that are designed with the menu, footer, and other aspects in mind.  Perhaps Joomla can create some guidelines (not requirements) related to this.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Templates for Joomla 1.6=====&lt;br /&gt;
Each version of Joomla comes with a set of templates, and they are updated with each major release.  1.6 is currently in development, and will need a new set of templates.  These templates should:&lt;br /&gt;
&lt;br /&gt;
* Employ semantic markup&lt;br /&gt;
* Provide a fresh look&lt;br /&gt;
* Be flexible to accommodate all kinds of content&lt;br /&gt;
* Come with example core overrides, perhaps for major extensions as well&lt;br /&gt;
* Should have a light memory print&lt;br /&gt;
* Comply with accessibility standards&lt;br /&gt;
* Validate&lt;br /&gt;
* Be easily modified and built upon&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, HTML, CSS, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Administrator and Usability Improvements=====&lt;br /&gt;
There are many little improvements that would help with general usability and administration for Joomla users. &lt;br /&gt;
&lt;br /&gt;
* Assigning modules in the Menu Manager&lt;br /&gt;
* Assigning links from Article Manager&lt;br /&gt;
* Copying templates&lt;br /&gt;
* Easily change Control Panel icons&lt;br /&gt;
* Improved Front Page article handling&lt;br /&gt;
* Improve internal mailing system and its notifications&lt;br /&gt;
* Make Control Panel in the menu a one click step, not hover then select&lt;br /&gt;
* Have the main tabs linked in case they are clicked, such as Content goes to Articles&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Content Item Templates=====&lt;br /&gt;
&lt;br /&gt;
Easy page layout template system so that editors can choose from a pre-defined range of layouts.&lt;br /&gt;
This could be useful when certain pages all require the Name, Date, Author name, photo in a certain area, tagline etc.&lt;br /&gt;
Content item templates could be defined, then saved and authors could then choose from this list, helping sites with larger article content to retain continuity throughout their areas of pages.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====XML DTDs and XML Schemas for all XML files used in Joomla=====&lt;br /&gt;
&lt;br /&gt;
XML files are used in various places throughout Joomla.  Historically, the installer XML files have had DTDs against which they can be validated.  However, there are a number of known issues with these DTDs and there are other XML files used in Joomla that have never had DTDs written at all.  Furthermore, DTDs can only catch certain classes of errors within XML files and we need to look beyond DTDs to look at XML Schemas to catch other classes of errors.&lt;br /&gt;
&lt;br /&gt;
* Review all XML files used in Joomla and list them on the documentation wiki.&lt;br /&gt;
* Create a collection of test cases of XML files that will fail in Joomla and which should, therefore, fail to validate in some way.&lt;br /&gt;
* Where DTDs already exist, review, revise and update them as necessary.&lt;br /&gt;
* Create DTDs for those XML files that don&#039;t currently have one.&lt;br /&gt;
* Create patches for the core code (target 1.6?) to ensure that valid DTDs can be written for all XML files.&lt;br /&gt;
* All current DTDs force some XML elements to appear in a particular order which is neither enforced nor required by Joomla.  If possible, solve this problem so that designers and developers can place those elements in arbitrary order in the XML and still have the XML files validate against the DTDs.&lt;br /&gt;
* Create XML Schemas for all XML files used in Joomla.&lt;br /&gt;
* Ensure that DTDs and XML Schemas are well commented and/or thoroughly documented.&lt;br /&gt;
* Write comprehensive documentation covering the process of validating an XML file against both DTDs and XML Schemas.  Some documentation already exists that can be used as the basis for this.&lt;br /&gt;
* Expand the collection of test cases to include XML files that will not fail in Joomla but which may or may not fail to validate against the DTDs or XML Schemas.&lt;br /&gt;
* Ensure that the test case collection is properly documented so that changes to Joomla and/or the DTDs and XML Schemas can be properly tested.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Chris Davenport (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, XML / DTD validation&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Alternate Component for Editing Articles=====&lt;br /&gt;
The idea is to have an component on admin side that allows articles to be edited based on the frontend navigation, Something similar to [http://thewebkitchen.co.uk/typo3temp/pics/a367ba3c04.jpg Typo3 admin]implementation (just 2 and 3 in the image).&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Magento eCommerce Platform integration into Joomla!=====&lt;br /&gt;
Magento is an actively developing award winning open source eCommerce platform. The idea is to develop a bridge between Magento and Joomla.&lt;br /&gt;
More info about Magento can be found from the following websites:&lt;br /&gt;
[http://www.magentocommerce.com/ Magento official website]&lt;br /&gt;
[http://demo.magentocommerce.com/ Magento online demo]&lt;br /&gt;
[http://www.magentocommerce.com/media/tour/magento-tour-store/view Store tour video]&lt;br /&gt;
[http://www.magentocommerce.com/media/tour/magento-tour-admin/view Admin tour video]&lt;br /&gt;
[http://www.infoworld.com/slideshow/2008/08/168-best_of_open_so-8.html Best of Open Source Enterprise Applications]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Not assigned yet&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Xinha WYSIWYG editor for Joomla! frontend and backend editing=====&lt;br /&gt;
Xinha is a powerful WYSIWYG editor, which supports plugins. So administrator can customize their working environment and even write their own plugins.&lt;br /&gt;
The idea is to integrate Xinha into Joomla! with ability of editing content from frontend and backend. The editor environment must be configurable.&lt;br /&gt;
You can try [http://edo.webmaster.am/projects Xinha editor plugin demo] for Joomla! 1.5.&lt;br /&gt;
More info about Xinha can be found from the following websites:&lt;br /&gt;
[http://xinha.webfactional.com/ Xinha official website]&lt;br /&gt;
[http://xinha.raimundmeyer.de/x_examples/ext_example.html Xinha demo]&lt;br /&gt;
[http://xinha.webfactional.com/wiki/Plugins Currently available Xinha plugins]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Not assigned yet&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Working copy of Joomla! live site=====&lt;br /&gt;
Usually administrators are working on their live site directly and sometimes they do mistakes as all people do. Usually the live site get&#039;s messed after extension installation/uninstallation process and re-configuration. The idea is to have a working copy of the live site and make changes to it, then if everything is okay after some testing, you can approve changes and the tool will synchronize changes to your live site.&lt;br /&gt;
&lt;br /&gt;
Some of the steps, which will need to be done to complete this project:&lt;br /&gt;
* Develop a tool, which will create the working copy of the site&lt;br /&gt;
* Develop a tool, which will synchronize working copy with live website&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Edvard Ananyan (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;/div&gt;</summary>
		<author><name>Edo888</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived:Summer_of_Code_2009_Project_Ideas&amp;diff=13584</id>
		<title>Archived:Summer of Code 2009 Project Ideas</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived:Summer_of_Code_2009_Project_Ideas&amp;diff=13584"/>
		<updated>2009-03-16T22:34:46Z</updated>

		<summary type="html">&lt;p&gt;Edo888: /* Magento eCommerce Platform integration into Joomla! */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gsoc_2009_logo.png|right]]&lt;br /&gt;
&lt;br /&gt;
===Welcome!===&lt;br /&gt;
Welcome to the Joomla! Google Summer of Code (GSoC) 2009 project ideas page. As we move forward with the 2009 version of the Joomla! GSoC, we will use this page to develop possible project ideas. Please note that anyone who is interested can participate in this process. You do not have to be a GSoC student or mentor to suggest possible project ideas. Thanks!&lt;br /&gt;
&lt;br /&gt;
===Ideas===&lt;br /&gt;
&lt;br /&gt;
=====Advanced Poll/Survey Suite=====&lt;br /&gt;
&lt;br /&gt;
The core polls extension has been removed from Joomla! 1.6. Develop a fully featured poll/survey suite that will allow relatively simple user polls and the collection of complex anonymized survey data authenticated against either the Joomla users database or an external database.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Full Frontend Editing=====&lt;br /&gt;
&lt;br /&gt;
Right now we only have frontend editing for articles, there are a few improvements I can propose&lt;br /&gt;
* Article editing is done in a modal popup&lt;br /&gt;
* Edit module content and params from frontend (Editing done via a modal popup?)&lt;br /&gt;
* Article Title - edit in place&lt;br /&gt;
* Create some kind of a library function which allows easy frontend editing for any value (This will need some thought)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; Javascript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Template Manager Improvements/Advanced Template Manager=====&lt;br /&gt;
&lt;br /&gt;
Extend the template manager so that it providers an better environment for template creation and modification.  Improvements might include: &lt;br /&gt;
*expanded tool bar, including copy for a complete template&lt;br /&gt;
*access to the media manager&lt;br /&gt;
*access to all template files (not just css and index.php)&lt;br /&gt;
*override manager&lt;br /&gt;
*integration of an editor with code highlighting (such as codepress)&lt;br /&gt;
*support for template parameter groups&lt;br /&gt;
*remove hard-wired references to template name from the core templates (so the new copy function will work as expected)&lt;br /&gt;
*&amp;quot;export&amp;quot; button on the toolbar which will create a zip package file containing the template (also fixes any errors in the templateDetails.xml file as it goes).&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Work Flow Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 Extension to flexibly manage workflow for com_content. &lt;br /&gt;
Ideally it should be extensible to other components, but com_content should be used as the proof of concept.&lt;br /&gt;
Work flow should manage the publication process, including assignment of editors or publishers to specific content items, notifications of relevant actions to specific individuals or groups, change of status to block author editing of published work.&lt;br /&gt;
&lt;br /&gt;
As much as possible administrators should be able to construct their own work flows.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Page Versioning Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 content versioning extension with the goal that this work could be integrated into the core Joomla CMS for future releases.&lt;br /&gt;
The Page Versioning Extension will allow the ability for frontend and backend content users to be able to save and re-publish/revert previously saved versions of content items that they have access to.&lt;br /&gt;
&lt;br /&gt;
Further user permissions could be introduced in order to restrict access to this overall feature.&lt;br /&gt;
&lt;br /&gt;
Features could include a visual and html code difference between the current and previously saved versions, as well as general searching data such as dates and time of previous saved entries of that content.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Taxonomy Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 Taxonomy extension with the goal that this work could be integrated into the core Joomla CMS for future releases.&lt;br /&gt;
The Taxonomy Extension will allow the ability to organise content for classification, improving on the current Section and Categories classification.&lt;br /&gt;
&lt;br /&gt;
Taxonomy is a vital feature of modern CMS solutions, evolving from the previous &amp;quot;pigeonholeing&amp;quot; of a content item. &lt;br /&gt;
Full organisational structures and multi tagging of content could be included, including powerful search functions of content under  those classifications.&lt;br /&gt;
&lt;br /&gt;
Taxonomy is a missing feature in Joomla!, which another open-source competitor product currently offers. We have seen a number of opportunities when Joomla! misses out on being the chosen option for a CMS due to the lacking of this feature.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Keywords Management Extension=====&lt;br /&gt;
Keywords in articles are an important part of many Joomla! sites. They are used for page rankings but also can be used with Related Articles modules and component extensions. In this capacity, they provide a way to relate articles that is much more flexible and free-form than the built-in Section / Category / Article hierarchy.&lt;br /&gt;
&lt;br /&gt;
Currently in Joomla!, keywords are entered when editing each individual article. This has several disadvantages, including:&lt;br /&gt;
* You cannot see already existing keywords when entering in keywords for an article.&lt;br /&gt;
* You cannot see existing articles that are already associated with a keyword.&lt;br /&gt;
* It is difficult to be consistent when using keywords. For example, should it be capitalized, singular or plural (&amp;quot;Dog&amp;quot; or &amp;quot;Dogs&amp;quot;), and so on.&lt;br /&gt;
&lt;br /&gt;
To deal with these issues, a back-end Keyword Management extension is proposed. This extension would allow the following capabilities:&lt;br /&gt;
* A management screen showing a list of all keywords currently in use. This would provide the ability to drill into any keyword and see all articles that use this keyword.&lt;br /&gt;
* A keyword picker screen. This would allow an author to pick keywords for an article from a list of existing keywords. This would make it easier to ensure consistency in spelling, capitalization, and usage between keywords. This screen would also allow the author to add a new keyword to the list.&lt;br /&gt;
* The ability to do global search and replace on keywords.&lt;br /&gt;
* The ability to see keywords ranked by frequency of use.&lt;br /&gt;
* The ability to list articles to which no keywords have been assigned.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====User-Defined List and Blog Layout Extension=====&lt;br /&gt;
Currently in Joomla!, there are built-in Menu Items for list and blog layouts for Sections and Categories. However, the way a list of articles is selected is tightly bound with the way the list is displayed on the page. In theory, you should be able to have a list or blog layout that shows any selection of articles.&lt;br /&gt;
&lt;br /&gt;
To provide this capability, an extension is proposed that would provide layouts similar to the current list and blog layouts. However, the extension would be designed so that the list of articles is provided by a plugin instead of being integrated into the layout. Example plugins could be provided to mimic the current Section, Article, and Front Page layouts. However, the power of this extension is that the user could add their own plugin that would provide a list of articles using any type of query. This list of articles would then feed into the built-in layouts provided by the extension to turn the raw article list into the desired layout.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Ian MacLennan(subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Improve Unit Test Coverage=====&lt;br /&gt;
Work has been started on this but the number of unit tests currently in use is small. We need to add many more unit tests. Also, currently unit tests are only able to be used for class methods. We have no way, for example, to test page layouts or module insertion into templates. Part of this project could be to research automated testing solutions to test the complete HTML code sent to the browser. This would allow end-to-end automated testing.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Alan Langford (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, PHPUnit, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Web Based Unit Test Runner=====&lt;br /&gt;
Write a test runner that makes it easy to run unit tests from a web browser. The existing unit test framework is based on running PHP from the command line. While this is essential for integrating testing into the build and release process, it&#039;s a barrier to using tests during development.&lt;br /&gt;
&lt;br /&gt;
This project involves adapting web-based test runners provided by PHPUnit to support the &amp;quot;Joomla!&amp;quot; testing environment.&lt;br /&gt;
&lt;br /&gt;
Develop and implement a method to allow organizations to update their own CiviCRM records from the Joomla! front end.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Alan Langford (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, PHPUnit, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====CiviCRM Integration: Allow Organizational Updating From Joomla! Front End=====&lt;br /&gt;
Civicrm [1] is a powerful constituent relationship management system designed for the not for profit/nongovernmental organizations. It currently integrates with Joomla! and the 2.1 version is native to Joomla! 1.5.&lt;br /&gt;
&lt;br /&gt;
Constituent records in CiviCRM may be for individuals, households and organizations. Currently individuals can up date their records from the Joomla! front end if administrators allow it. However, many organizations have other organizations as contituents and currently there is no way for organizational (or household) records to be updated in the front end.&lt;br /&gt;
&lt;br /&gt;
For this project, the student will design and implement a method allowing organizations to update their records by exposing the organizational api to the Joomla! front end and developing appropriate access control and activity tracking.&lt;br /&gt;
&lt;br /&gt;
For this project the student should plan on interacting closely with both the Joomla! and CiviCRM teams.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Elin Waring (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Civicrm Integration: Develop Front End Extensions for CiviCRM Data=====&lt;br /&gt;
Develop a suite of front end Joomla! 1.5 extensions (modules, plugins and a Joomla! style MVC frontend component for CiviCRM.&lt;br /&gt;
&lt;br /&gt;
[Civicrm : http://civicrm.org] is a powerful constituent relationship management system designed for the not for profit/nongovernmental organizations. It currently integrates with Joomla! 1.0.x and 1.5 in legacy mode, and  and the 2.1 version will be native to Joomla! 1.5.&lt;br /&gt;
&lt;br /&gt;
Thus far most functionality for civicrm in Joomla! has focused on the administrator. This project will focus on fuller development of the CiviCRM Joomla! Front end.&lt;br /&gt;
&lt;br /&gt;
This development might include modules, plugins, and a MVC front end component which will allow exposure of various CiviCRM APIs. &lt;br /&gt;
&lt;br /&gt;
Some of these will focus on the display of and interaction with general information, for example:&lt;br /&gt;
* a module showing a list of upcoming events&lt;br /&gt;
* a module showing progress on a fund raising thermometer&lt;br /&gt;
* a module displaying the most recent donations, donations at certain levels, total donations or other information&lt;br /&gt;
* a module containing a contribution button linked to a specific contribution page&lt;br /&gt;
* a plugin showing total giving in a specified time period (day, week, month, year)&lt;br /&gt;
* a donation reporting view with a layout that displays lists of donors in a given time period, sorted by giving level.&lt;br /&gt;
&lt;br /&gt;
Some will focus on the display of user level information such as:&lt;br /&gt;
* a module displaying an individual&#039;s information from a given profile with the option to update.&lt;br /&gt;
* a module displaying an individual&#039;s summary giving information. &lt;br /&gt;
* a module displaying events an individual is registered for&lt;br /&gt;
* a plugin showing a user&#039;s information for a give field&lt;br /&gt;
* a plugin showing a user&#039;s total giving or giving in a given fiscal year&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Elin Waring (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Improved Error Handling=====&lt;br /&gt;
Create a component that will handle standard errors (ex. 404) so that headers are sent for the error code, but the error is trapped and redirected from the error.php file back to Joomla! &lt;br /&gt;
where it can be handled on a normal webpage.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Media Manager Improvements=====&lt;br /&gt;
The following improvements could be made to the current Joomla! Media Manager:&lt;br /&gt;
* Support content expiration (image/video) that allow user to set start – end date of each content which to be lived on site&lt;br /&gt;
**e.g. food image can be lived on site only 3 months, due to the license issue, so we need to take out the image and replace it with other default image or leave it blank&lt;br /&gt;
* Support user friendly input interface which allow user to complete content input in 1 screen (Text input, Multiple images/videos upload, Tagging, Mapping related content and so on)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Whiteboard/Wiki Component=====&lt;br /&gt;
Joomla comes with a few core components, and a Whiteboard/Wiki component would be a great addition to those.  It would be a basic implementation of the feature with the following possible features:&lt;br /&gt;
&lt;br /&gt;
* Provide a simple interface for editing (perhaps allowing multiple users to edit at once or locking down while under edit)&lt;br /&gt;
* Ability to restrict user access on posting&lt;br /&gt;
* Organize whiteboards&lt;br /&gt;
* Keep revisions in archive&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Core Extensions Semantic and SEO Updates=====&lt;br /&gt;
The core extensions can be modified to produce semantic markup.  The tables should be replaced withmore appropriate containers for the contents.  This would not replace the need for template overrides, but rather make the default output stronger to build upon.  The output should also be arranged to best suit the content in the majority of situations.  Perhaps also a basic system reset CSS file would need to be developed to set some of the basic layout items, also to be easily disabled.&lt;br /&gt;
&lt;br /&gt;
The core output cannot be replaced completely without causing many 1.5 templates to break.  Therefore it would be necessary to&lt;br /&gt;
either have a legacy mode for templates or to automatically detect the template type (1.5 or 1.6) in order to provide the right output. &lt;br /&gt;
&lt;br /&gt;
Modules can be defined in a template to have pretty much any name they wish.  While this is great for template makers, it would be good to have at least some guidelines about naming modules.  Module names like user1 and user2 are essentially useless semantically, and to administrators of a site.  Some templates are designed for any module to fit in any position, but in general there are at least a handful that are designed with the menu, footer, and other aspects in mind.  Perhaps Joomla can create some guidelines (not requirements) related to this.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Templates for Joomla 1.6=====&lt;br /&gt;
Each version of Joomla comes with a set of templates, and they are updated with each major release.  1.6 is currently in development, and will need a new set of templates.  These templates should:&lt;br /&gt;
&lt;br /&gt;
* Employ semantic markup&lt;br /&gt;
* Provide a fresh look&lt;br /&gt;
* Be flexible to accommodate all kinds of content&lt;br /&gt;
* Come with example core overrides, perhaps for major extensions as well&lt;br /&gt;
* Should have a light memory print&lt;br /&gt;
* Comply with accessibility standards&lt;br /&gt;
* Validate&lt;br /&gt;
* Be easily modified and built upon&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, HTML, CSS, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Administrator and Usability Improvements=====&lt;br /&gt;
There are many little improvements that would help with general usability and administration for Joomla users. &lt;br /&gt;
&lt;br /&gt;
* Assigning modules in the Menu Manager&lt;br /&gt;
* Assigning links from Article Manager&lt;br /&gt;
* Copying templates&lt;br /&gt;
* Easily change Control Panel icons&lt;br /&gt;
* Improved Front Page article handling&lt;br /&gt;
* Improve internal mailing system and its notifications&lt;br /&gt;
* Make Control Panel in the menu a one click step, not hover then select&lt;br /&gt;
* Have the main tabs linked in case they are clicked, such as Content goes to Articles&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Content Item Templates=====&lt;br /&gt;
&lt;br /&gt;
Easy page layout template system so that editors can choose from a pre-defined range of layouts.&lt;br /&gt;
This could be useful when certain pages all require the Name, Date, Author name, photo in a certain area, tagline etc.&lt;br /&gt;
Content item templates could be defined, then saved and authors could then choose from this list, helping sites with larger article content to retain continuity throughout their areas of pages.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====XML DTDs and XML Schemas for all XML files used in Joomla=====&lt;br /&gt;
&lt;br /&gt;
XML files are used in various places throughout Joomla.  Historically, the installer XML files have had DTDs against which they can be validated.  However, there are a number of known issues with these DTDs and there are other XML files used in Joomla that have never had DTDs written at all.  Furthermore, DTDs can only catch certain classes of errors within XML files and we need to look beyond DTDs to look at XML Schemas to catch other classes of errors.&lt;br /&gt;
&lt;br /&gt;
* Review all XML files used in Joomla and list them on the documentation wiki.&lt;br /&gt;
* Create a collection of test cases of XML files that will fail in Joomla and which should, therefore, fail to validate in some way.&lt;br /&gt;
* Where DTDs already exist, review, revise and update them as necessary.&lt;br /&gt;
* Create DTDs for those XML files that don&#039;t currently have one.&lt;br /&gt;
* Create patches for the core code (target 1.6?) to ensure that valid DTDs can be written for all XML files.&lt;br /&gt;
* All current DTDs force some XML elements to appear in a particular order which is neither enforced nor required by Joomla.  If possible, solve this problem so that designers and developers can place those elements in arbitrary order in the XML and still have the XML files validate against the DTDs.&lt;br /&gt;
* Create XML Schemas for all XML files used in Joomla.&lt;br /&gt;
* Ensure that DTDs and XML Schemas are well commented and/or thoroughly documented.&lt;br /&gt;
* Write comprehensive documentation covering the process of validating an XML file against both DTDs and XML Schemas.  Some documentation already exists that can be used as the basis for this.&lt;br /&gt;
* Expand the collection of test cases to include XML files that will not fail in Joomla but which may or may not fail to validate against the DTDs or XML Schemas.&lt;br /&gt;
* Ensure that the test case collection is properly documented so that changes to Joomla and/or the DTDs and XML Schemas can be properly tested.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Chris Davenport (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, XML / DTD validation&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Alternate Component for Editing Articles=====&lt;br /&gt;
The idea is to have an component on admin side that allows articles to be edited based on the frontend navigation, Something similar to [http://thewebkitchen.co.uk/typo3temp/pics/a367ba3c04.jpg Typo3 admin]implementation (just 2 and 3 in the image).&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Magento eCommerce Platform integration into Joomla!=====&lt;br /&gt;
Magento is an actively developing award winning open source eCommerce platform. The idea is to develop a bridge between Magento and Joomla.&lt;br /&gt;
More info about Magento can be found from the following websites:&lt;br /&gt;
[http://www.magentocommerce.com/ Magento official website]&lt;br /&gt;
[http://demo.magentocommerce.com/ Magento online demo]&lt;br /&gt;
[http://www.magentocommerce.com/media/tour/magento-tour-store/view Store tour video]&lt;br /&gt;
[http://www.magentocommerce.com/media/tour/magento-tour-admin/view Admin tour video]&lt;br /&gt;
[http://www.infoworld.com/slideshow/2008/08/168-best_of_open_so-8.html Best of Open Source Enterprise Applications]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Not assigned yet&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Xinha WYSIWYG editor for Joomla! frontend and backend editing=====&lt;br /&gt;
Xinha is a powerful WYSIWYG editor, which supports plugins. So administrator can customize their working environment and even write their own plugins.&lt;br /&gt;
The idea is to integrate Xinha into Joomla! with ability of editing content from frontend and backend. The editor environment must be configurable.&lt;br /&gt;
You can try [http://edo.webmaster.am/projects Xinha editor plugin demo] for Joomla! 1.5.&lt;br /&gt;
More info about Xinha can be found from the following websites:&lt;br /&gt;
[http://xinha.webfactional.com/ Xinha official website]&lt;br /&gt;
[http://xinha.raimundmeyer.de/x_examples/ext_example.html Xinha demo]&lt;br /&gt;
[http://xinha.webfactional.com/wiki/Plugins Currently available Xinha plugins]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Edvard Ananyan (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Working copy of Joomla! live site=====&lt;br /&gt;
Usually administrators are working on their live site directly and sometimes they do mistakes as all people do. Usually the live site get&#039;s messed after extension installation/uninstallation process and re-configuration. The idea is to have a working copy of the live site and make changes to it, then if everything is okay after some testing, you can approve changes and the tool will synchronize changes to your live site.&lt;br /&gt;
&lt;br /&gt;
Some of the steps, which will need to be done to complete this project:&lt;br /&gt;
* Develop a tool, which will create the working copy of the site&lt;br /&gt;
* Develop a tool, which will synchronize working copy with live website&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Edvard Ananyan (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;/div&gt;</summary>
		<author><name>Edo888</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived:Summer_of_Code_2009_Project_Ideas&amp;diff=13580</id>
		<title>Archived:Summer of Code 2009 Project Ideas</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived:Summer_of_Code_2009_Project_Ideas&amp;diff=13580"/>
		<updated>2009-03-16T22:05:07Z</updated>

		<summary type="html">&lt;p&gt;Edo888: /* Xinha WYSIWYG editor for Joomla! frontend and backend editing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gsoc_2009_logo.png|right]]&lt;br /&gt;
&lt;br /&gt;
===Welcome!===&lt;br /&gt;
Welcome to the Joomla! Google Summer of Code (GSoC) 2009 project ideas page. As we move forward with the 2009 version of the Joomla! GSoC, we will use this page to develop possible project ideas. Please note that anyone who is interested can participate in this process. You do not have to be a GSoC student or mentor to suggest possible project ideas. Thanks!&lt;br /&gt;
&lt;br /&gt;
===Ideas===&lt;br /&gt;
&lt;br /&gt;
=====Advanced Poll/Survey Suite=====&lt;br /&gt;
&lt;br /&gt;
The core polls extension has been removed from Joomla! 1.6. Develop a fully featured poll/survey suite that will allow relatively simple user polls and the collection of complex anonymized survey data authenticated against either the Joomla users database or an external database.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Full Frontend Editing=====&lt;br /&gt;
&lt;br /&gt;
Right now we only have frontend editing for articles, there are a few improvements I can propose&lt;br /&gt;
* Article editing is done in a modal popup&lt;br /&gt;
* Edit module content and params from frontend (Editing done via a modal popup?)&lt;br /&gt;
* Article Title - edit in place&lt;br /&gt;
* Create some kind of a library function which allows easy frontend editing for any value (This will need some thought)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; Javascript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Template Manager Improvements/Advanced Template Manager=====&lt;br /&gt;
&lt;br /&gt;
Extend the template manager so that it providers an better environment for template creation and modification.  Improvements might include: &lt;br /&gt;
*expanded tool bar, including copy for a complete template&lt;br /&gt;
*access to the media manager&lt;br /&gt;
*access to all template files (not just css and index.php)&lt;br /&gt;
*override manager&lt;br /&gt;
*integration of an editor with code highlighting (such as codepress)&lt;br /&gt;
*support for template parameter groups&lt;br /&gt;
*remove hard-wired references to template name from the core templates (so the new copy function will work as expected)&lt;br /&gt;
*&amp;quot;export&amp;quot; button on the toolbar which will create a zip package file containing the template (also fixes any errors in the templateDetails.xml file as it goes).&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Work Flow Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 Extension to flexibly manage workflow for com_content. &lt;br /&gt;
Ideally it should be extensible to other components, but com_content should be used as the proof of concept.&lt;br /&gt;
Work flow should manage the publication process, including assignment of editors or publishers to specific content items, notifications of relevant actions to specific individuals or groups, change of status to block author editing of published work.&lt;br /&gt;
&lt;br /&gt;
As much as possible administrators should be able to construct their own work flows.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Edvard Ananyan (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Page Versioning Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 content versioning extension with the goal that this work could be integrated into the core Joomla CMS for future releases.&lt;br /&gt;
The Page Versioning Extension will allow the ability for frontend and backend content users to be able to save and re-publish/revert previously saved versions of content items that they have access to.&lt;br /&gt;
&lt;br /&gt;
Further user permissions could be introduced in order to restrict access to this overall feature.&lt;br /&gt;
&lt;br /&gt;
Features could include a visual and html code difference between the current and previously saved versions, as well as general searching data such as dates and time of previous saved entries of that content.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Taxonomy Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 Taxonomy extension with the goal that this work could be integrated into the core Joomla CMS for future releases.&lt;br /&gt;
The Taxonomy Extension will allow the ability to organise content for classification, improving on the current Section and Categories classification.&lt;br /&gt;
&lt;br /&gt;
Taxonomy is a vital feature of modern CMS solutions, evolving from the previous &amp;quot;pigeonholeing&amp;quot; of a content item. &lt;br /&gt;
Full organisational structures and multi tagging of content could be included, including powerful search functions of content under  those classifications.&lt;br /&gt;
&lt;br /&gt;
Taxonomy is a missing feature in Joomla!, which another open-source competitor product currently offers. We have seen a number of opportunities when Joomla! misses out on being the chosen option for a CMS due to the lacking of this feature.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Keywords Management Extension=====&lt;br /&gt;
Keywords in articles are an important part of many Joomla! sites. They are used for page rankings but also can be used with Related Articles modules and component extensions. In this capacity, they provide a way to relate articles that is much more flexible and free-form than the built-in Section / Category / Article hierarchy.&lt;br /&gt;
&lt;br /&gt;
Currently in Joomla!, keywords are entered when editing each individual article. This has several disadvantages, including:&lt;br /&gt;
* You cannot see already existing keywords when entering in keywords for an article.&lt;br /&gt;
* You cannot see existing articles that are already associated with a keyword.&lt;br /&gt;
* It is difficult to be consistent when using keywords. For example, should it be capitalized, singular or plural (&amp;quot;Dog&amp;quot; or &amp;quot;Dogs&amp;quot;), and so on.&lt;br /&gt;
&lt;br /&gt;
To deal with these issues, a back-end Keyword Management extension is proposed. This extension would allow the following capabilities:&lt;br /&gt;
* A management screen showing a list of all keywords currently in use. This would provide the ability to drill into any keyword and see all articles that use this keyword.&lt;br /&gt;
* A keyword picker screen. This would allow an author to pick keywords for an article from a list of existing keywords. This would make it easier to ensure consistency in spelling, capitalization, and usage between keywords. This screen would also allow the author to add a new keyword to the list.&lt;br /&gt;
* The ability to do global search and replace on keywords.&lt;br /&gt;
* The ability to see keywords ranked by frequency of use.&lt;br /&gt;
* The ability to list articles to which no keywords have been assigned.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====User-Defined List and Blog Layout Extension=====&lt;br /&gt;
Currently in Joomla!, there are built-in Menu Items for list and blog layouts for Sections and Categories. However, the way a list of articles is selected is tightly bound with the way the list is displayed on the page. In theory, you should be able to have a list or blog layout that shows any selection of articles.&lt;br /&gt;
&lt;br /&gt;
To provide this capability, an extension is proposed that would provide layouts similar to the current list and blog layouts. However, the extension would be designed so that the list of articles is provided by a plugin instead of being integrated into the layout. Example plugins could be provided to mimic the current Section, Article, and Front Page layouts. However, the power of this extension is that the user could add their own plugin that would provide a list of articles using any type of query. This list of articles would then feed into the built-in layouts provided by the extension to turn the raw article list into the desired layout.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Ian MacLennan(subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Improve Unit Test Coverage=====&lt;br /&gt;
Work has been started on this but the number of unit tests currently in use is small. We need to add many more unit tests. Also, currently unit tests are only able to be used for class methods. We have no way, for example, to test page layouts or module insertion into templates. Part of this project could be to research automated testing solutions to test the complete HTML code sent to the browser. This would allow end-to-end automated testing.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Alan Langford (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, PHPUnit, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Web Based Unit Test Runner=====&lt;br /&gt;
Write a test runner that makes it easy to run unit tests from a web browser. The existing unit test framework is based on running PHP from the command line. While this is essential for integrating testing into the build and release process, it&#039;s a barrier to using tests during development.&lt;br /&gt;
&lt;br /&gt;
This project involves adapting web-based test runners provided by PHPUnit to support the &amp;quot;Joomla!&amp;quot; testing environment.&lt;br /&gt;
&lt;br /&gt;
Develop and implement a method to allow organizations to update their own CiviCRM records from the Joomla! front end.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Alan Langford (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, PHPUnit, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====CiviCRM Integration: Allow Organizational Updating From Joomla! Front End=====&lt;br /&gt;
Civicrm [1] is a powerful constituent relationship management system designed for the not for profit/nongovernmental organizations. It currently integrates with Joomla! and the 2.1 version is native to Joomla! 1.5.&lt;br /&gt;
&lt;br /&gt;
Constituent records in CiviCRM may be for individuals, households and organizations. Currently individuals can up date their records from the Joomla! front end if administrators allow it. However, many organizations have other organizations as contituents and currently there is no way for organizational (or household) records to be updated in the front end.&lt;br /&gt;
&lt;br /&gt;
For this project, the student will design and implement a method allowing organizations to update their records by exposing the organizational api to the Joomla! front end and developing appropriate access control and activity tracking.&lt;br /&gt;
&lt;br /&gt;
For this project the student should plan on interacting closely with both the Joomla! and CiviCRM teams.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Elin Waring (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Civicrm Integration: Develop Front End Extensions for CiviCRM Data=====&lt;br /&gt;
Develop a suite of front end Joomla! 1.5 extensions (modules, plugins and a Joomla! style MVC frontend component for CiviCRM.&lt;br /&gt;
&lt;br /&gt;
[Civicrm : http://civicrm.org] is a powerful constituent relationship management system designed for the not for profit/nongovernmental organizations. It currently integrates with Joomla! 1.0.x and 1.5 in legacy mode, and  and the 2.1 version will be native to Joomla! 1.5.&lt;br /&gt;
&lt;br /&gt;
Thus far most functionality for civicrm in Joomla! has focused on the administrator. This project will focus on fuller development of the CiviCRM Joomla! Front end.&lt;br /&gt;
&lt;br /&gt;
This development might include modules, plugins, and a MVC front end component which will allow exposure of various CiviCRM APIs. &lt;br /&gt;
&lt;br /&gt;
Some of these will focus on the display of and interaction with general information, for example:&lt;br /&gt;
* a module showing a list of upcoming events&lt;br /&gt;
* a module showing progress on a fund raising thermometer&lt;br /&gt;
* a module displaying the most recent donations, donations at certain levels, total donations or other information&lt;br /&gt;
* a module containing a contribution button linked to a specific contribution page&lt;br /&gt;
* a plugin showing total giving in a specified time period (day, week, month, year)&lt;br /&gt;
* a donation reporting view with a layout that displays lists of donors in a given time period, sorted by giving level.&lt;br /&gt;
&lt;br /&gt;
Some will focus on the display of user level information such as:&lt;br /&gt;
* a module displaying an individual&#039;s information from a given profile with the option to update.&lt;br /&gt;
* a module displaying an individual&#039;s summary giving information. &lt;br /&gt;
* a module displaying events an individual is registered for&lt;br /&gt;
* a plugin showing a user&#039;s information for a give field&lt;br /&gt;
* a plugin showing a user&#039;s total giving or giving in a given fiscal year&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Elin Waring (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Improved Error Handling=====&lt;br /&gt;
Create a component that will handle standard errors (ex. 404) so that headers are sent for the error code, but the error is trapped and redirected from the error.php file back to Joomla! &lt;br /&gt;
where it can be handled on a normal webpage.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Media Manager Improvements=====&lt;br /&gt;
The following improvements could be made to the current Joomla! Media Manager:&lt;br /&gt;
* Support content expiration (image/video) that allow user to set start – end date of each content which to be lived on site&lt;br /&gt;
**e.g. food image can be lived on site only 3 months, due to the license issue, so we need to take out the image and replace it with other default image or leave it blank&lt;br /&gt;
* Support user friendly input interface which allow user to complete content input in 1 screen (Text input, Multiple images/videos upload, Tagging, Mapping related content and so on)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Whiteboard/Wiki Component=====&lt;br /&gt;
Joomla comes with a few core components, and a Whiteboard/Wiki component would be a great addition to those.  It would be a basic implementation of the feature with the following possible features:&lt;br /&gt;
&lt;br /&gt;
* Provide a simple interface for editing (perhaps allowing multiple users to edit at once or locking down while under edit)&lt;br /&gt;
* Ability to restrict user access on posting&lt;br /&gt;
* Organize whiteboards&lt;br /&gt;
* Keep revisions in archive&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Jeremy Wilken (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Core Extensions Semantic and SEO Updates=====&lt;br /&gt;
The core extensions can be modified to produce semantic markup.  The tables should be replaced withmore appropriate containers for the contents.  This would not replace the need for template overrides, but rather make the default output stronger to build upon.  The output should also be arranged to best suit the content in the majority of situations.  Perhaps also a basic system reset CSS file would need to be developed to set some of the basic layout items, also to be easily disabled.&lt;br /&gt;
&lt;br /&gt;
The core output cannot be replaced completely without causing many 1.5 templates to break.  Therefore it would be necessary to&lt;br /&gt;
either have a legacy mode for templates or to automatically detect the template type (1.5 or 1.6) in order to provide the right output. &lt;br /&gt;
&lt;br /&gt;
Modules can be defined in a template to have pretty much any name they wish.  While this is great for template makers, it would be good to have at least some guidelines about naming modules.  Module names like user1 and user2 are essentially useless semantically, and to administrators of a site.  Some templates are designed for any module to fit in any position, but in general there are at least a handful that are designed with the menu, footer, and other aspects in mind.  Perhaps Joomla can create some guidelines (not requirements) related to this.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Templates for Joomla 1.6=====&lt;br /&gt;
Each version of Joomla comes with a set of templates, and they are updated with each major release.  1.6 is currently in development, and will need a new set of templates.  These templates should:&lt;br /&gt;
&lt;br /&gt;
* Employ semantic markup&lt;br /&gt;
* Provide a fresh look&lt;br /&gt;
* Be flexible to accommodate all kinds of content&lt;br /&gt;
* Come with example core overrides, perhaps for major extensions as well&lt;br /&gt;
* Should have a light memory print&lt;br /&gt;
* Comply with accessibility standards&lt;br /&gt;
* Validate&lt;br /&gt;
* Be easily modified and built upon&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, HTML, CSS, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Administrator and Usability Improvements=====&lt;br /&gt;
There are many little improvements that would help with general usability and administration for Joomla users. &lt;br /&gt;
&lt;br /&gt;
* Assigning modules in the Menu Manager&lt;br /&gt;
* Assigning links from Article Manager&lt;br /&gt;
* Copying templates&lt;br /&gt;
* Easily change Control Panel icons&lt;br /&gt;
* Improved Front Page article handling&lt;br /&gt;
* Improve internal mailing system and its notifications&lt;br /&gt;
* Make Control Panel in the menu a one click step, not hover then select&lt;br /&gt;
* Have the main tabs linked in case they are clicked, such as Content goes to Articles&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Content Item Templates=====&lt;br /&gt;
&lt;br /&gt;
Easy page layout template system so that editors can choose from a pre-defined range of layouts.&lt;br /&gt;
This could be useful when certain pages all require the Name, Date, Author name, photo in a certain area, tagline etc.&lt;br /&gt;
Content item templates could be defined, then saved and authors could then choose from this list, helping sites with larger article content to retain continuity throughout their areas of pages.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Jeremy Wilken (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====XML DTDs and XML Schemas for all XML files used in Joomla=====&lt;br /&gt;
&lt;br /&gt;
XML files are used in various places throughout Joomla.  Historically, the installer XML files have had DTDs against which they can be validated.  However, there are a number of known issues with these DTDs and there are other XML files used in Joomla that have never had DTDs written at all.  Furthermore, DTDs can only catch certain classes of errors within XML files and we need to look beyond DTDs to look at XML Schemas to catch other classes of errors.&lt;br /&gt;
&lt;br /&gt;
* Review all XML files used in Joomla and list them on the documentation wiki.&lt;br /&gt;
* Create a collection of test cases of XML files that will fail in Joomla and which should, therefore, fail to validate in some way.&lt;br /&gt;
* Where DTDs already exist, review, revise and update them as necessary.&lt;br /&gt;
* Create DTDs for those XML files that don&#039;t currently have one.&lt;br /&gt;
* Create patches for the core code (target 1.6?) to ensure that valid DTDs can be written for all XML files.&lt;br /&gt;
* All current DTDs force some XML elements to appear in a particular order which is neither enforced nor required by Joomla.  If possible, solve this problem so that designers and developers can place those elements in arbitrary order in the XML and still have the XML files validate against the DTDs.&lt;br /&gt;
* Create XML Schemas for all XML files used in Joomla.&lt;br /&gt;
* Ensure that DTDs and XML Schemas are well commented and/or thoroughly documented.&lt;br /&gt;
* Write comprehensive documentation covering the process of validating an XML file against both DTDs and XML Schemas.  Some documentation already exists that can be used as the basis for this.&lt;br /&gt;
* Expand the collection of test cases to include XML files that will not fail in Joomla but which may or may not fail to validate against the DTDs or XML Schemas.&lt;br /&gt;
* Ensure that the test case collection is properly documented so that changes to Joomla and/or the DTDs and XML Schemas can be properly tested.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Chris Davenport (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, XML / DTD validation&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Alternate Component for Editing Articles=====&lt;br /&gt;
The idea is to have an component on admin side that allows articles to be edited based on the frontend navigation, Something similar to [http://thewebkitchen.co.uk/typo3temp/pics/a367ba3c04.jpg Typo3 admin]implementation (just 2 and 3 in the image).&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Magento eCommerce Platform integration into Joomla!=====&lt;br /&gt;
Magento is an actively developing award winning open source eCommerce platform. The idea is to develop a bridge between Magento and Joomla.&lt;br /&gt;
More info about Magento can be found from the following websites:&lt;br /&gt;
[http://www.magentocommerce.com/ Magento official website]&lt;br /&gt;
[http://demo.magentocommerce.com/ Magento online demo]&lt;br /&gt;
[http://www.magentocommerce.com/media/tour/magento-tour-store/view Store tour video]&lt;br /&gt;
[http://www.magentocommerce.com/media/tour/magento-tour-admin/view Admin tour video]&lt;br /&gt;
[http://www.infoworld.com/slideshow/2008/08/168-best_of_open_so-8.html Best of Open Source Enterprise Applications]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Edvard Ananyan (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Xinha WYSIWYG editor for Joomla! frontend and backend editing=====&lt;br /&gt;
Xinha is a powerful WYSIWYG editor, which supports plugins. So administrator can customize their working environment and even write their own plugins.&lt;br /&gt;
The idea is to integrate Xinha into Joomla! with ability of editing content from frontend and backend. The editor environment must be configurable.&lt;br /&gt;
You can try [http://edo.webmaster.am/projects Xinha editor plugin demo] for Joomla! 1.5.&lt;br /&gt;
More info about Xinha can be found from the following websites:&lt;br /&gt;
[http://xinha.webfactional.com/ Xinha official website]&lt;br /&gt;
[http://xinha.raimundmeyer.de/x_examples/ext_example.html Xinha demo]&lt;br /&gt;
[http://xinha.webfactional.com/wiki/Plugins Currently available Xinha plugins]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Edvard Ananyan (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Working copy of Joomla! live site=====&lt;br /&gt;
Usually administrators are working on their live site directly and sometimes they do mistakes as all people do. Usually the live site get&#039;s messed after extension installation/uninstallation process and re-configuration. The idea is to have a working copy of the live site and make changes to it, then if everything is okay after some testing, you can approve changes and the tool will synchronize changes to your live site.&lt;br /&gt;
&lt;br /&gt;
Some of the steps, which will need to be done to complete this project:&lt;br /&gt;
* Develop a tool, which will create the working copy of the site&lt;br /&gt;
* Develop a tool, which will synchronize working copy with live website&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Edvard Ananyan (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;/div&gt;</summary>
		<author><name>Edo888</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived:Summer_of_Code_2009_Project_Ideas&amp;diff=13579</id>
		<title>Archived:Summer of Code 2009 Project Ideas</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived:Summer_of_Code_2009_Project_Ideas&amp;diff=13579"/>
		<updated>2009-03-16T21:56:33Z</updated>

		<summary type="html">&lt;p&gt;Edo888: /* Xinha WYSIWYG editor for Joomla! frontend and backend editing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gsoc_2009_logo.png|right]]&lt;br /&gt;
&lt;br /&gt;
===Welcome!===&lt;br /&gt;
Welcome to the Joomla! Google Summer of Code (GSoC) 2009 project ideas page. As we move forward with the 2009 version of the Joomla! GSoC, we will use this page to develop possible project ideas. Please note that anyone who is interested can participate in this process. You do not have to be a GSoC student or mentor to suggest possible project ideas. Thanks!&lt;br /&gt;
&lt;br /&gt;
===Ideas===&lt;br /&gt;
&lt;br /&gt;
=====Advanced Poll/Survey Suite=====&lt;br /&gt;
&lt;br /&gt;
The core polls extension has been removed from Joomla! 1.6. Develop a fully featured poll/survey suite that will allow relatively simple user polls and the collection of complex anonymized survey data authenticated against either the Joomla users database or an external database.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Full Frontend Editing=====&lt;br /&gt;
&lt;br /&gt;
Right now we only have frontend editing for articles, there are a few improvements I can propose&lt;br /&gt;
* Article editing is done in a modal popup&lt;br /&gt;
* Edit module content and params from frontend (Editing done via a modal popup?)&lt;br /&gt;
* Article Title - edit in place&lt;br /&gt;
* Create some kind of a library function which allows easy frontend editing for any value (This will need some thought)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; Javascript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Template Manager Improvements/Advanced Template Manager=====&lt;br /&gt;
&lt;br /&gt;
Extend the template manager so that it providers an better environment for template creation and modification.  Improvements might include: &lt;br /&gt;
*expanded tool bar, including copy for a complete template&lt;br /&gt;
*access to the media manager&lt;br /&gt;
*access to all template files (not just css and index.php)&lt;br /&gt;
*override manager&lt;br /&gt;
*integration of an editor with code highlighting (such as codepress)&lt;br /&gt;
*support for template parameter groups&lt;br /&gt;
*remove hard-wired references to template name from the core templates (so the new copy function will work as expected)&lt;br /&gt;
*&amp;quot;export&amp;quot; button on the toolbar which will create a zip package file containing the template (also fixes any errors in the templateDetails.xml file as it goes).&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Work Flow Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 Extension to flexibly manage workflow for com_content. &lt;br /&gt;
Ideally it should be extensible to other components, but com_content should be used as the proof of concept.&lt;br /&gt;
Work flow should manage the publication process, including assignment of editors or publishers to specific content items, notifications of relevant actions to specific individuals or groups, change of status to block author editing of published work.&lt;br /&gt;
&lt;br /&gt;
As much as possible administrators should be able to construct their own work flows.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Edvard Ananyan (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Page Versioning Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 content versioning extension with the goal that this work could be integrated into the core Joomla CMS for future releases.&lt;br /&gt;
The Page Versioning Extension will allow the ability for frontend and backend content users to be able to save and re-publish/revert previously saved versions of content items that they have access to.&lt;br /&gt;
&lt;br /&gt;
Further user permissions could be introduced in order to restrict access to this overall feature.&lt;br /&gt;
&lt;br /&gt;
Features could include a visual and html code difference between the current and previously saved versions, as well as general searching data such as dates and time of previous saved entries of that content.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Taxonomy Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 Taxonomy extension with the goal that this work could be integrated into the core Joomla CMS for future releases.&lt;br /&gt;
The Taxonomy Extension will allow the ability to organise content for classification, improving on the current Section and Categories classification.&lt;br /&gt;
&lt;br /&gt;
Taxonomy is a vital feature of modern CMS solutions, evolving from the previous &amp;quot;pigeonholeing&amp;quot; of a content item. &lt;br /&gt;
Full organisational structures and multi tagging of content could be included, including powerful search functions of content under  those classifications.&lt;br /&gt;
&lt;br /&gt;
Taxonomy is a missing feature in Joomla!, which another open-source competitor product currently offers. We have seen a number of opportunities when Joomla! misses out on being the chosen option for a CMS due to the lacking of this feature.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Keywords Management Extension=====&lt;br /&gt;
Keywords in articles are an important part of many Joomla! sites. They are used for page rankings but also can be used with Related Articles modules and component extensions. In this capacity, they provide a way to relate articles that is much more flexible and free-form than the built-in Section / Category / Article hierarchy.&lt;br /&gt;
&lt;br /&gt;
Currently in Joomla!, keywords are entered when editing each individual article. This has several disadvantages, including:&lt;br /&gt;
* You cannot see already existing keywords when entering in keywords for an article.&lt;br /&gt;
* You cannot see existing articles that are already associated with a keyword.&lt;br /&gt;
* It is difficult to be consistent when using keywords. For example, should it be capitalized, singular or plural (&amp;quot;Dog&amp;quot; or &amp;quot;Dogs&amp;quot;), and so on.&lt;br /&gt;
&lt;br /&gt;
To deal with these issues, a back-end Keyword Management extension is proposed. This extension would allow the following capabilities:&lt;br /&gt;
* A management screen showing a list of all keywords currently in use. This would provide the ability to drill into any keyword and see all articles that use this keyword.&lt;br /&gt;
* A keyword picker screen. This would allow an author to pick keywords for an article from a list of existing keywords. This would make it easier to ensure consistency in spelling, capitalization, and usage between keywords. This screen would also allow the author to add a new keyword to the list.&lt;br /&gt;
* The ability to do global search and replace on keywords.&lt;br /&gt;
* The ability to see keywords ranked by frequency of use.&lt;br /&gt;
* The ability to list articles to which no keywords have been assigned.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====User-Defined List and Blog Layout Extension=====&lt;br /&gt;
Currently in Joomla!, there are built-in Menu Items for list and blog layouts for Sections and Categories. However, the way a list of articles is selected is tightly bound with the way the list is displayed on the page. In theory, you should be able to have a list or blog layout that shows any selection of articles.&lt;br /&gt;
&lt;br /&gt;
To provide this capability, an extension is proposed that would provide layouts similar to the current list and blog layouts. However, the extension would be designed so that the list of articles is provided by a plugin instead of being integrated into the layout. Example plugins could be provided to mimic the current Section, Article, and Front Page layouts. However, the power of this extension is that the user could add their own plugin that would provide a list of articles using any type of query. This list of articles would then feed into the built-in layouts provided by the extension to turn the raw article list into the desired layout.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Ian MacLennan(subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Improve Unit Test Coverage=====&lt;br /&gt;
Work has been started on this but the number of unit tests currently in use is small. We need to add many more unit tests. Also, currently unit tests are only able to be used for class methods. We have no way, for example, to test page layouts or module insertion into templates. Part of this project could be to research automated testing solutions to test the complete HTML code sent to the browser. This would allow end-to-end automated testing.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Alan Langford (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, PHPUnit, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Web Based Unit Test Runner=====&lt;br /&gt;
Write a test runner that makes it easy to run unit tests from a web browser. The existing unit test framework is based on running PHP from the command line. While this is essential for integrating testing into the build and release process, it&#039;s a barrier to using tests during development.&lt;br /&gt;
&lt;br /&gt;
This project involves adapting web-based test runners provided by PHPUnit to support the &amp;quot;Joomla!&amp;quot; testing environment.&lt;br /&gt;
&lt;br /&gt;
Develop and implement a method to allow organizations to update their own CiviCRM records from the Joomla! front end.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Alan Langford (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, PHPUnit, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====CiviCRM Integration: Allow Organizational Updating From Joomla! Front End=====&lt;br /&gt;
Civicrm [1] is a powerful constituent relationship management system designed for the not for profit/nongovernmental organizations. It currently integrates with Joomla! and the 2.1 version is native to Joomla! 1.5.&lt;br /&gt;
&lt;br /&gt;
Constituent records in CiviCRM may be for individuals, households and organizations. Currently individuals can up date their records from the Joomla! front end if administrators allow it. However, many organizations have other organizations as contituents and currently there is no way for organizational (or household) records to be updated in the front end.&lt;br /&gt;
&lt;br /&gt;
For this project, the student will design and implement a method allowing organizations to update their records by exposing the organizational api to the Joomla! front end and developing appropriate access control and activity tracking.&lt;br /&gt;
&lt;br /&gt;
For this project the student should plan on interacting closely with both the Joomla! and CiviCRM teams.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Elin Waring (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Civicrm Integration: Develop Front End Extensions for CiviCRM Data=====&lt;br /&gt;
Develop a suite of front end Joomla! 1.5 extensions (modules, plugins and a Joomla! style MVC frontend component for CiviCRM.&lt;br /&gt;
&lt;br /&gt;
[Civicrm : http://civicrm.org] is a powerful constituent relationship management system designed for the not for profit/nongovernmental organizations. It currently integrates with Joomla! 1.0.x and 1.5 in legacy mode, and  and the 2.1 version will be native to Joomla! 1.5.&lt;br /&gt;
&lt;br /&gt;
Thus far most functionality for civicrm in Joomla! has focused on the administrator. This project will focus on fuller development of the CiviCRM Joomla! Front end.&lt;br /&gt;
&lt;br /&gt;
This development might include modules, plugins, and a MVC front end component which will allow exposure of various CiviCRM APIs. &lt;br /&gt;
&lt;br /&gt;
Some of these will focus on the display of and interaction with general information, for example:&lt;br /&gt;
* a module showing a list of upcoming events&lt;br /&gt;
* a module showing progress on a fund raising thermometer&lt;br /&gt;
* a module displaying the most recent donations, donations at certain levels, total donations or other information&lt;br /&gt;
* a module containing a contribution button linked to a specific contribution page&lt;br /&gt;
* a plugin showing total giving in a specified time period (day, week, month, year)&lt;br /&gt;
* a donation reporting view with a layout that displays lists of donors in a given time period, sorted by giving level.&lt;br /&gt;
&lt;br /&gt;
Some will focus on the display of user level information such as:&lt;br /&gt;
* a module displaying an individual&#039;s information from a given profile with the option to update.&lt;br /&gt;
* a module displaying an individual&#039;s summary giving information. &lt;br /&gt;
* a module displaying events an individual is registered for&lt;br /&gt;
* a plugin showing a user&#039;s information for a give field&lt;br /&gt;
* a plugin showing a user&#039;s total giving or giving in a given fiscal year&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Elin Waring (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Improved Error Handling=====&lt;br /&gt;
Create a component that will handle standard errors (ex. 404) so that headers are sent for the error code, but the error is trapped and redirected from the error.php file back to Joomla! &lt;br /&gt;
where it can be handled on a normal webpage.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Media Manager Improvements=====&lt;br /&gt;
The following improvements could be made to the current Joomla! Media Manager:&lt;br /&gt;
* Support content expiration (image/video) that allow user to set start – end date of each content which to be lived on site&lt;br /&gt;
**e.g. food image can be lived on site only 3 months, due to the license issue, so we need to take out the image and replace it with other default image or leave it blank&lt;br /&gt;
* Support user friendly input interface which allow user to complete content input in 1 screen (Text input, Multiple images/videos upload, Tagging, Mapping related content and so on)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Whiteboard/Wiki Component=====&lt;br /&gt;
Joomla comes with a few core components, and a Whiteboard/Wiki component would be a great addition to those.  It would be a basic implementation of the feature with the following possible features:&lt;br /&gt;
&lt;br /&gt;
* Provide a simple interface for editing (perhaps allowing multiple users to edit at once or locking down while under edit)&lt;br /&gt;
* Ability to restrict user access on posting&lt;br /&gt;
* Organize whiteboards&lt;br /&gt;
* Keep revisions in archive&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Jeremy Wilken (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Core Extensions Semantic and SEO Updates=====&lt;br /&gt;
The core extensions can be modified to produce semantic markup.  The tables should be replaced withmore appropriate containers for the contents.  This would not replace the need for template overrides, but rather make the default output stronger to build upon.  The output should also be arranged to best suit the content in the majority of situations.  Perhaps also a basic system reset CSS file would need to be developed to set some of the basic layout items, also to be easily disabled.&lt;br /&gt;
&lt;br /&gt;
The core output cannot be replaced completely without causing many 1.5 templates to break.  Therefore it would be necessary to&lt;br /&gt;
either have a legacy mode for templates or to automatically detect the template type (1.5 or 1.6) in order to provide the right output. &lt;br /&gt;
&lt;br /&gt;
Modules can be defined in a template to have pretty much any name they wish.  While this is great for template makers, it would be good to have at least some guidelines about naming modules.  Module names like user1 and user2 are essentially useless semantically, and to administrators of a site.  Some templates are designed for any module to fit in any position, but in general there are at least a handful that are designed with the menu, footer, and other aspects in mind.  Perhaps Joomla can create some guidelines (not requirements) related to this.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Templates for Joomla 1.6=====&lt;br /&gt;
Each version of Joomla comes with a set of templates, and they are updated with each major release.  1.6 is currently in development, and will need a new set of templates.  These templates should:&lt;br /&gt;
&lt;br /&gt;
* Employ semantic markup&lt;br /&gt;
* Provide a fresh look&lt;br /&gt;
* Be flexible to accommodate all kinds of content&lt;br /&gt;
* Come with example core overrides, perhaps for major extensions as well&lt;br /&gt;
* Should have a light memory print&lt;br /&gt;
* Comply with accessibility standards&lt;br /&gt;
* Validate&lt;br /&gt;
* Be easily modified and built upon&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, HTML, CSS, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Administrator and Usability Improvements=====&lt;br /&gt;
There are many little improvements that would help with general usability and administration for Joomla users. &lt;br /&gt;
&lt;br /&gt;
* Assigning modules in the Menu Manager&lt;br /&gt;
* Assigning links from Article Manager&lt;br /&gt;
* Copying templates&lt;br /&gt;
* Easily change Control Panel icons&lt;br /&gt;
* Improved Front Page article handling&lt;br /&gt;
* Improve internal mailing system and its notifications&lt;br /&gt;
* Make Control Panel in the menu a one click step, not hover then select&lt;br /&gt;
* Have the main tabs linked in case they are clicked, such as Content goes to Articles&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Content Item Templates=====&lt;br /&gt;
&lt;br /&gt;
Easy page layout template system so that editors can choose from a pre-defined range of layouts.&lt;br /&gt;
This could be useful when certain pages all require the Name, Date, Author name, photo in a certain area, tagline etc.&lt;br /&gt;
Content item templates could be defined, then saved and authors could then choose from this list, helping sites with larger article content to retain continuity throughout their areas of pages.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Jeremy Wilken (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====XML DTDs and XML Schemas for all XML files used in Joomla=====&lt;br /&gt;
&lt;br /&gt;
XML files are used in various places throughout Joomla.  Historically, the installer XML files have had DTDs against which they can be validated.  However, there are a number of known issues with these DTDs and there are other XML files used in Joomla that have never had DTDs written at all.  Furthermore, DTDs can only catch certain classes of errors within XML files and we need to look beyond DTDs to look at XML Schemas to catch other classes of errors.&lt;br /&gt;
&lt;br /&gt;
* Review all XML files used in Joomla and list them on the documentation wiki.&lt;br /&gt;
* Create a collection of test cases of XML files that will fail in Joomla and which should, therefore, fail to validate in some way.&lt;br /&gt;
* Where DTDs already exist, review, revise and update them as necessary.&lt;br /&gt;
* Create DTDs for those XML files that don&#039;t currently have one.&lt;br /&gt;
* Create patches for the core code (target 1.6?) to ensure that valid DTDs can be written for all XML files.&lt;br /&gt;
* All current DTDs force some XML elements to appear in a particular order which is neither enforced nor required by Joomla.  If possible, solve this problem so that designers and developers can place those elements in arbitrary order in the XML and still have the XML files validate against the DTDs.&lt;br /&gt;
* Create XML Schemas for all XML files used in Joomla.&lt;br /&gt;
* Ensure that DTDs and XML Schemas are well commented and/or thoroughly documented.&lt;br /&gt;
* Write comprehensive documentation covering the process of validating an XML file against both DTDs and XML Schemas.  Some documentation already exists that can be used as the basis for this.&lt;br /&gt;
* Expand the collection of test cases to include XML files that will not fail in Joomla but which may or may not fail to validate against the DTDs or XML Schemas.&lt;br /&gt;
* Ensure that the test case collection is properly documented so that changes to Joomla and/or the DTDs and XML Schemas can be properly tested.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Chris Davenport (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, XML / DTD validation&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Alternate Component for Editing Articles=====&lt;br /&gt;
The idea is to have an component on admin side that allows articles to be edited based on the frontend navigation, Something similar to [http://thewebkitchen.co.uk/typo3temp/pics/a367ba3c04.jpg Typo3 admin]implementation (just 2 and 3 in the image).&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Magento eCommerce Platform integration into Joomla!=====&lt;br /&gt;
Magento is an actively developing award winning open source eCommerce platform. The idea is to develop a bridge between Magento and Joomla.&lt;br /&gt;
More info about Magento can be found from the following websites:&lt;br /&gt;
[http://www.magentocommerce.com/ Magento official website]&lt;br /&gt;
[http://demo.magentocommerce.com/ Magento online demo]&lt;br /&gt;
[http://www.magentocommerce.com/media/tour/magento-tour-store/view Store tour video]&lt;br /&gt;
[http://www.magentocommerce.com/media/tour/magento-tour-admin/view Admin tour video]&lt;br /&gt;
[http://www.infoworld.com/slideshow/2008/08/168-best_of_open_so-8.html Best of Open Source Enterprise Applications]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Edvard Ananyan (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Xinha WYSIWYG editor for Joomla! frontend and backend editing=====&lt;br /&gt;
Xinha is a powerful WYSIWYG editor, which supports plugins. So administrator can customize their working environment and even write their own plugins.&lt;br /&gt;
The idea is to integrate Xinha into Joomla! with ability of editing content from frontend and backend. The editor environment must be configurable.&lt;br /&gt;
You can try [http://edo.webmaster.am/projects Xinha editor plugin demo] for Joomla! 1.5.&lt;br /&gt;
More info about Xinha can be found from the following websites:&lt;br /&gt;
[http://xinha.webfactional.com/ Xinha official website]&lt;br /&gt;
[http://xinha.raimundmeyer.de/x_examples/ext_example.html Xinha demo]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Edvard Ananyan (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Working copy of Joomla! live site=====&lt;br /&gt;
Usually administrators are working on their live site directly and sometimes they do mistakes as all people do. Usually the live site get&#039;s messed after extension installation/uninstallation process and re-configuration. The idea is to have a working copy of the live site and make changes to it, then if everything is okay after some testing, you can approve changes and the tool will synchronize changes to your live site.&lt;br /&gt;
&lt;br /&gt;
Some of the steps, which will need to be done to complete this project:&lt;br /&gt;
* Develop a tool, which will create the working copy of the site&lt;br /&gt;
* Develop a tool, which will synchronize working copy with live website&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Edvard Ananyan (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;/div&gt;</summary>
		<author><name>Edo888</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived:Summer_of_Code_2009_Project_Ideas&amp;diff=13578</id>
		<title>Archived:Summer of Code 2009 Project Ideas</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived:Summer_of_Code_2009_Project_Ideas&amp;diff=13578"/>
		<updated>2009-03-16T21:54:35Z</updated>

		<summary type="html">&lt;p&gt;Edo888: Working copy of Joomla! live site&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gsoc_2009_logo.png|right]]&lt;br /&gt;
&lt;br /&gt;
===Welcome!===&lt;br /&gt;
Welcome to the Joomla! Google Summer of Code (GSoC) 2009 project ideas page. As we move forward with the 2009 version of the Joomla! GSoC, we will use this page to develop possible project ideas. Please note that anyone who is interested can participate in this process. You do not have to be a GSoC student or mentor to suggest possible project ideas. Thanks!&lt;br /&gt;
&lt;br /&gt;
===Ideas===&lt;br /&gt;
&lt;br /&gt;
=====Advanced Poll/Survey Suite=====&lt;br /&gt;
&lt;br /&gt;
The core polls extension has been removed from Joomla! 1.6. Develop a fully featured poll/survey suite that will allow relatively simple user polls and the collection of complex anonymized survey data authenticated against either the Joomla users database or an external database.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Full Frontend Editing=====&lt;br /&gt;
&lt;br /&gt;
Right now we only have frontend editing for articles, there are a few improvements I can propose&lt;br /&gt;
* Article editing is done in a modal popup&lt;br /&gt;
* Edit module content and params from frontend (Editing done via a modal popup?)&lt;br /&gt;
* Article Title - edit in place&lt;br /&gt;
* Create some kind of a library function which allows easy frontend editing for any value (This will need some thought)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; Javascript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Template Manager Improvements/Advanced Template Manager=====&lt;br /&gt;
&lt;br /&gt;
Extend the template manager so that it providers an better environment for template creation and modification.  Improvements might include: &lt;br /&gt;
*expanded tool bar, including copy for a complete template&lt;br /&gt;
*access to the media manager&lt;br /&gt;
*access to all template files (not just css and index.php)&lt;br /&gt;
*override manager&lt;br /&gt;
*integration of an editor with code highlighting (such as codepress)&lt;br /&gt;
*support for template parameter groups&lt;br /&gt;
*remove hard-wired references to template name from the core templates (so the new copy function will work as expected)&lt;br /&gt;
*&amp;quot;export&amp;quot; button on the toolbar which will create a zip package file containing the template (also fixes any errors in the templateDetails.xml file as it goes).&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Work Flow Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 Extension to flexibly manage workflow for com_content. &lt;br /&gt;
Ideally it should be extensible to other components, but com_content should be used as the proof of concept.&lt;br /&gt;
Work flow should manage the publication process, including assignment of editors or publishers to specific content items, notifications of relevant actions to specific individuals or groups, change of status to block author editing of published work.&lt;br /&gt;
&lt;br /&gt;
As much as possible administrators should be able to construct their own work flows.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Edvard Ananyan (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Page Versioning Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 content versioning extension with the goal that this work could be integrated into the core Joomla CMS for future releases.&lt;br /&gt;
The Page Versioning Extension will allow the ability for frontend and backend content users to be able to save and re-publish/revert previously saved versions of content items that they have access to.&lt;br /&gt;
&lt;br /&gt;
Further user permissions could be introduced in order to restrict access to this overall feature.&lt;br /&gt;
&lt;br /&gt;
Features could include a visual and html code difference between the current and previously saved versions, as well as general searching data such as dates and time of previous saved entries of that content.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Taxonomy Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 Taxonomy extension with the goal that this work could be integrated into the core Joomla CMS for future releases.&lt;br /&gt;
The Taxonomy Extension will allow the ability to organise content for classification, improving on the current Section and Categories classification.&lt;br /&gt;
&lt;br /&gt;
Taxonomy is a vital feature of modern CMS solutions, evolving from the previous &amp;quot;pigeonholeing&amp;quot; of a content item. &lt;br /&gt;
Full organisational structures and multi tagging of content could be included, including powerful search functions of content under  those classifications.&lt;br /&gt;
&lt;br /&gt;
Taxonomy is a missing feature in Joomla!, which another open-source competitor product currently offers. We have seen a number of opportunities when Joomla! misses out on being the chosen option for a CMS due to the lacking of this feature.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Keywords Management Extension=====&lt;br /&gt;
Keywords in articles are an important part of many Joomla! sites. They are used for page rankings but also can be used with Related Articles modules and component extensions. In this capacity, they provide a way to relate articles that is much more flexible and free-form than the built-in Section / Category / Article hierarchy.&lt;br /&gt;
&lt;br /&gt;
Currently in Joomla!, keywords are entered when editing each individual article. This has several disadvantages, including:&lt;br /&gt;
* You cannot see already existing keywords when entering in keywords for an article.&lt;br /&gt;
* You cannot see existing articles that are already associated with a keyword.&lt;br /&gt;
* It is difficult to be consistent when using keywords. For example, should it be capitalized, singular or plural (&amp;quot;Dog&amp;quot; or &amp;quot;Dogs&amp;quot;), and so on.&lt;br /&gt;
&lt;br /&gt;
To deal with these issues, a back-end Keyword Management extension is proposed. This extension would allow the following capabilities:&lt;br /&gt;
* A management screen showing a list of all keywords currently in use. This would provide the ability to drill into any keyword and see all articles that use this keyword.&lt;br /&gt;
* A keyword picker screen. This would allow an author to pick keywords for an article from a list of existing keywords. This would make it easier to ensure consistency in spelling, capitalization, and usage between keywords. This screen would also allow the author to add a new keyword to the list.&lt;br /&gt;
* The ability to do global search and replace on keywords.&lt;br /&gt;
* The ability to see keywords ranked by frequency of use.&lt;br /&gt;
* The ability to list articles to which no keywords have been assigned.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====User-Defined List and Blog Layout Extension=====&lt;br /&gt;
Currently in Joomla!, there are built-in Menu Items for list and blog layouts for Sections and Categories. However, the way a list of articles is selected is tightly bound with the way the list is displayed on the page. In theory, you should be able to have a list or blog layout that shows any selection of articles.&lt;br /&gt;
&lt;br /&gt;
To provide this capability, an extension is proposed that would provide layouts similar to the current list and blog layouts. However, the extension would be designed so that the list of articles is provided by a plugin instead of being integrated into the layout. Example plugins could be provided to mimic the current Section, Article, and Front Page layouts. However, the power of this extension is that the user could add their own plugin that would provide a list of articles using any type of query. This list of articles would then feed into the built-in layouts provided by the extension to turn the raw article list into the desired layout.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Ian MacLennan(subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Improve Unit Test Coverage=====&lt;br /&gt;
Work has been started on this but the number of unit tests currently in use is small. We need to add many more unit tests. Also, currently unit tests are only able to be used for class methods. We have no way, for example, to test page layouts or module insertion into templates. Part of this project could be to research automated testing solutions to test the complete HTML code sent to the browser. This would allow end-to-end automated testing.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Alan Langford (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, PHPUnit, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Web Based Unit Test Runner=====&lt;br /&gt;
Write a test runner that makes it easy to run unit tests from a web browser. The existing unit test framework is based on running PHP from the command line. While this is essential for integrating testing into the build and release process, it&#039;s a barrier to using tests during development.&lt;br /&gt;
&lt;br /&gt;
This project involves adapting web-based test runners provided by PHPUnit to support the &amp;quot;Joomla!&amp;quot; testing environment.&lt;br /&gt;
&lt;br /&gt;
Develop and implement a method to allow organizations to update their own CiviCRM records from the Joomla! front end.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Alan Langford (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, PHPUnit, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====CiviCRM Integration: Allow Organizational Updating From Joomla! Front End=====&lt;br /&gt;
Civicrm [1] is a powerful constituent relationship management system designed for the not for profit/nongovernmental organizations. It currently integrates with Joomla! and the 2.1 version is native to Joomla! 1.5.&lt;br /&gt;
&lt;br /&gt;
Constituent records in CiviCRM may be for individuals, households and organizations. Currently individuals can up date their records from the Joomla! front end if administrators allow it. However, many organizations have other organizations as contituents and currently there is no way for organizational (or household) records to be updated in the front end.&lt;br /&gt;
&lt;br /&gt;
For this project, the student will design and implement a method allowing organizations to update their records by exposing the organizational api to the Joomla! front end and developing appropriate access control and activity tracking.&lt;br /&gt;
&lt;br /&gt;
For this project the student should plan on interacting closely with both the Joomla! and CiviCRM teams.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Elin Waring (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Civicrm Integration: Develop Front End Extensions for CiviCRM Data=====&lt;br /&gt;
Develop a suite of front end Joomla! 1.5 extensions (modules, plugins and a Joomla! style MVC frontend component for CiviCRM.&lt;br /&gt;
&lt;br /&gt;
[Civicrm : http://civicrm.org] is a powerful constituent relationship management system designed for the not for profit/nongovernmental organizations. It currently integrates with Joomla! 1.0.x and 1.5 in legacy mode, and  and the 2.1 version will be native to Joomla! 1.5.&lt;br /&gt;
&lt;br /&gt;
Thus far most functionality for civicrm in Joomla! has focused on the administrator. This project will focus on fuller development of the CiviCRM Joomla! Front end.&lt;br /&gt;
&lt;br /&gt;
This development might include modules, plugins, and a MVC front end component which will allow exposure of various CiviCRM APIs. &lt;br /&gt;
&lt;br /&gt;
Some of these will focus on the display of and interaction with general information, for example:&lt;br /&gt;
* a module showing a list of upcoming events&lt;br /&gt;
* a module showing progress on a fund raising thermometer&lt;br /&gt;
* a module displaying the most recent donations, donations at certain levels, total donations or other information&lt;br /&gt;
* a module containing a contribution button linked to a specific contribution page&lt;br /&gt;
* a plugin showing total giving in a specified time period (day, week, month, year)&lt;br /&gt;
* a donation reporting view with a layout that displays lists of donors in a given time period, sorted by giving level.&lt;br /&gt;
&lt;br /&gt;
Some will focus on the display of user level information such as:&lt;br /&gt;
* a module displaying an individual&#039;s information from a given profile with the option to update.&lt;br /&gt;
* a module displaying an individual&#039;s summary giving information. &lt;br /&gt;
* a module displaying events an individual is registered for&lt;br /&gt;
* a plugin showing a user&#039;s information for a give field&lt;br /&gt;
* a plugin showing a user&#039;s total giving or giving in a given fiscal year&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Elin Waring (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Improved Error Handling=====&lt;br /&gt;
Create a component that will handle standard errors (ex. 404) so that headers are sent for the error code, but the error is trapped and redirected from the error.php file back to Joomla! &lt;br /&gt;
where it can be handled on a normal webpage.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Media Manager Improvements=====&lt;br /&gt;
The following improvements could be made to the current Joomla! Media Manager:&lt;br /&gt;
* Support content expiration (image/video) that allow user to set start – end date of each content which to be lived on site&lt;br /&gt;
**e.g. food image can be lived on site only 3 months, due to the license issue, so we need to take out the image and replace it with other default image or leave it blank&lt;br /&gt;
* Support user friendly input interface which allow user to complete content input in 1 screen (Text input, Multiple images/videos upload, Tagging, Mapping related content and so on)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Whiteboard/Wiki Component=====&lt;br /&gt;
Joomla comes with a few core components, and a Whiteboard/Wiki component would be a great addition to those.  It would be a basic implementation of the feature with the following possible features:&lt;br /&gt;
&lt;br /&gt;
* Provide a simple interface for editing (perhaps allowing multiple users to edit at once or locking down while under edit)&lt;br /&gt;
* Ability to restrict user access on posting&lt;br /&gt;
* Organize whiteboards&lt;br /&gt;
* Keep revisions in archive&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Jeremy Wilken (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Core Extensions Semantic and SEO Updates=====&lt;br /&gt;
The core extensions can be modified to produce semantic markup.  The tables should be replaced withmore appropriate containers for the contents.  This would not replace the need for template overrides, but rather make the default output stronger to build upon.  The output should also be arranged to best suit the content in the majority of situations.  Perhaps also a basic system reset CSS file would need to be developed to set some of the basic layout items, also to be easily disabled.&lt;br /&gt;
&lt;br /&gt;
The core output cannot be replaced completely without causing many 1.5 templates to break.  Therefore it would be necessary to&lt;br /&gt;
either have a legacy mode for templates or to automatically detect the template type (1.5 or 1.6) in order to provide the right output. &lt;br /&gt;
&lt;br /&gt;
Modules can be defined in a template to have pretty much any name they wish.  While this is great for template makers, it would be good to have at least some guidelines about naming modules.  Module names like user1 and user2 are essentially useless semantically, and to administrators of a site.  Some templates are designed for any module to fit in any position, but in general there are at least a handful that are designed with the menu, footer, and other aspects in mind.  Perhaps Joomla can create some guidelines (not requirements) related to this.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Templates for Joomla 1.6=====&lt;br /&gt;
Each version of Joomla comes with a set of templates, and they are updated with each major release.  1.6 is currently in development, and will need a new set of templates.  These templates should:&lt;br /&gt;
&lt;br /&gt;
* Employ semantic markup&lt;br /&gt;
* Provide a fresh look&lt;br /&gt;
* Be flexible to accommodate all kinds of content&lt;br /&gt;
* Come with example core overrides, perhaps for major extensions as well&lt;br /&gt;
* Should have a light memory print&lt;br /&gt;
* Comply with accessibility standards&lt;br /&gt;
* Validate&lt;br /&gt;
* Be easily modified and built upon&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, HTML, CSS, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Administrator and Usability Improvements=====&lt;br /&gt;
There are many little improvements that would help with general usability and administration for Joomla users. &lt;br /&gt;
&lt;br /&gt;
* Assigning modules in the Menu Manager&lt;br /&gt;
* Assigning links from Article Manager&lt;br /&gt;
* Copying templates&lt;br /&gt;
* Easily change Control Panel icons&lt;br /&gt;
* Improved Front Page article handling&lt;br /&gt;
* Improve internal mailing system and its notifications&lt;br /&gt;
* Make Control Panel in the menu a one click step, not hover then select&lt;br /&gt;
* Have the main tabs linked in case they are clicked, such as Content goes to Articles&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Content Item Templates=====&lt;br /&gt;
&lt;br /&gt;
Easy page layout template system so that editors can choose from a pre-defined range of layouts.&lt;br /&gt;
This could be useful when certain pages all require the Name, Date, Author name, photo in a certain area, tagline etc.&lt;br /&gt;
Content item templates could be defined, then saved and authors could then choose from this list, helping sites with larger article content to retain continuity throughout their areas of pages.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Jeremy Wilken (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====XML DTDs and XML Schemas for all XML files used in Joomla=====&lt;br /&gt;
&lt;br /&gt;
XML files are used in various places throughout Joomla.  Historically, the installer XML files have had DTDs against which they can be validated.  However, there are a number of known issues with these DTDs and there are other XML files used in Joomla that have never had DTDs written at all.  Furthermore, DTDs can only catch certain classes of errors within XML files and we need to look beyond DTDs to look at XML Schemas to catch other classes of errors.&lt;br /&gt;
&lt;br /&gt;
* Review all XML files used in Joomla and list them on the documentation wiki.&lt;br /&gt;
* Create a collection of test cases of XML files that will fail in Joomla and which should, therefore, fail to validate in some way.&lt;br /&gt;
* Where DTDs already exist, review, revise and update them as necessary.&lt;br /&gt;
* Create DTDs for those XML files that don&#039;t currently have one.&lt;br /&gt;
* Create patches for the core code (target 1.6?) to ensure that valid DTDs can be written for all XML files.&lt;br /&gt;
* All current DTDs force some XML elements to appear in a particular order which is neither enforced nor required by Joomla.  If possible, solve this problem so that designers and developers can place those elements in arbitrary order in the XML and still have the XML files validate against the DTDs.&lt;br /&gt;
* Create XML Schemas for all XML files used in Joomla.&lt;br /&gt;
* Ensure that DTDs and XML Schemas are well commented and/or thoroughly documented.&lt;br /&gt;
* Write comprehensive documentation covering the process of validating an XML file against both DTDs and XML Schemas.  Some documentation already exists that can be used as the basis for this.&lt;br /&gt;
* Expand the collection of test cases to include XML files that will not fail in Joomla but which may or may not fail to validate against the DTDs or XML Schemas.&lt;br /&gt;
* Ensure that the test case collection is properly documented so that changes to Joomla and/or the DTDs and XML Schemas can be properly tested.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Chris Davenport (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, XML / DTD validation&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Alternate Component for Editing Articles=====&lt;br /&gt;
The idea is to have an component on admin side that allows articles to be edited based on the frontend navigation, Something similar to [http://thewebkitchen.co.uk/typo3temp/pics/a367ba3c04.jpg Typo3 admin]implementation (just 2 and 3 in the image).&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Magento eCommerce Platform integration into Joomla!=====&lt;br /&gt;
Magento is an actively developing award winning open source eCommerce platform. The idea is to develop a bridge between Magento and Joomla.&lt;br /&gt;
More info about Magento can be found from the following websites:&lt;br /&gt;
[http://www.magentocommerce.com/ Magento official website]&lt;br /&gt;
[http://demo.magentocommerce.com/ Magento online demo]&lt;br /&gt;
[http://www.magentocommerce.com/media/tour/magento-tour-store/view Store tour video]&lt;br /&gt;
[http://www.magentocommerce.com/media/tour/magento-tour-admin/view Admin tour video]&lt;br /&gt;
[http://www.infoworld.com/slideshow/2008/08/168-best_of_open_so-8.html Best of Open Source Enterprise Applications]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Edvard Ananyan (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Xinha WYSIWYG editor for Joomla! frontend and backend editing=====&lt;br /&gt;
Xinha is a powerful WYSIWYG editor, which supports plugins. So administrator can customize their working environment and even write their own plugins.&lt;br /&gt;
The idea is to integrate Xinha into Joomla! with ability of editing content from frontend and backend. The editor environment must be configurable.&lt;br /&gt;
You can try [http://edo.webmaster.am/projects Xinha editor plugin demo] for Joomla! 1.5.&lt;br /&gt;
More info about Xinha can be found from the following websites:&lt;br /&gt;
[http://xinha.webfactional.com/ Xinha official website]&lt;br /&gt;
[http://xinha.raimundmeyer.de/x_examples/ext_example.html Xinha demo]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Edvard Ananyan (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Working copy of Joomla! live site=====&lt;br /&gt;
Usually administrators are working on their live site directly and sometimes they do mistakes as all people do. Usually the live site get&#039;s messed after extension installation/uninstallation process and re-configuration. The idea is to have a working copy of the live site and make changes to it, then if everything is okay after some testing, you can approve changes and the tool will synchronize changes to your live site.&lt;br /&gt;
&lt;br /&gt;
Some of the steps, which will need to be done to complete this project:&lt;br /&gt;
* Develop a tool, which will create the working copy of the site&lt;br /&gt;
* Develop a tool, which will synchronize working copy with live website&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Edvard Ananyan (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;/div&gt;</summary>
		<author><name>Edo888</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived:Summer_of_Code_2009_Project_Ideas&amp;diff=13577</id>
		<title>Archived:Summer of Code 2009 Project Ideas</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived:Summer_of_Code_2009_Project_Ideas&amp;diff=13577"/>
		<updated>2009-03-16T21:45:51Z</updated>

		<summary type="html">&lt;p&gt;Edo888: /* Xinha WYSIWYG editor for Joomla! frontend and backend editing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gsoc_2009_logo.png|right]]&lt;br /&gt;
&lt;br /&gt;
===Welcome!===&lt;br /&gt;
Welcome to the Joomla! Google Summer of Code (GSoC) 2009 project ideas page. As we move forward with the 2009 version of the Joomla! GSoC, we will use this page to develop possible project ideas. Please note that anyone who is interested can participate in this process. You do not have to be a GSoC student or mentor to suggest possible project ideas. Thanks!&lt;br /&gt;
&lt;br /&gt;
===Ideas===&lt;br /&gt;
&lt;br /&gt;
=====Advanced Poll/Survey Suite=====&lt;br /&gt;
&lt;br /&gt;
The core polls extension has been removed from Joomla! 1.6. Develop a fully featured poll/survey suite that will allow relatively simple user polls and the collection of complex anonymized survey data authenticated against either the Joomla users database or an external database.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Full Frontend Editing=====&lt;br /&gt;
&lt;br /&gt;
Right now we only have frontend editing for articles, there are a few improvements I can propose&lt;br /&gt;
* Article editing is done in a modal popup&lt;br /&gt;
* Edit module content and params from frontend (Editing done via a modal popup?)&lt;br /&gt;
* Article Title - edit in place&lt;br /&gt;
* Create some kind of a library function which allows easy frontend editing for any value (This will need some thought)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; Javascript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Template Manager Improvements/Advanced Template Manager=====&lt;br /&gt;
&lt;br /&gt;
Extend the template manager so that it providers an better environment for template creation and modification.  Improvements might include: &lt;br /&gt;
*expanded tool bar, including copy for a complete template&lt;br /&gt;
*access to the media manager&lt;br /&gt;
*access to all template files (not just css and index.php)&lt;br /&gt;
*override manager&lt;br /&gt;
*integration of an editor with code highlighting (such as codepress)&lt;br /&gt;
*support for template parameter groups&lt;br /&gt;
*remove hard-wired references to template name from the core templates (so the new copy function will work as expected)&lt;br /&gt;
*&amp;quot;export&amp;quot; button on the toolbar which will create a zip package file containing the template (also fixes any errors in the templateDetails.xml file as it goes).&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Work Flow Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 Extension to flexibly manage workflow for com_content. &lt;br /&gt;
Ideally it should be extensible to other components, but com_content should be used as the proof of concept.&lt;br /&gt;
Work flow should manage the publication process, including assignment of editors or publishers to specific content items, notifications of relevant actions to specific individuals or groups, change of status to block author editing of published work.&lt;br /&gt;
&lt;br /&gt;
As much as possible administrators should be able to construct their own work flows.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Edvard Ananyan (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Page Versioning Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 content versioning extension with the goal that this work could be integrated into the core Joomla CMS for future releases.&lt;br /&gt;
The Page Versioning Extension will allow the ability for frontend and backend content users to be able to save and re-publish/revert previously saved versions of content items that they have access to.&lt;br /&gt;
&lt;br /&gt;
Further user permissions could be introduced in order to restrict access to this overall feature.&lt;br /&gt;
&lt;br /&gt;
Features could include a visual and html code difference between the current and previously saved versions, as well as general searching data such as dates and time of previous saved entries of that content.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Taxonomy Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 Taxonomy extension with the goal that this work could be integrated into the core Joomla CMS for future releases.&lt;br /&gt;
The Taxonomy Extension will allow the ability to organise content for classification, improving on the current Section and Categories classification.&lt;br /&gt;
&lt;br /&gt;
Taxonomy is a vital feature of modern CMS solutions, evolving from the previous &amp;quot;pigeonholeing&amp;quot; of a content item. &lt;br /&gt;
Full organisational structures and multi tagging of content could be included, including powerful search functions of content under  those classifications.&lt;br /&gt;
&lt;br /&gt;
Taxonomy is a missing feature in Joomla!, which another open-source competitor product currently offers. We have seen a number of opportunities when Joomla! misses out on being the chosen option for a CMS due to the lacking of this feature.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Keywords Management Extension=====&lt;br /&gt;
Keywords in articles are an important part of many Joomla! sites. They are used for page rankings but also can be used with Related Articles modules and component extensions. In this capacity, they provide a way to relate articles that is much more flexible and free-form than the built-in Section / Category / Article hierarchy.&lt;br /&gt;
&lt;br /&gt;
Currently in Joomla!, keywords are entered when editing each individual article. This has several disadvantages, including:&lt;br /&gt;
* You cannot see already existing keywords when entering in keywords for an article.&lt;br /&gt;
* You cannot see existing articles that are already associated with a keyword.&lt;br /&gt;
* It is difficult to be consistent when using keywords. For example, should it be capitalized, singular or plural (&amp;quot;Dog&amp;quot; or &amp;quot;Dogs&amp;quot;), and so on.&lt;br /&gt;
&lt;br /&gt;
To deal with these issues, a back-end Keyword Management extension is proposed. This extension would allow the following capabilities:&lt;br /&gt;
* A management screen showing a list of all keywords currently in use. This would provide the ability to drill into any keyword and see all articles that use this keyword.&lt;br /&gt;
* A keyword picker screen. This would allow an author to pick keywords for an article from a list of existing keywords. This would make it easier to ensure consistency in spelling, capitalization, and usage between keywords. This screen would also allow the author to add a new keyword to the list.&lt;br /&gt;
* The ability to do global search and replace on keywords.&lt;br /&gt;
* The ability to see keywords ranked by frequency of use.&lt;br /&gt;
* The ability to list articles to which no keywords have been assigned.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====User-Defined List and Blog Layout Extension=====&lt;br /&gt;
Currently in Joomla!, there are built-in Menu Items for list and blog layouts for Sections and Categories. However, the way a list of articles is selected is tightly bound with the way the list is displayed on the page. In theory, you should be able to have a list or blog layout that shows any selection of articles.&lt;br /&gt;
&lt;br /&gt;
To provide this capability, an extension is proposed that would provide layouts similar to the current list and blog layouts. However, the extension would be designed so that the list of articles is provided by a plugin instead of being integrated into the layout. Example plugins could be provided to mimic the current Section, Article, and Front Page layouts. However, the power of this extension is that the user could add their own plugin that would provide a list of articles using any type of query. This list of articles would then feed into the built-in layouts provided by the extension to turn the raw article list into the desired layout.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Ian MacLennan(subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Improve Unit Test Coverage=====&lt;br /&gt;
Work has been started on this but the number of unit tests currently in use is small. We need to add many more unit tests. Also, currently unit tests are only able to be used for class methods. We have no way, for example, to test page layouts or module insertion into templates. Part of this project could be to research automated testing solutions to test the complete HTML code sent to the browser. This would allow end-to-end automated testing.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Alan Langford (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, PHPUnit, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Web Based Unit Test Runner=====&lt;br /&gt;
Write a test runner that makes it easy to run unit tests from a web browser. The existing unit test framework is based on running PHP from the command line. While this is essential for integrating testing into the build and release process, it&#039;s a barrier to using tests during development.&lt;br /&gt;
&lt;br /&gt;
This project involves adapting web-based test runners provided by PHPUnit to support the &amp;quot;Joomla!&amp;quot; testing environment.&lt;br /&gt;
&lt;br /&gt;
Develop and implement a method to allow organizations to update their own CiviCRM records from the Joomla! front end.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Alan Langford (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, PHPUnit, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====CiviCRM Integration: Allow Organizational Updating From Joomla! Front End=====&lt;br /&gt;
Civicrm [1] is a powerful constituent relationship management system designed for the not for profit/nongovernmental organizations. It currently integrates with Joomla! and the 2.1 version is native to Joomla! 1.5.&lt;br /&gt;
&lt;br /&gt;
Constituent records in CiviCRM may be for individuals, households and organizations. Currently individuals can up date their records from the Joomla! front end if administrators allow it. However, many organizations have other organizations as contituents and currently there is no way for organizational (or household) records to be updated in the front end.&lt;br /&gt;
&lt;br /&gt;
For this project, the student will design and implement a method allowing organizations to update their records by exposing the organizational api to the Joomla! front end and developing appropriate access control and activity tracking.&lt;br /&gt;
&lt;br /&gt;
For this project the student should plan on interacting closely with both the Joomla! and CiviCRM teams.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Elin Waring (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Civicrm Integration: Develop Front End Extensions for CiviCRM Data=====&lt;br /&gt;
Develop a suite of front end Joomla! 1.5 extensions (modules, plugins and a Joomla! style MVC frontend component for CiviCRM.&lt;br /&gt;
&lt;br /&gt;
[Civicrm : http://civicrm.org] is a powerful constituent relationship management system designed for the not for profit/nongovernmental organizations. It currently integrates with Joomla! 1.0.x and 1.5 in legacy mode, and  and the 2.1 version will be native to Joomla! 1.5.&lt;br /&gt;
&lt;br /&gt;
Thus far most functionality for civicrm in Joomla! has focused on the administrator. This project will focus on fuller development of the CiviCRM Joomla! Front end.&lt;br /&gt;
&lt;br /&gt;
This development might include modules, plugins, and a MVC front end component which will allow exposure of various CiviCRM APIs. &lt;br /&gt;
&lt;br /&gt;
Some of these will focus on the display of and interaction with general information, for example:&lt;br /&gt;
* a module showing a list of upcoming events&lt;br /&gt;
* a module showing progress on a fund raising thermometer&lt;br /&gt;
* a module displaying the most recent donations, donations at certain levels, total donations or other information&lt;br /&gt;
* a module containing a contribution button linked to a specific contribution page&lt;br /&gt;
* a plugin showing total giving in a specified time period (day, week, month, year)&lt;br /&gt;
* a donation reporting view with a layout that displays lists of donors in a given time period, sorted by giving level.&lt;br /&gt;
&lt;br /&gt;
Some will focus on the display of user level information such as:&lt;br /&gt;
* a module displaying an individual&#039;s information from a given profile with the option to update.&lt;br /&gt;
* a module displaying an individual&#039;s summary giving information. &lt;br /&gt;
* a module displaying events an individual is registered for&lt;br /&gt;
* a plugin showing a user&#039;s information for a give field&lt;br /&gt;
* a plugin showing a user&#039;s total giving or giving in a given fiscal year&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Elin Waring (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Improved Error Handling=====&lt;br /&gt;
Create a component that will handle standard errors (ex. 404) so that headers are sent for the error code, but the error is trapped and redirected from the error.php file back to Joomla! &lt;br /&gt;
where it can be handled on a normal webpage.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Media Manager Improvements=====&lt;br /&gt;
The following improvements could be made to the current Joomla! Media Manager:&lt;br /&gt;
* Support content expiration (image/video) that allow user to set start – end date of each content which to be lived on site&lt;br /&gt;
**e.g. food image can be lived on site only 3 months, due to the license issue, so we need to take out the image and replace it with other default image or leave it blank&lt;br /&gt;
* Support user friendly input interface which allow user to complete content input in 1 screen (Text input, Multiple images/videos upload, Tagging, Mapping related content and so on)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Whiteboard/Wiki Component=====&lt;br /&gt;
Joomla comes with a few core components, and a Whiteboard/Wiki component would be a great addition to those.  It would be a basic implementation of the feature with the following possible features:&lt;br /&gt;
&lt;br /&gt;
* Provide a simple interface for editing (perhaps allowing multiple users to edit at once or locking down while under edit)&lt;br /&gt;
* Ability to restrict user access on posting&lt;br /&gt;
* Organize whiteboards&lt;br /&gt;
* Keep revisions in archive&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Jeremy Wilken (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Core Extensions Semantic and SEO Updates=====&lt;br /&gt;
The core extensions can be modified to produce semantic markup.  The tables should be replaced withmore appropriate containers for the contents.  This would not replace the need for template overrides, but rather make the default output stronger to build upon.  The output should also be arranged to best suit the content in the majority of situations.  Perhaps also a basic system reset CSS file would need to be developed to set some of the basic layout items, also to be easily disabled.&lt;br /&gt;
&lt;br /&gt;
The core output cannot be replaced completely without causing many 1.5 templates to break.  Therefore it would be necessary to&lt;br /&gt;
either have a legacy mode for templates or to automatically detect the template type (1.5 or 1.6) in order to provide the right output. &lt;br /&gt;
&lt;br /&gt;
Modules can be defined in a template to have pretty much any name they wish.  While this is great for template makers, it would be good to have at least some guidelines about naming modules.  Module names like user1 and user2 are essentially useless semantically, and to administrators of a site.  Some templates are designed for any module to fit in any position, but in general there are at least a handful that are designed with the menu, footer, and other aspects in mind.  Perhaps Joomla can create some guidelines (not requirements) related to this.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Templates for Joomla 1.6=====&lt;br /&gt;
Each version of Joomla comes with a set of templates, and they are updated with each major release.  1.6 is currently in development, and will need a new set of templates.  These templates should:&lt;br /&gt;
&lt;br /&gt;
* Employ semantic markup&lt;br /&gt;
* Provide a fresh look&lt;br /&gt;
* Be flexible to accommodate all kinds of content&lt;br /&gt;
* Come with example core overrides, perhaps for major extensions as well&lt;br /&gt;
* Should have a light memory print&lt;br /&gt;
* Comply with accessibility standards&lt;br /&gt;
* Validate&lt;br /&gt;
* Be easily modified and built upon&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, HTML, CSS, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Administrator and Usability Improvements=====&lt;br /&gt;
There are many little improvements that would help with general usability and administration for Joomla users. &lt;br /&gt;
&lt;br /&gt;
* Assigning modules in the Menu Manager&lt;br /&gt;
* Assigning links from Article Manager&lt;br /&gt;
* Copying templates&lt;br /&gt;
* Easily change Control Panel icons&lt;br /&gt;
* Improved Front Page article handling&lt;br /&gt;
* Improve internal mailing system and its notifications&lt;br /&gt;
* Make Control Panel in the menu a one click step, not hover then select&lt;br /&gt;
* Have the main tabs linked in case they are clicked, such as Content goes to Articles&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Content Item Templates=====&lt;br /&gt;
&lt;br /&gt;
Easy page layout template system so that editors can choose from a pre-defined range of layouts.&lt;br /&gt;
This could be useful when certain pages all require the Name, Date, Author name, photo in a certain area, tagline etc.&lt;br /&gt;
Content item templates could be defined, then saved and authors could then choose from this list, helping sites with larger article content to retain continuity throughout their areas of pages.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Jeremy Wilken (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====XML DTDs and XML Schemas for all XML files used in Joomla=====&lt;br /&gt;
&lt;br /&gt;
XML files are used in various places throughout Joomla.  Historically, the installer XML files have had DTDs against which they can be validated.  However, there are a number of known issues with these DTDs and there are other XML files used in Joomla that have never had DTDs written at all.  Furthermore, DTDs can only catch certain classes of errors within XML files and we need to look beyond DTDs to look at XML Schemas to catch other classes of errors.&lt;br /&gt;
&lt;br /&gt;
* Review all XML files used in Joomla and list them on the documentation wiki.&lt;br /&gt;
* Create a collection of test cases of XML files that will fail in Joomla and which should, therefore, fail to validate in some way.&lt;br /&gt;
* Where DTDs already exist, review, revise and update them as necessary.&lt;br /&gt;
* Create DTDs for those XML files that don&#039;t currently have one.&lt;br /&gt;
* Create patches for the core code (target 1.6?) to ensure that valid DTDs can be written for all XML files.&lt;br /&gt;
* All current DTDs force some XML elements to appear in a particular order which is neither enforced nor required by Joomla.  If possible, solve this problem so that designers and developers can place those elements in arbitrary order in the XML and still have the XML files validate against the DTDs.&lt;br /&gt;
* Create XML Schemas for all XML files used in Joomla.&lt;br /&gt;
* Ensure that DTDs and XML Schemas are well commented and/or thoroughly documented.&lt;br /&gt;
* Write comprehensive documentation covering the process of validating an XML file against both DTDs and XML Schemas.  Some documentation already exists that can be used as the basis for this.&lt;br /&gt;
* Expand the collection of test cases to include XML files that will not fail in Joomla but which may or may not fail to validate against the DTDs or XML Schemas.&lt;br /&gt;
* Ensure that the test case collection is properly documented so that changes to Joomla and/or the DTDs and XML Schemas can be properly tested.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Chris Davenport (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, XML / DTD validation&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Alternate Component for Editing Articles=====&lt;br /&gt;
The idea is to have an component on admin side that allows articles to be edited based on the frontend navigation, Something similar to [http://thewebkitchen.co.uk/typo3temp/pics/a367ba3c04.jpg Typo3 admin]implementation (just 2 and 3 in the image).&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Magento eCommerce Platform integration into Joomla!=====&lt;br /&gt;
Magento is an actively developing award winning open source eCommerce platform. The idea is to develop a bridge between Magento and Joomla.&lt;br /&gt;
More info about Magento can be found from the following websites:&lt;br /&gt;
[http://www.magentocommerce.com/ Magento official website]&lt;br /&gt;
[http://demo.magentocommerce.com/ Magento online demo]&lt;br /&gt;
[http://www.magentocommerce.com/media/tour/magento-tour-store/view Store tour video]&lt;br /&gt;
[http://www.magentocommerce.com/media/tour/magento-tour-admin/view Admin tour video]&lt;br /&gt;
[http://www.infoworld.com/slideshow/2008/08/168-best_of_open_so-8.html Best of Open Source Enterprise Applications]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Edvard Ananyan (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Xinha WYSIWYG editor for Joomla! frontend and backend editing=====&lt;br /&gt;
Xinha is a powerful WYSIWYG editor, which supports plugins. So administrator can customize their working environment and even write their own plugins.&lt;br /&gt;
The idea is to integrate Xinha into Joomla! with ability of editing content from frontend and backend. The editor environment must be configurable.&lt;br /&gt;
You can try [http://edo.webmaster.am/projects Xinha editor plugin demo] for Joomla! 1.5.&lt;br /&gt;
More info about Xinha can be found from the following websites:&lt;br /&gt;
[http://xinha.webfactional.com/ Xinha official website]&lt;br /&gt;
[http://xinha.raimundmeyer.de/x_examples/ext_example.html Xinha demo]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Edvard Ananyan (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;/div&gt;</summary>
		<author><name>Edo888</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived:Summer_of_Code_2009_Project_Ideas&amp;diff=13572</id>
		<title>Archived:Summer of Code 2009 Project Ideas</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived:Summer_of_Code_2009_Project_Ideas&amp;diff=13572"/>
		<updated>2009-03-16T21:37:31Z</updated>

		<summary type="html">&lt;p&gt;Edo888: Xinha WYSIWYG editor for Joomla! frontend and backend editing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gsoc_2009_logo.png|right]]&lt;br /&gt;
&lt;br /&gt;
===Welcome!===&lt;br /&gt;
Welcome to the Joomla! Google Summer of Code (GSoC) 2009 project ideas page. As we move forward with the 2009 version of the Joomla! GSoC, we will use this page to develop possible project ideas. Please note that anyone who is interested can participate in this process. You do not have to be a GSoC student or mentor to suggest possible project ideas. Thanks!&lt;br /&gt;
&lt;br /&gt;
===Ideas===&lt;br /&gt;
&lt;br /&gt;
=====Advanced Poll/Survey Suite=====&lt;br /&gt;
&lt;br /&gt;
The core polls extension has been removed from Joomla! 1.6. Develop a fully featured poll/survey suite that will allow relatively simple user polls and the collection of complex anonymized survey data authenticated against either the Joomla users database or an external database.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Full Frontend Editing=====&lt;br /&gt;
&lt;br /&gt;
Right now we only have frontend editing for articles, there are a few improvements I can propose&lt;br /&gt;
* Article editing is done in a modal popup&lt;br /&gt;
* Edit module content and params from frontend (Editing done via a modal popup?)&lt;br /&gt;
* Article Title - edit in place&lt;br /&gt;
* Create some kind of a library function which allows easy frontend editing for any value (This will need some thought)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; Javascript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Template Manager Improvements/Advanced Template Manager=====&lt;br /&gt;
&lt;br /&gt;
Extend the template manager so that it providers an better environment for template creation and modification.  Improvements might include: &lt;br /&gt;
*expanded tool bar, including copy for a complete template&lt;br /&gt;
*access to the media manager&lt;br /&gt;
*access to all template files (not just css and index.php)&lt;br /&gt;
*override manager&lt;br /&gt;
*integration of an editor with code highlighting (such as codepress)&lt;br /&gt;
*support for template parameter groups&lt;br /&gt;
*remove hard-wired references to template name from the core templates (so the new copy function will work as expected)&lt;br /&gt;
*&amp;quot;export&amp;quot; button on the toolbar which will create a zip package file containing the template (also fixes any errors in the templateDetails.xml file as it goes).&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Work Flow Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 Extension to flexibly manage workflow for com_content. &lt;br /&gt;
Ideally it should be extensible to other components, but com_content should be used as the proof of concept.&lt;br /&gt;
Work flow should manage the publication process, including assignment of editors or publishers to specific content items, notifications of relevant actions to specific individuals or groups, change of status to block author editing of published work.&lt;br /&gt;
&lt;br /&gt;
As much as possible administrators should be able to construct their own work flows.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Edvard Ananyan (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Page Versioning Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 content versioning extension with the goal that this work could be integrated into the core Joomla CMS for future releases.&lt;br /&gt;
The Page Versioning Extension will allow the ability for frontend and backend content users to be able to save and re-publish/revert previously saved versions of content items that they have access to.&lt;br /&gt;
&lt;br /&gt;
Further user permissions could be introduced in order to restrict access to this overall feature.&lt;br /&gt;
&lt;br /&gt;
Features could include a visual and html code difference between the current and previously saved versions, as well as general searching data such as dates and time of previous saved entries of that content.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Taxonomy Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 Taxonomy extension with the goal that this work could be integrated into the core Joomla CMS for future releases.&lt;br /&gt;
The Taxonomy Extension will allow the ability to organise content for classification, improving on the current Section and Categories classification.&lt;br /&gt;
&lt;br /&gt;
Taxonomy is a vital feature of modern CMS solutions, evolving from the previous &amp;quot;pigeonholeing&amp;quot; of a content item. &lt;br /&gt;
Full organisational structures and multi tagging of content could be included, including powerful search functions of content under  those classifications.&lt;br /&gt;
&lt;br /&gt;
Taxonomy is a missing feature in Joomla!, which another open-source competitor product currently offers. We have seen a number of opportunities when Joomla! misses out on being the chosen option for a CMS due to the lacking of this feature.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Keywords Management Extension=====&lt;br /&gt;
Keywords in articles are an important part of many Joomla! sites. They are used for page rankings but also can be used with Related Articles modules and component extensions. In this capacity, they provide a way to relate articles that is much more flexible and free-form than the built-in Section / Category / Article hierarchy.&lt;br /&gt;
&lt;br /&gt;
Currently in Joomla!, keywords are entered when editing each individual article. This has several disadvantages, including:&lt;br /&gt;
* You cannot see already existing keywords when entering in keywords for an article.&lt;br /&gt;
* You cannot see existing articles that are already associated with a keyword.&lt;br /&gt;
* It is difficult to be consistent when using keywords. For example, should it be capitalized, singular or plural (&amp;quot;Dog&amp;quot; or &amp;quot;Dogs&amp;quot;), and so on.&lt;br /&gt;
&lt;br /&gt;
To deal with these issues, a back-end Keyword Management extension is proposed. This extension would allow the following capabilities:&lt;br /&gt;
* A management screen showing a list of all keywords currently in use. This would provide the ability to drill into any keyword and see all articles that use this keyword.&lt;br /&gt;
* A keyword picker screen. This would allow an author to pick keywords for an article from a list of existing keywords. This would make it easier to ensure consistency in spelling, capitalization, and usage between keywords. This screen would also allow the author to add a new keyword to the list.&lt;br /&gt;
* The ability to do global search and replace on keywords.&lt;br /&gt;
* The ability to see keywords ranked by frequency of use.&lt;br /&gt;
* The ability to list articles to which no keywords have been assigned.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====User-Defined List and Blog Layout Extension=====&lt;br /&gt;
Currently in Joomla!, there are built-in Menu Items for list and blog layouts for Sections and Categories. However, the way a list of articles is selected is tightly bound with the way the list is displayed on the page. In theory, you should be able to have a list or blog layout that shows any selection of articles.&lt;br /&gt;
&lt;br /&gt;
To provide this capability, an extension is proposed that would provide layouts similar to the current list and blog layouts. However, the extension would be designed so that the list of articles is provided by a plugin instead of being integrated into the layout. Example plugins could be provided to mimic the current Section, Article, and Front Page layouts. However, the power of this extension is that the user could add their own plugin that would provide a list of articles using any type of query. This list of articles would then feed into the built-in layouts provided by the extension to turn the raw article list into the desired layout.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Ian MacLennan(subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Improve Unit Test Coverage=====&lt;br /&gt;
Work has been started on this but the number of unit tests currently in use is small. We need to add many more unit tests. Also, currently unit tests are only able to be used for class methods. We have no way, for example, to test page layouts or module insertion into templates. Part of this project could be to research automated testing solutions to test the complete HTML code sent to the browser. This would allow end-to-end automated testing.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Alan Langford (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, PHPUnit, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Web Based Unit Test Runner=====&lt;br /&gt;
Write a test runner that makes it easy to run unit tests from a web browser. The existing unit test framework is based on running PHP from the command line. While this is essential for integrating testing into the build and release process, it&#039;s a barrier to using tests during development.&lt;br /&gt;
&lt;br /&gt;
This project involves adapting web-based test runners provided by PHPUnit to support the &amp;quot;Joomla!&amp;quot; testing environment.&lt;br /&gt;
&lt;br /&gt;
Develop and implement a method to allow organizations to update their own CiviCRM records from the Joomla! front end.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Alan Langford (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, PHPUnit, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====CiviCRM Integration: Allow Organizational Updating From Joomla! Front End=====&lt;br /&gt;
Civicrm [1] is a powerful constituent relationship management system designed for the not for profit/nongovernmental organizations. It currently integrates with Joomla! and the 2.1 version is native to Joomla! 1.5.&lt;br /&gt;
&lt;br /&gt;
Constituent records in CiviCRM may be for individuals, households and organizations. Currently individuals can up date their records from the Joomla! front end if administrators allow it. However, many organizations have other organizations as contituents and currently there is no way for organizational (or household) records to be updated in the front end.&lt;br /&gt;
&lt;br /&gt;
For this project, the student will design and implement a method allowing organizations to update their records by exposing the organizational api to the Joomla! front end and developing appropriate access control and activity tracking.&lt;br /&gt;
&lt;br /&gt;
For this project the student should plan on interacting closely with both the Joomla! and CiviCRM teams.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Elin Waring (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Civicrm Integration: Develop Front End Extensions for CiviCRM Data=====&lt;br /&gt;
Develop a suite of front end Joomla! 1.5 extensions (modules, plugins and a Joomla! style MVC frontend component for CiviCRM.&lt;br /&gt;
&lt;br /&gt;
[Civicrm : http://civicrm.org] is a powerful constituent relationship management system designed for the not for profit/nongovernmental organizations. It currently integrates with Joomla! 1.0.x and 1.5 in legacy mode, and  and the 2.1 version will be native to Joomla! 1.5.&lt;br /&gt;
&lt;br /&gt;
Thus far most functionality for civicrm in Joomla! has focused on the administrator. This project will focus on fuller development of the CiviCRM Joomla! Front end.&lt;br /&gt;
&lt;br /&gt;
This development might include modules, plugins, and a MVC front end component which will allow exposure of various CiviCRM APIs. &lt;br /&gt;
&lt;br /&gt;
Some of these will focus on the display of and interaction with general information, for example:&lt;br /&gt;
* a module showing a list of upcoming events&lt;br /&gt;
* a module showing progress on a fund raising thermometer&lt;br /&gt;
* a module displaying the most recent donations, donations at certain levels, total donations or other information&lt;br /&gt;
* a module containing a contribution button linked to a specific contribution page&lt;br /&gt;
* a plugin showing total giving in a specified time period (day, week, month, year)&lt;br /&gt;
* a donation reporting view with a layout that displays lists of donors in a given time period, sorted by giving level.&lt;br /&gt;
&lt;br /&gt;
Some will focus on the display of user level information such as:&lt;br /&gt;
* a module displaying an individual&#039;s information from a given profile with the option to update.&lt;br /&gt;
* a module displaying an individual&#039;s summary giving information. &lt;br /&gt;
* a module displaying events an individual is registered for&lt;br /&gt;
* a plugin showing a user&#039;s information for a give field&lt;br /&gt;
* a plugin showing a user&#039;s total giving or giving in a given fiscal year&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Elin Waring (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, CiviCRM Framework, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Improved Error Handling=====&lt;br /&gt;
Create a component that will handle standard errors (ex. 404) so that headers are sent for the error code, but the error is trapped and redirected from the error.php file back to Joomla! &lt;br /&gt;
where it can be handled on a normal webpage.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Media Manager Improvements=====&lt;br /&gt;
The following improvements could be made to the current Joomla! Media Manager:&lt;br /&gt;
* Support content expiration (image/video) that allow user to set start – end date of each content which to be lived on site&lt;br /&gt;
**e.g. food image can be lived on site only 3 months, due to the license issue, so we need to take out the image and replace it with other default image or leave it blank&lt;br /&gt;
* Support user friendly input interface which allow user to complete content input in 1 screen (Text input, Multiple images/videos upload, Tagging, Mapping related content and so on)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Whiteboard/Wiki Component=====&lt;br /&gt;
Joomla comes with a few core components, and a Whiteboard/Wiki component would be a great addition to those.  It would be a basic implementation of the feature with the following possible features:&lt;br /&gt;
&lt;br /&gt;
* Provide a simple interface for editing (perhaps allowing multiple users to edit at once or locking down while under edit)&lt;br /&gt;
* Ability to restrict user access on posting&lt;br /&gt;
* Organize whiteboards&lt;br /&gt;
* Keep revisions in archive&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Jeremy Wilken (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Core Extensions Semantic and SEO Updates=====&lt;br /&gt;
The core extensions can be modified to produce semantic markup.  The tables should be replaced withmore appropriate containers for the contents.  This would not replace the need for template overrides, but rather make the default output stronger to build upon.  The output should also be arranged to best suit the content in the majority of situations.  Perhaps also a basic system reset CSS file would need to be developed to set some of the basic layout items, also to be easily disabled.&lt;br /&gt;
&lt;br /&gt;
The core output cannot be replaced completely without causing many 1.5 templates to break.  Therefore it would be necessary to&lt;br /&gt;
either have a legacy mode for templates or to automatically detect the template type (1.5 or 1.6) in order to provide the right output. &lt;br /&gt;
&lt;br /&gt;
Modules can be defined in a template to have pretty much any name they wish.  While this is great for template makers, it would be good to have at least some guidelines about naming modules.  Module names like user1 and user2 are essentially useless semantically, and to administrators of a site.  Some templates are designed for any module to fit in any position, but in general there are at least a handful that are designed with the menu, footer, and other aspects in mind.  Perhaps Joomla can create some guidelines (not requirements) related to this.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Templates for Joomla 1.6=====&lt;br /&gt;
Each version of Joomla comes with a set of templates, and they are updated with each major release.  1.6 is currently in development, and will need a new set of templates.  These templates should:&lt;br /&gt;
&lt;br /&gt;
* Employ semantic markup&lt;br /&gt;
* Provide a fresh look&lt;br /&gt;
* Be flexible to accommodate all kinds of content&lt;br /&gt;
* Come with example core overrides, perhaps for major extensions as well&lt;br /&gt;
* Should have a light memory print&lt;br /&gt;
* Comply with accessibility standards&lt;br /&gt;
* Validate&lt;br /&gt;
* Be easily modified and built upon&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Allan Walker (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, HTML, CSS, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Administrator and Usability Improvements=====&lt;br /&gt;
There are many little improvements that would help with general usability and administration for Joomla users. &lt;br /&gt;
&lt;br /&gt;
* Assigning modules in the Menu Manager&lt;br /&gt;
* Assigning links from Article Manager&lt;br /&gt;
* Copying templates&lt;br /&gt;
* Easily change Control Panel icons&lt;br /&gt;
* Improved Front Page article handling&lt;br /&gt;
* Improve internal mailing system and its notifications&lt;br /&gt;
* Make Control Panel in the menu a one click step, not hover then select&lt;br /&gt;
* Have the main tabs linked in case they are clicked, such as Content goes to Articles&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, Javascript, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Content Item Templates=====&lt;br /&gt;
&lt;br /&gt;
Easy page layout template system so that editors can choose from a pre-defined range of layouts.&lt;br /&gt;
This could be useful when certain pages all require the Name, Date, Author name, photo in a certain area, tagline etc.&lt;br /&gt;
Content item templates could be defined, then saved and authors could then choose from this list, helping sites with larger article content to retain continuity throughout their areas of pages.&lt;br /&gt;
&lt;br /&gt;
=====XML DTDs and XML Schemas for all XML files used in Joomla=====&lt;br /&gt;
&lt;br /&gt;
XML files are used in various places throughout Joomla.  Historically, the installer XML files have had DTDs against which they can be validated.  However, there are a number of known issues with these DTDs and there are other XML files used in Joomla that have never had DTDs written at all.  Furthermore, DTDs can only catch certain classes of errors within XML files and we need to look beyond DTDs to look at XML Schemas to catch other classes of errors.&lt;br /&gt;
&lt;br /&gt;
* Review all XML files used in Joomla and list them on the documentation wiki.&lt;br /&gt;
* Create a collection of test cases of XML files that will fail in Joomla and which should, therefore, fail to validate in some way.&lt;br /&gt;
* Where DTDs already exist, review, revise and update them as necessary.&lt;br /&gt;
* Create DTDs for those XML files that don&#039;t currently have one.&lt;br /&gt;
* Create patches for the core code (target 1.6?) to ensure that valid DTDs can be written for all XML files.&lt;br /&gt;
* All current DTDs force some XML elements to appear in a particular order which is neither enforced nor required by Joomla.  If possible, solve this problem so that designers and developers can place those elements in arbitrary order in the XML and still have the XML files validate against the DTDs.&lt;br /&gt;
* Create XML Schemas for all XML files used in Joomla.&lt;br /&gt;
* Ensure that DTDs and XML Schemas are well commented and/or thoroughly documented.&lt;br /&gt;
* Write comprehensive documentation covering the process of validating an XML file against both DTDs and XML Schemas.  Some documentation already exists that can be used as the basis for this.&lt;br /&gt;
* Expand the collection of test cases to include XML files that will not fail in Joomla but which may or may not fail to validate against the DTDs or XML Schemas.&lt;br /&gt;
* Ensure that the test case collection is properly documented so that changes to Joomla and/or the DTDs and XML Schemas can be properly tested.&lt;br /&gt;
&lt;br /&gt;
=====Alternate Component for Editing Articles=====&lt;br /&gt;
The idea is to have an component on admin side that allows articles to be edited based on the frontend navigation, Something similar to [http://thewebkitchen.co.uk/typo3temp/pics/a367ba3c04.jpg Typo3 admin]implementation (just 2 and 3 in the image).&lt;br /&gt;
&lt;br /&gt;
=====Magento eCommerce Platform integration into Joomla!=====&lt;br /&gt;
Magento is an actively developing award winning open source eCommerce platform. The idea is to develop a bridge between Magento and Joomla.&lt;br /&gt;
More info about Magento can be found from the following websites:&lt;br /&gt;
[http://www.magentocommerce.com/ Magento official website]&lt;br /&gt;
[http://demo.magentocommerce.com/ Magento online demo]&lt;br /&gt;
[http://www.magentocommerce.com/media/tour/magento-tour-store/view Store tour video]&lt;br /&gt;
[http://www.magentocommerce.com/media/tour/magento-tour-admin/view Admin tour video]&lt;br /&gt;
[http://www.infoworld.com/slideshow/2008/08/168-best_of_open_so-8.html Best of Open Source Enterprise Applications]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySQL, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Xinha WYSIWYG editor for Joomla! frontend and backend editing=====&lt;br /&gt;
Xinha is a powerful WYSIWYG editor, which supports plugins. So administrator can customize their working environment and even write their own plugins.&lt;br /&gt;
The idea is to integrate Xinha into Joomla! with ability of editing content from frontend and backend. The editor environment must be configurable.&lt;br /&gt;
You can try [http://edo.webmaster.am/projects Xinha editor plugin demo] for Joomla! 1.5.&lt;br /&gt;
More info about Xinha can be found from the following websites:&lt;br /&gt;
[http://xinha.webfactional.com/ Xinha official website]&lt;br /&gt;
[http://xinha.raimundmeyer.de/x_examples/ext_example.html Xinha demo]&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, JavaScript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;/div&gt;</summary>
		<author><name>Edo888</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived:Summer_of_Code_2009_Project_Ideas&amp;diff=13555</id>
		<title>Archived:Summer of Code 2009 Project Ideas</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived:Summer_of_Code_2009_Project_Ideas&amp;diff=13555"/>
		<updated>2009-03-16T21:15:26Z</updated>

		<summary type="html">&lt;p&gt;Edo888: Magento eCommerce Platform integration into Joomla!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Gsoc_2009_logo.png|right]]&lt;br /&gt;
&lt;br /&gt;
===Welcome!===&lt;br /&gt;
Welcome to the Joomla! Google Summer of Code (GSoC) 2009 project ideas page. As we move forward with the 2009 version of the Joomla! GSoC, we will use this page to develop possible project ideas. Please note that anyone who is interested can participate in this process. You do not have to be a GSoC student or mentor to suggest possible project ideas. Thanks!&lt;br /&gt;
&lt;br /&gt;
===Ideas===&lt;br /&gt;
&lt;br /&gt;
=====Advanced Poll/Survey Suite=====&lt;br /&gt;
&lt;br /&gt;
The core polls extension has been removed from Joomla! 1.6. Develop a fully featured poll/survey suite that will allow relatively simple user polls and the collection of complex anonymized survey data authenticated against either the Joomla users database or an external database.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Wilco Jansen (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills:&#039;&#039;&#039; Joomla CMS framework, MVC, PHP 5.2, MySQL&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; medium&lt;br /&gt;
&lt;br /&gt;
=====Full Frontend Editing=====&lt;br /&gt;
&lt;br /&gt;
Right now we only have frontend editing for articles, there are a few improvements I can propose&lt;br /&gt;
* Article editing is done in a modal popup&lt;br /&gt;
* Edit module content and params from frontend (Editing done via a modal popup?)&lt;br /&gt;
* Article Title - edit in place&lt;br /&gt;
* Create some kind of a library function which allows easy frontend editing for any value (This will need some thought)&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Akarawuth Tamrareang (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; Javascript, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Hard&lt;br /&gt;
&lt;br /&gt;
=====Template Manager Improvements/Advanced Template Manager=====&lt;br /&gt;
&lt;br /&gt;
Extend the template manager so that it providers an better environment for template creation and modification.  Improvements might include: &lt;br /&gt;
*expanded tool bar, including copy for a complete template&lt;br /&gt;
*access to the media manager&lt;br /&gt;
*access to all template files (not just css and index.php)&lt;br /&gt;
*override manager&lt;br /&gt;
*integration of an editor with code highlighting (such as codepress)&lt;br /&gt;
*support for template parameter groups&lt;br /&gt;
*remove hard-wired references to template name from the core templates (so the new copy function will work as expected)&lt;br /&gt;
*&amp;quot;export&amp;quot; button on the toolbar which will create a zip package file containing the template (also fixes any errors in the templateDetails.xml file as it goes).&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Mark Dexter (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Work Flow Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 Extension to flexibly manage workflow for com_content. &lt;br /&gt;
Ideally it should be extensible to other components, but com_content should be used as the proof of concept.&lt;br /&gt;
Work flow should manage the publication process, including assignment of editors or publishers to specific content items, notifications of relevant actions to specific individuals or groups, change of status to block author editing of published work.&lt;br /&gt;
&lt;br /&gt;
As much as possible administrators should be able to construct their own work flows.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mentor:&#039;&#039;&#039; Edvard Ananyan (subject to change)&lt;br /&gt;
:&#039;&#039;&#039;Skills Needed:&#039;&#039;&#039; PHP, MySql, Joomla! Framework&lt;br /&gt;
:&#039;&#039;&#039;Difficulty:&#039;&#039;&#039; Medium&lt;br /&gt;
&lt;br /&gt;
=====Page Versioning Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 content versioning extension with the goal that this work could be integrated into the core Joomla CMS for future releases.&lt;br /&gt;
The Page Versioning Extension will allow the ability for frontend and backend content users to be able to save and re-publish/revert previously saved versions of content items that they have access to.&lt;br /&gt;
&lt;br /&gt;
Further user permissions could be introduced in order to restrict access to this overall feature.&lt;br /&gt;
&lt;br /&gt;
Features could include a visual and html code difference between the current and previously saved versions, as well as general searching data such as dates and time of previous saved entries of that content.&lt;br /&gt;
&lt;br /&gt;
=====Taxonomy Extension=====&lt;br /&gt;
&lt;br /&gt;
Create a 1.6 Taxonomy extension with the goal that this work could be integrated into the core Joomla CMS for future releases.&lt;br /&gt;
The Taxonomy Extension will allow the ability to organise content for classification, improving on the current Section and Categories classification.&lt;br /&gt;
&lt;br /&gt;
Taxonomy is a vital feature of modern CMS solutions, evolving from the previous &amp;quot;pigeonholeing&amp;quot; of a content item. &lt;br /&gt;
Full organisational structures and multi tagging of content could be included, including powerful search functions of content under  those classifications.&lt;br /&gt;
&lt;br /&gt;
Taxonomy is a missing feature in Joomla!, which another open-source competitor product currently offers. We have seen a number of opportunities when Joomla! misses out on being the chosen option for a CMS due to the lacking of this feature.&lt;br /&gt;
&lt;br /&gt;
=====Keywords Management Extension=====&lt;br /&gt;
Keywords in articles are an important part of many Joomla! sites. They are used for page rankings but also can be used with Related Articles modules and component extensions. In this capacity, they provide a way to relate articles that is much more flexible and free-form than the built-in Section / Category / Article hierarchy.&lt;br /&gt;
&lt;br /&gt;
Currently in Joomla!, keywords are entered when editing each individual article. This has several disadvantages, including:&lt;br /&gt;
* You cannot see already existing keywords when entering in keywords for an article.&lt;br /&gt;
* You cannot see existing articles that are already associated with a keyword.&lt;br /&gt;
* It is difficult to be consistent when using keywords. For example, should it be capitalized, singular or plural (&amp;quot;Dog&amp;quot; or &amp;quot;Dogs&amp;quot;), and so on.&lt;br /&gt;
&lt;br /&gt;
To deal with these issues, a back-end Keyword Management extension is proposed. This extension would allow the following capabilities:&lt;br /&gt;
* A management screen showing a list of all keywords currently in use. This would provide the ability to drill into any keyword and see all articles that use this keyword.&lt;br /&gt;
* A keyword picker screen. This would allow an author to pick keywords for an article from a list of existing keywords. This would make it easier to ensure consistency in spelling, capitalization, and usage between keywords. This screen would also allow the author to add a new keyword to the list.&lt;br /&gt;
* The ability to do global search and replace on keywords.&lt;br /&gt;
* The ability to see keywords ranked by frequency of use.&lt;br /&gt;
* The ability to list articles to which no keywords have been assigned.&lt;br /&gt;
&lt;br /&gt;
=====User-Defined List and Blog Layout Extension=====&lt;br /&gt;
Currently in Joomla!, there are built-in Menu Items for list and blog layouts for Sections and Categories. However, the way a list of articles is selected is tightly bound with the way the list is displayed on the page. In theory, you should be able to have a list or blog layout that shows any selection of articles.&lt;br /&gt;
&lt;br /&gt;
To provide this capability, an extension is proposed that would provide layouts similar to the current list and blog layouts. However, the extension would be designed so that the list of articles is provided by a plugin instead of being integrated into the layout. Example plugins could be provided to mimic the current Section, Article, and Front Page layouts. However, the power of this extension is that the user could add their own plugin that would provide a list of articles using any type of query. This list of articles would then feed into the built-in layouts provided by the extension to turn the raw article list into the desired layout.&lt;br /&gt;
&lt;br /&gt;
=====Improve Unit Test Coverage=====&lt;br /&gt;
Work has been started on this but the number of unit tests currently in use is small. We need to add many more unit tests. Also, currently unit tests are only able to be used for class methods. We have no way, for example, to test page layouts or module insertion into templates. Part of this project could be to research automated testing solutions to test the complete HTML code sent to the browser. This would allow end-to-end automated testing.&lt;br /&gt;
&lt;br /&gt;
=====Web Based Unit Test Runner=====&lt;br /&gt;
Write a test runner that makes it easy to run unit tests from a web browser. The existing unit test framework is based on running PHP from the command line. While this is essential for integrating testing into the build and release process, it&#039;s a barrier to using tests during development.&lt;br /&gt;
&lt;br /&gt;
This project involves adapting web-based test runners provided by PHPUnit to support the &amp;quot;Joomla!&amp;quot; testing environment.&lt;br /&gt;
&lt;br /&gt;
Develop and implement a method to allow organizations to update their own CiviCRM records from the Joomla! front end.&lt;br /&gt;
&lt;br /&gt;
=====CiviCRM Integration: Allow Organizational Updating From Joomla! Front End=====&lt;br /&gt;
Civicrm [1] is a powerful constituent relationship management system designed for the not for profit/nongovernmental organizations. It currently integrates with Joomla! and the 2.1 version is native to Joomla! 1.5.&lt;br /&gt;
&lt;br /&gt;
Constituent records in CiviCRM may be for individuals, households and organizations. Currently individuals can up date their records from the Joomla! front end if administrators allow it. However, many organizations have other organizations as contituents and currently there is no way for organizational (or household) records to be updated in the front end.&lt;br /&gt;
&lt;br /&gt;
For this project, the student will design and implement a method allowing organizations to update their records by exposing the organizational api to the Joomla! front end and developing appropriate access control and activity tracking.&lt;br /&gt;
&lt;br /&gt;
For this project the student should plan on interacting closely with both the Joomla! and CiviCRM teams.&lt;br /&gt;
&lt;br /&gt;
=====Civicrm Integration: Develop Front End Extensions for CiviCRM Data=====&lt;br /&gt;
Develop a suite of front end Joomla! 1.5 extensions (modules, plugins and a Joomla! style MVC frontend component for CiviCRM.&lt;br /&gt;
&lt;br /&gt;
[Civicrm : http://civicrm.org] is a powerful constituent relationship management system designed for the not for profit/nongovernmental organizations. It currently integrates with Joomla! 1.0.x and 1.5 in legacy mode, and  and the 2.1 version will be native to Joomla! 1.5.&lt;br /&gt;
&lt;br /&gt;
Thus far most functionality for civicrm in Joomla! has focused on the administrator. This project will focus on fuller development of the CiviCRM Joomla! Front end.&lt;br /&gt;
&lt;br /&gt;
This development might include modules, plugins, and a MVC front end component which will allow exposure of various CiviCRM APIs. &lt;br /&gt;
&lt;br /&gt;
Some of these will focus on the display of and interaction with general information, for example:&lt;br /&gt;
* a module showing a list of upcoming events&lt;br /&gt;
* a module showing progress on a fund raising thermometer&lt;br /&gt;
* a module displaying the most recent donations, donations at certain levels, total donations or other information&lt;br /&gt;
* a module containing a contribution button linked to a specific contribution page&lt;br /&gt;
* a plugin showing total giving in a specified time period (day, week, month, year)&lt;br /&gt;
* a donation reporting view with a layout that displays lists of donors in a given time period, sorted by giving level.&lt;br /&gt;
&lt;br /&gt;
Some will focus on the display of user level information such as:&lt;br /&gt;
* a module displaying an individual&#039;s information from a given profile with the option to update.&lt;br /&gt;
* a module displaying an individual&#039;s summary giving information. &lt;br /&gt;
* a module displaying events an individual is registered for&lt;br /&gt;
* a plugin showing a user&#039;s information for a give field&lt;br /&gt;
* a plugin showing a user&#039;s total giving or giving in a given fiscal year&lt;br /&gt;
&lt;br /&gt;
=====Improved Error Handling=====&lt;br /&gt;
Create a component that will handle standard errors (ex. 404) so that headers are sent for the error code, but the error is trapped and redirected from the error.php file back to Joomla! &lt;br /&gt;
where it can be handled on a normal webpage.&lt;br /&gt;
&lt;br /&gt;
=====Media Manager Improvements=====&lt;br /&gt;
The following improvements could be made to the current Joomla! Media Manager:&lt;br /&gt;
* Support content expiration (image/video) that allow user to set start – end date of each content which to be lived on site&lt;br /&gt;
**e.g. food image can be lived on site only 3 months, due to the license issue, so we need to take out the image and replace it with other default image or leave it blank&lt;br /&gt;
* Support user friendly input interface which allow user to complete content input in 1 screen (Text input, Multiple images/videos upload, Tagging, Mapping related content and so on)&lt;br /&gt;
&lt;br /&gt;
=====Whiteboard/Wiki Component=====&lt;br /&gt;
Joomla comes with a few core components, and a Whiteboard/Wiki component would be a great addition to those.  It would be a basic implementation of the feature with the following possible features:&lt;br /&gt;
&lt;br /&gt;
* Provide a simple interface for editing (perhaps allowing multiple users to edit at once or locking down while under edit)&lt;br /&gt;
* Ability to restrict user access on posting&lt;br /&gt;
* Organize whiteboards&lt;br /&gt;
* Keep revisions in archive&lt;br /&gt;
&lt;br /&gt;
=====Core Extensions Semantic and SEO Updates=====&lt;br /&gt;
The core extensions can be modified to produce semantic markup.  The tables should be replaced withmore appropriate containers for the contents.  This would not replace the need for template overrides, but rather make the default output stronger to build upon.  The output should also be arranged to best suit the content in the majority of situations.  Perhaps also a basic system reset CSS file would need to be developed to set some of the basic layout items, also to be easily disabled.&lt;br /&gt;
&lt;br /&gt;
The core output cannot be replaced completely without causing many 1.5 templates to break.  Therefore it would be necessary to&lt;br /&gt;
either have a legacy mode for templates or to automatically detect the template type (1.5 or 1.6) in order to provide the right output. &lt;br /&gt;
&lt;br /&gt;
Modules can be defined in a template to have pretty much any name they wish.  While this is great for template makers, it would be good to have at least some guidelines about naming modules.  Module names like user1 and user2 are essentially useless semantically, and to administrators of a site.  Some templates are designed for any module to fit in any position, but in general there are at least a handful that are designed with the menu, footer, and other aspects in mind.  Perhaps Joomla can create some guidelines (not requirements) related to this.&lt;br /&gt;
&lt;br /&gt;
=====Templates for Joomla 1.6=====&lt;br /&gt;
Each version of Joomla comes with a set of templates, and they are updated with each major release.  1.6 is currently in development, and will need a new set of templates.  These templates should:&lt;br /&gt;
&lt;br /&gt;
* Employ semantic markup&lt;br /&gt;
* Provide a fresh look&lt;br /&gt;
* Be flexible to accommodate all kinds of content&lt;br /&gt;
* Come with example core overrides, perhaps for major extensions as well&lt;br /&gt;
* Should have a light memory print&lt;br /&gt;
* Comply with accessibility standards&lt;br /&gt;
* Validate&lt;br /&gt;
* Be easily modified and built upon&lt;br /&gt;
&lt;br /&gt;
=====Administrator and Usability Improvements=====&lt;br /&gt;
There are many little improvements that would help with general usability and administration for Joomla users. &lt;br /&gt;
&lt;br /&gt;
* Assigning modules in the Menu Manager&lt;br /&gt;
* Assigning links from Article Manager&lt;br /&gt;
* Copying templates&lt;br /&gt;
* Easily change Control Panel icons&lt;br /&gt;
* Improved Front Page article handling&lt;br /&gt;
* Improve internal mailing system and its notifications&lt;br /&gt;
* Make Control Panel in the menu a one click step, not hover then select&lt;br /&gt;
* Have the main tabs linked in case they are clicked, such as Content goes to Articles&lt;br /&gt;
&lt;br /&gt;
=====Content Item Templates=====&lt;br /&gt;
&lt;br /&gt;
Easy page layout template system so that editors can choose from a pre-defined range of layouts.&lt;br /&gt;
This could be useful when certain pages all require the Name, Date, Author name, photo in a certain area, tagline etc.&lt;br /&gt;
Content item templates could be defined, then saved and authors could then choose from this list, helping sites with larger article content to retain continuity throughout their areas of pages.&lt;br /&gt;
&lt;br /&gt;
=====XML DTDs and XML Schemas for all XML files used in Joomla=====&lt;br /&gt;
&lt;br /&gt;
XML files are used in various places throughout Joomla.  Historically, the installer XML files have had DTDs against which they can be validated.  However, there are a number of known issues with these DTDs and there are other XML files used in Joomla that have never had DTDs written at all.  Furthermore, DTDs can only catch certain classes of errors within XML files and we need to look beyond DTDs to look at XML Schemas to catch other classes of errors.&lt;br /&gt;
&lt;br /&gt;
* Review all XML files used in Joomla and list them on the documentation wiki.&lt;br /&gt;
* Create a collection of test cases of XML files that will fail in Joomla and which should, therefore, fail to validate in some way.&lt;br /&gt;
* Where DTDs already exist, review, revise and update them as necessary.&lt;br /&gt;
* Create DTDs for those XML files that don&#039;t currently have one.&lt;br /&gt;
* Create patches for the core code (target 1.6?) to ensure that valid DTDs can be written for all XML files.&lt;br /&gt;
* All current DTDs force some XML elements to appear in a particular order which is neither enforced nor required by Joomla.  If possible, solve this problem so that designers and developers can place those elements in arbitrary order in the XML and still have the XML files validate against the DTDs.&lt;br /&gt;
* Create XML Schemas for all XML files used in Joomla.&lt;br /&gt;
* Ensure that DTDs and XML Schemas are well commented and/or thoroughly documented.&lt;br /&gt;
* Write comprehensive documentation covering the process of validating an XML file against both DTDs and XML Schemas.  Some documentation already exists that can be used as the basis for this.&lt;br /&gt;
* Expand the collection of test cases to include XML files that will not fail in Joomla but which may or may not fail to validate against the DTDs or XML Schemas.&lt;br /&gt;
* Ensure that the test case collection is properly documented so that changes to Joomla and/or the DTDs and XML Schemas can be properly tested.&lt;br /&gt;
&lt;br /&gt;
=====Alternate Component for Editing Articles=====&lt;br /&gt;
The idea is to have an component on admin side that allows articles to be edited based on the frontend navigation, Something similar to [http://thewebkitchen.co.uk/typo3temp/pics/a367ba3c04.jpg Typo3 admin]implementation (just 2 and 3 in the image).&lt;br /&gt;
&lt;br /&gt;
=====Magento eCommerce Platform integration into Joomla!=====&lt;br /&gt;
Magento is an actively developing award winning open source eCommerce platform. The idea is to develop a bridge between Magento and Joomla.&lt;br /&gt;
More info about Magento can be found:&lt;br /&gt;
[http://www.magentocommerce.com/ Magento official website]&lt;br /&gt;
[http://demo.magentocommerce.com/ Magento online demo]&lt;br /&gt;
[http://www.magentocommerce.com/media/tour/magento-tour-store/view Store tour video]&lt;br /&gt;
[http://www.magentocommerce.com/media/tour/magento-tour-admin/view Admin tour video]&lt;br /&gt;
[http://www.infoworld.com/slideshow/2008/08/168-best_of_open_so-8.html Best of Open Source Enterprise Applications]&lt;/div&gt;</summary>
		<author><name>Edo888</name></author>
	</entry>
</feed>