GSOC 2016 Project Ideas: Difference between revisions
From Joomla! Documentation
Puneet.0191 (talk | contribs) |
Puneet.0191 (talk | contribs) |
||
| Line 385: | Line 385: | ||
---- | ---- | ||
====Project VIII: | ====Project VIII: Browser Automated Tests for Joomla! CMS (covering Users and Content features) ==== | ||
<table border="0" style="width:100%"> | <table border="0" style="width:100%"> | ||
| Line 392: | Line 392: | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td> | <td>The idea behind the project is to create the system tests for joomla User Management and Content features(For Joomla 3.x). The suggested technology for developing the tests layer is the Codeception Open Source Testing Framework (more info at http://codeception.com). | ||
Test will have to cover the User cases of: creating, editing, removing, publishing articles of content and being modified by different user roles. Also the student is asked to create the integration tests that links the Administrator, the Frontend (by creating menu items) and the Modules and Plugins applications that are related to the Users and Content Features. For example: create an article in frontend, listing all the featured articles, show the articles of an specific category or create a menu item that links to an article. | |||
Joomla is a Mobile Ready CMS, therefore the tests will have to cover different screen resolutions and the different positions of the elements. | |||
The student will have to study the old system tests structure built in the Nearsoft PHP Library and propose a new structure for testing the Joomla Core. The resulting tests need to accomplish the goal of being easily maintainable while being well architectured dividing the responsibilities in scenarios, Pages and Step objects. The mentors will provide the student with code samples that will help the student to achieve the mentioned goals. | |||
To read more about using Codeception with Joomla! Read here: https://docs.joomla.org/Testing_Joomla_Extensions_with_Codeception</td> | |||
</tr> | </tr> | ||
</table> | </table> | ||
| Line 400: | Line 408: | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td> | <td>At the end of the project the student should create a Pull request against the Joomla-cms repository (https://github.com/joomla/joomla-cms) providing the system tests for the Users and Content features.</td> | ||
</tr> | </tr> | ||
</table> | </table> | ||
| Line 408: | Line 416: | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td> | <td>PHP, object-oriented programming, Joomla CMS (from a user point of view), HTML and basic Git usage. | ||
Value will be given to these candidates that have basic understanding of Selenium, xPath, Codeception framework, Javascript and Knowledge on linux console and Docker Containers. | |||
Is a must for being a candidate for this project to proof that you have been able to run in your local machine the current Webdriver Test Suite. See instructions at https://github.com/joomla-extensions/weblinks#tests</td> | |||
</tr> | </tr> | ||
</table> | </table> | ||
| Line 416: | Line 428: | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td> | <td>Medium to Hard</td> | ||
</tr> | </tr> | ||
</table> | </table> | ||
| Line 424: | Line 436: | ||
</tr> | </tr> | ||
<tr> | <tr> | ||
<td> | <td>Javier Gomez, Yves Hoppe</td> | ||
</tr> | </tr> | ||
</table> | </table> | ||
| Line 430: | Line 442: | ||
[[Image:Gsoc2016.png|50px|center]] | [[Image:Gsoc2016.png|50px|center]] | ||
---- | ---- | ||
====Project IX: Name ==== | ====Project IX: Name ==== | ||
Revision as of 06:06, 20 February 2016

Welcome to GSoC 2016 Ideas Page
Welcome to the Joomla! Google Summer of Code (GSoC) 2016 project ideas page. As we move forward with the 2016 version of the Joomla! GSoC, we will post ideas that have been submitted to the GSoC Team below.
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!
If you are interested in participating as a student please review the materials on applying that are available at Google. We strongly encourage you to ask questions about process and ideas on our joomla-gsoc mailing list.
Guidelines for sending proposal are present on our GSoC Home Page
Find examples of other years at https://docs.joomla.org/GSOC_2014_Project_Ideas
Idea Pool
Joomla CMS Ideas
Project I: Improved multi-lingual content management
| Project Description: |
|---|
| The idea is that when users want to translate content items on a multi-language site, they can have the articles side-by-side (dual-pane). This way you don't have to switch back and forth between articles. Respect also the ACL settings. So someone assigned for Dutch cannot translate any French documents for example. |
| Expected Results: |
|---|
| A dual-pane translation screen An ACL setting for allowing access to language based articles |
| Knowledge Prerequisite: |
|---|
| PHP, Joomla CMS multi-lingual system, JavaScript, Joomla ACL |
| Difficulty: |
|---|
| Medium to Hard |
| Possible mentors: |
|---|
| Jean-Marie Simonet, Achal Aggarwal |

| Brief explanation: |
|---|
| There is currently no easy way to share a draft version of an unpublished article with people who do not have Administrator access. This project would add elements to the Articles: Edit user interface that would support the generation of a shareable link that would allow those with the link to view a draft version of an article. This project would be a complete new feature that could be merged into Joomla 3. |
| Expected Results: |
|---|
| The details of the user interface would be subject to change/discussion, but could look something like the following:
A new "Save as Draft" toolbar button on the Articles: Edit page. When clicked the article will be saved as a draft in the content version history. The version history page will need to be modified to show this special version of the article. A new "Share" toolbar button on the same page. When clicked, the draft version of the article opens in a new tab with a special URL which can be copy-pasted so that the draft may be shared prior to publication. Bonus points for adding a "Preview" toolbar button that will open a new browser tab with a preview of the article currently being edited, without needing to save the article first. Code must be accompanied by documentation in the form of wiki pages and full help screens. Code must be accompanied by appropriate tests. |
| Knowledge Prerequisite: |
|---|
| PHP, Joomla CMS |
| Difficulty: |
|---|
| Medium |
| Possible mentors: |
|---|
| NA |

Project III: Administrator Menu Editor
| Brief explanation: |
|---|
| This has been discussed at some length here: https://issues.joomla.org/tracker/joomla-cms/5492 |
| Expected Results: |
|---|
| An appropriately coded extension that could be merged into Joomla 3.x.
Code must be accompanied by documentation in the form of wiki pages and full help screens. Code must be accompanied by appropriate tests. |
| Knowledge Prerequisite: |
|---|
| PHP, Joomla CMS |
| Difficulty: |
|---|
| Medium |
| Possible mentors: |
|---|
| Tharuna Balaji |

Project IV: Embedded Content Done Right!
| Brief explanation: |
|---|
| Develop a unified framework for adding any form of embedded content. A standardised syntax for embedded content tags would be used to call a content plugin that would parse the tag and call plugins in a new embed group to return the appropriate embed code. This builds on the idea of oembed(http://oembed.com/) but with the capability of overcoming the problems of invalid content associated with some oembed providers. It is not restricted to oembed providers and can be used to embed any kind of content for which an embed plugin can be written. Support for new data sources can be added by writing an embed plugin, making it easy for site builders to integrate new embed sources to their sites. We would gain a powerful, extendable method of embedding content anywhere that supports content plugins. |
| Expected Results: |
|---|
| An appropriately coded set of plugins that could be merged into Joomla 3.x, including a selection of embed extensions for popular services such as YouTube, Vimeo, Slideshare, Twitter, Facebook, MediaWiki, etc.
Bonus points for writing a JavaScript extension for TinyMCE to make it even easier to embed content. Code must be accompanied by documentation in the form of wiki pages and full help screens. Code must be accompanied by appropriate tests. |
| Knowledge Prerequisite: |
|---|
| PHP, Joomla CMS |
| Difficulty: |
|---|
| Medium |
| Possible mentors: |
|---|
| Ashwin Date, Ashan Fernando |

Project V: NoSQL Database Driver (Redis, MongoDB)
| Brief explanation: |
|---|
| The goal of this is project is to add a lightweight database driver for the most commonly used NoSQL databases (Redis, MongoDB) to the Joomla CMS, and not to write yet another ORM, that is outside the scope of this project dued to the 8 weeks timeframe. |
| Important Links: |
|---|
| The original pull request: “implementation of Redis caching” https://github.com/joomla/joomla-cms/pull/3615 merged on Joomla 3.4 |
| An open pull request “Redis sessions handler” https://github.com/joomla/joomla-cms/pull/7659 |
| The PHP Driver https://github.com/phpredis/phpredis |
| Expected Results: |
|---|
| Starting from version 3.4, Joomla already has a Redis cache management.
The student is expected to extend the actual cache and session management allowing the storage with the NoSQL (mongodb, redis). As a wanted side effect, the code written (drivers) should became an easy starting point for developers, to write extensions that can store data on NoSQL databases. |
| Knowledge Prerequisite: |
|---|
| Joomla, PHP, SQL, Nosql, data model(relational, key-value, document), Redis, MongoDB, Github |
| Difficulty: |
|---|
| Medium to Hard |
| Possible mentors: |
|---|
| Nicola Galgano, Achal Aggarwal |

Project VI: Improve Acceptance Tests with PageObjects
| Brief explanation: |
|---|
| Joomla does currently not have a viable system test coverage. That leads to regression bugs all the time. The project needs acceptance tests urgently. Using PageObjects as the main concept in this test class will enable us to re-use the tests in future versions, thus to provide better backward compatibility between major versions. |
| Expected Results: |
|---|
| Coverage of the backend pages with PageObjects, Coverage of core frontend pages with PageObjects, A reasonable coverage of the backend with system tests |
| Knowledge Prerequisite: |
|---|
| PHP, OOP. Basic knowledge about Docker and CodeCeption would be an advantage. |
| Difficulty: |
|---|
| Easy |
| Possible mentors: |
|---|
| Niels Braczek |

Project VII: Create Menu Item From Article or Other Component
| Brief explanation: |
|---|
| Return to the old option to Link Menu (V! 1.0.11) facilitating the creation of menus from the creation of an article. Bolder would allow this menu created from other components, such as index search, contact, and even extensions. |
| Expected Results: |
|---|
| 1. Could be a plugin, with an option to choose which parent menu item and the specific content would be linked.
2. To save the item, add the field to the menu. 3. There could be a inputText to enter the title menu |
| Knowledge Prerequisite: |
|---|
| PHP, OOP, Javascript |
| Difficulty: |
|---|
| Easy |
| Possible mentors: |
|---|
| Pedro Renan |

Project VIII: Browser Automated Tests for Joomla! CMS (covering Users and Content features)
| Brief explanation: |
|---|
| The idea behind the project is to create the system tests for joomla User Management and Content features(For Joomla 3.x). The suggested technology for developing the tests layer is the Codeception Open Source Testing Framework (more info at http://codeception.com).
Test will have to cover the User cases of: creating, editing, removing, publishing articles of content and being modified by different user roles. Also the student is asked to create the integration tests that links the Administrator, the Frontend (by creating menu items) and the Modules and Plugins applications that are related to the Users and Content Features. For example: create an article in frontend, listing all the featured articles, show the articles of an specific category or create a menu item that links to an article. Joomla is a Mobile Ready CMS, therefore the tests will have to cover different screen resolutions and the different positions of the elements. The student will have to study the old system tests structure built in the Nearsoft PHP Library and propose a new structure for testing the Joomla Core. The resulting tests need to accomplish the goal of being easily maintainable while being well architectured dividing the responsibilities in scenarios, Pages and Step objects. The mentors will provide the student with code samples that will help the student to achieve the mentioned goals. To read more about using Codeception with Joomla! Read here: https://docs.joomla.org/Testing_Joomla_Extensions_with_Codeception |
| Expected Results: |
|---|
| At the end of the project the student should create a Pull request against the Joomla-cms repository (https://github.com/joomla/joomla-cms) providing the system tests for the Users and Content features. |
| Knowledge Prerequisite: |
|---|
| PHP, object-oriented programming, Joomla CMS (from a user point of view), HTML and basic Git usage.
Value will be given to these candidates that have basic understanding of Selenium, xPath, Codeception framework, Javascript and Knowledge on linux console and Docker Containers. Is a must for being a candidate for this project to proof that you have been able to run in your local machine the current Webdriver Test Suite. See instructions at https://github.com/joomla-extensions/weblinks#tests |
| Difficulty: |
|---|
| Medium to Hard |
| Possible mentors: |
|---|
| Javier Gomez, Yves Hoppe |

Project IX: Name
| Brief explanation: |
|---|
| Texto |
| Expected Results: |
|---|
| Texto |
| Knowledge Prerequisite: |
|---|
| Texto |
| Difficulty: |
|---|
| Texto |
| Possible mentors: |
|---|
| Texto |

Project X: Name
| Brief explanation: |
|---|
| Texto |
| Expected Results: |
|---|
| Texto |
| Knowledge Prerequisite: |
|---|
| Texto |
| Difficulty: |
|---|
| Texto |
| Possible mentors: |
|---|
| Texto |

Project XI: Name
| Brief explanation: |
|---|
| Texto |
| Expected Results: |
|---|
| Texto |
| Knowledge Prerequisite: |
|---|
| Texto |
| Difficulty: |
|---|
| Texto |
| Possible mentors: |
|---|
| Texto |

Project XII: Name
| Brief explanation: |
|---|
| Texto |
| Expected Results: |
|---|
| Texto |
| Knowledge Prerequisite: |
|---|
| Texto |
| Difficulty: |
|---|
| Texto |
| Possible mentors: |
|---|
| Texto |
| Idea Submitted By: |
|---|
| Texto |

Issue Tracker Ideas
In addition to the Joomla CMS, the Joomla Project also maintains a piece of software called "JIssue tracker". This is Joomla's issue tracker which handles how bugs in the CMS are identified and fixed. The Issue Tracker relies heavily on Joomla's own framework packages.
Visit the Joomla Issue Tracker
There are two major enhancement projects for the issue tracker. NOTE: Because each of these projects are 'smaller' in scale, students should plan to implement both features as a single project during the GSoC period.
For more information please see this mailing list discussion