GSOC 2018 Project Ideas: Difference between revisions

From Joomla! Documentation

Initial Submission of new ideas 2018
 
No edit summary
 
(11 intermediate revisions by 4 users not shown)
Line 1: Line 1:
== Welcome to GSoC 2018 Ideas Page ==
== Welcome to GSoC 2018 Ideas Page ==
Welcome to the [[GSOC_2018|Joomla Google Summer of Code (GSoC) 2018 project]] ideas page. As we move forward with the 2018 version of the Joomla GSoC, we will update this site with the ideas that have been submitted below.
Welcome to the [[GSOC_2018|Joomla Google Summer of Code (GSoC) 2018 project]] ideas page. As we move forward with the 2018 version of the Joomla GSoC, we will update this site with the ideas that have been submitted below.
{{tip|title= The application for ideas is currently open!}}


Please keep in mind that projects need to be realistic and something that is able to be functionally completed by a student working full time for about ten weeks.
Please keep in mind that projects need to be realistic and something that is able to be functionally completed by a student working full time for about ten weeks.
Line 15: Line 13:
If you have ideas for the Joomla Google Summer of Code Program please send them to us at this form:  
If you have ideas for the Joomla Google Summer of Code Program please send them to us at this form:  
<br><br>
<br><br>
::'''* [https://docs.google.com/forms/d/e/1FAIpQLSd8up4QNOwkY9It0sHVJ-bfCXaam2p7OUuSZSCiW4U4Ywq-Rg/viewform GSoC 2018 Idea submission form]'''
::'''* [https://docs.google.com/forms/d/e/1FAIpQLSdHOR7WRdORUQxz7XPRGudkTebsgDNWyKtDpCyYidTM6xbGnw/viewform GSoC 2018 Idea submission form]'''
<br>
<br>
There are some important guidelines to submit ideas, please read these carefully before adding your ideas:
There are some important guidelines to submit ideas, please read these carefully before adding your ideas:
Line 31: Line 29:
[[Image:Gsoc2016.png|50px|center]]
[[Image:Gsoc2016.png|50px|center]]


====Project I: Webservices in Joomla! ====
  <table border="0" style="width:100%">
  <tr>
    <th>'''Project Description:'''</th>
  </tr>
  <tr>
    <td>Continue the work done on implementing Webervices in Joomla 4 building on last years GSOC project. This will involve implementing a new Active Record Implementation for Joomla! CMS using inspiration from Laravel's Eloquent and Joomla's Model and Table class.</td>
  </tr>
</table> 
  <table border="0" style="width:100%">
  <tr>
    <th>'''Expected Results:'''</th>
  </tr>
  <tr>
    <td>There is a specification maintained at https://joomla-projects.github.io/gsoc18_webservices/?gsoc-2018/specification.md with full information of expected requirements and some project history.</td>
  </tr>
</table> 
  <table border="0" style="width:100%">
  <tr>
    <th>'''Knowledge Prerequisite:'''</th>
  </tr>
  <tr>
    <td>PHP, object-orientated programming, ideally some experience with the Joomla MVC stack. Before starting looking at the existing work done at https://github.com/joomla-projects/gsoc18_webservices</td>
  </tr>
</table>
<table border="0" style="width:100%">
  <tr>
    <th>'''Difficulty:'''</th>
  </tr>
  <tr>
    <td>Hard</td>
  </tr>
</table>
<table border="0" style="width:100%">
  <tr>
    <th>'''Mentors:'''</th>
  </tr>
  <tr>
    <td>[mailto:george.wilson@community.joomla.org George Wilson] </td>
  </tr>
</table>
[[Image:Gsoc2016.png|50px|center]]
----
====Project II: Automatic Multilanguage Associations ====
  <table border="0" style="width:100%">
  <tr>
    <th>'''Project Description:'''</th>
  </tr>
  <tr>
    <td>These are the Scenarios that need to be covered as part of the project for 2018 GSoC
      WHEN I save a new item (article, category, menuitem,...), that is assigned to the root language
      THEN All items of this type for the other installed languages are created including their associations
      AND put in the right place (Category, Menutree)
      WHEN installing a new Content Language,
      THEN Associated Menuitems, Categories and Articles are created automatically
      WHEN I access the Association Component
      THEN I have a better overview of the current state
      AND I can access global Parameters
      ONTOP:
      - I can define for every Content Language a Fallback language
      - I can switch a Website from en-GB to en-US or de-DE to de-AT without recreating items or without switching them one by one
      - Language Associations for Modules and Tags
    </td>
  </tr>
</table> 
  <table border="0" style="width:100%">
  <tr>
    <th>'''Expected Results:'''</th>
  </tr>
  <tr>
    <td>A better Workflow on Multilanguage sites</td>
  </tr>
</table> 
  <table border="0" style="width:100%">
  <tr>
    <th>'''Knowledge Prerequisite:'''</th>
  </tr>
  <tr>
    <td>PHP, Joomla Plugins, object-orientated programming, ideally some experience with the Joomla and Multilingual Associations.</td>
  </tr>
</table>
<table border="0" style="width:100%">
  <tr>
    <th>'''Difficulty:'''</th>
  </tr>
  <tr>
    <td>Medium to Hard</td>
  </tr>
</table>
<table border="0" style="width:100%">
  <tr>
    <th>'''Mentors:'''</th>
  </tr>
  <tr>
    <td>[mailto:elisa.foltyn@community.joomla.org Elisa Foltyn] </td>
  </tr>
</table>
[[Image:Gsoc2016.png|50px|center]]
----
====Project III: Improve override management ====
  <table border="0" style="width:100%">
  <tr>
    <th>'''Project Description:'''</th>
  </tr>
  <tr>
    <td>As it is an overall target to simplify the layouts in Joomla and push people to do overrides. Joomla needs a better override management.</td>
  </tr>
</table> 
  <table border="0" style="width:100%">
  <tr>
    <th>'''Expected Results:'''</th>
  </tr>
  <tr>
    <td>- Diff viewer between the override and the actual template file.
- Check on upgrades if a template file has changed where an override exists and inform the user.</td>
  </tr>
</table> 
  <table border="0" style="width:100%">
  <tr>
    <th>'''Knowledge Prerequisite:'''</th>
  </tr>
  <tr>
    <td>PHP, Joomla MVC, Javascript</td>
  </tr>
</table>
<table border="0" style="width:100%">
  <tr>
    <th>'''Difficulty:'''</th>
  </tr>
  <tr>
    <td>Medium</td>
  </tr>
</table>
<table border="0" style="width:100%">
  <tr>
    <th>'''Mentors:'''</th>
  </tr>
  <tr>
    <td>[mailto:info@digital-peak.com Allon Moritz], [mailto:astrid.guenther@community.joomla.org Astrid Guenther]</td>
  </tr>
</table>
[[Image:Gsoc2016.png|50px|center]]
----
====Project IV: System Testing for Joomla 4 with increased coverage ====
  <table border="0" style="width:100%">
  <tr>
    <th>'''Project Description:'''</th>
  </tr>
  <tr>
    <td>Increase the test coverage for Joomla 4, write Automation tests in Codeception for Headless Chrome and latest version of Selenium</td>
  </tr>
</table> 
  <table border="0" style="width:100%">
  <tr>
    <th>'''Expected Results:'''</th>
  </tr>
  <tr>
    <td>Increased Code Coverage for Joomla 4, Tests should be integrated with CI tool, Task Runner and Reporting should work</td>
  </tr>
</table> 
  <table border="0" style="width:100%">
  <tr>
    <th>'''Knowledge Prerequisite:'''</th>
  </tr>
  <tr>
    <td>PHP, Selenium, Codeception, Robo Task Runner, Dockers</td>
  </tr>
</table>
<table border="0" style="width:100%">
  <tr>
    <th>'''Difficulty:'''</th>
  </tr>
  <tr>
    <td>Medium to Hard</td>
  </tr>
</table>
<table border="0" style="width:100%">
  <tr>
    <th>'''Mentors:'''</th>
  </tr>
  <tr>
    <td>[mailto:kala.puneet@community.joomla.org Puneet Kala] </td>
  </tr>
</table>
[[Image:Gsoc2016.png|50px|center]]
----
====Project V: Command Line Update  ====
  <table border="0" style="width:100%">
  <tr>
    <th>'''Project Description:'''</th>
  </tr>
  <tr>
    <td>Update Joomla and components via command line</td>
  </tr>
</table> 
  <table border="0" style="width:100%">
  <tr>
    <th>'''Expected Results:'''</th>
  </tr>
  <tr>
    <td>Programatically update joomla via ssh so you can have scripts to batch update site without the need to log in to every site administrator. https://github.com/joomla-projects/cli-update</td>
  </tr>
</table> 
  <table border="0" style="width:100%">
  <tr>
    <th>'''Knowledge Prerequisite:'''</th>
  </tr>
  <tr>
    <td>PHP, Joomla CMS</td>
  </tr>
</table>
<table border="0" style="width:100%">
  <tr>
    <th>'''Difficulty:'''</th>
  </tr>
  <tr>
    <td>Medium</td>
  </tr>
</table>
<table border="0" style="width:100%">
  <tr>
    <th>'''Mentors:'''</th>
  </tr>
  <tr>
    <td>[mailto:marco.dings@community.joomla.org Marco Dings] </td>
  </tr>
</table>
[[Image:Gsoc2016.png|50px|center]]
----
====Project VI: Enhance Users  ====
  <table border="0" style="width:100%">
  <tr>
    <th>'''Project Description:'''</th>
  </tr>
  <tr>
    <td>The user component contains some old code which needs to be adapted to the current Joomla standard. Additionally it would be nice to have a front end list view for user groups and and detail menu item for user. Similar to the rest of the Joomla components.</td>
  </tr>
</table> 
  <table border="0" style="width:100%">
  <tr>
    <th>'''Expected Results:'''</th>
  </tr>
  <tr>
    <td>The user component should get two new front end views for a list of users and the details of one (similar to the ones from com_contact). Additionally some views should be adapted to Joomla standards, for example the profile view.</td>
  </tr>
</table> 
  <table border="0" style="width:100%">
  <tr>
    <th>'''Knowledge Prerequisite:'''</th>
  </tr>
  <tr>
    <td>PHP, Joomla CMS</td>
  </tr>
</table>
<table border="0" style="width:100%">
  <tr>
    <th>'''Difficulty:'''</th>
  </tr>
  <tr>
    <td>Medium</td>
  </tr>
</table>
<table border="0" style="width:100%">
  <tr>
    <th>'''Mentors:'''</th>
  </tr>
  <tr>
    <td>[mailto:benjamin@benjamintrenkle.de Benjamin Trenkle] </td>
  </tr>
</table>
[[Image:Gsoc2016.png|50px|center]]
----
====Project VII: Media Manager - Adaptive Images  ====
  <table border="0" style="width:100%">
  <tr>
    <th>'''Project Description:'''</th>
  </tr>
  <tr>
    <td>Since content is viewed on very different devices with very different sizes and resolutions, it is not sufficient to provide one single format of an image. There are a lot of approaches for resizing images to fit the current environment, but that does not always lead to good results.The idea with this project is to let the user define the important areas of the image for different resolutions and aspect ratios. A 2-page description with examples exists.</td>
  </tr>
</table> 
  <table border="0" style="width:100%">
  <tr>
    <th>'''Expected Results:'''</th>
  </tr>
  <tr>
    <td>An editor as extension to the media manager (or as a field type), A re-usable PHP class for cropping and resizing, A plugin to remap image references to the resize script</td>
  </tr>
</table> 
  <table border="0" style="width:100%">
  <tr>
    <th>'''Knowledge Prerequisite:'''</th>
  </tr>
  <tr>
    <td>Javascript, PHP</td>
  </tr>
</table>
<table border="0" style="width:100%">
  <tr>
    <th>'''Difficulty:'''</th>
  </tr>
  <tr>
    <td>Medium</td>
  </tr>
</table>
<table border="0" style="width:100%">
  <tr>
    <th>'''Mentors:'''</th>
  </tr>
  <tr>
    <td>[mailto:nbraczek@bsds.de Niels Braczek] </td>
  </tr>
</table>
[[Image:Gsoc2016.png|50px|center]]
----
----
[[Category:Google Summer of Code 2017]]
[[Category:Google Summer of Code 2018]]

Latest revision as of 09:46, 9 January 2019

Welcome to GSoC 2018 Ideas Page

Welcome to the Joomla Google Summer of Code (GSoC) 2018 project ideas page. As we move forward with the 2018 version of the Joomla GSoC, we will update this site with the ideas that have been submitted below.

Please keep in mind that projects need to be realistic and something that is able to be functionally completed by a student working full time for about ten weeks.

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 on Submitting Ideas

Everyone is invited to submit their ideas! You do not have to be a Google Summer of Code student or mentor to suggest one. If you have ideas for the Joomla Google Summer of Code Program please send them to us at this form:

* GSoC 2018 Idea submission form


There are some important guidelines to submit ideas, please read these carefully before adding your ideas:

  • Ensure your idea is able to be completed in a fixed period of time. GSoC runs officially between May, 2018 and August 2018. This is a short period of actual coding time. Ideas should respect the time that students have available for the program.
  • Keep ideas realistic. The ideas on this list should maintain a realistic amount of work for a single student, junior level-developer, who is working with a compressed timeline and a fixed completion ('pencils down') date.
  • The purpose of GSoC is to improve Joomla. This is not the time to add ideas for new extensions or features that may not be included. If the idea is related to the framework, please consult the framework team directly about new ideas to ensure there is interest in having the package included as an official Joomla Framework package.
  • When in doubt, reach out. If you're unsure if your idea belongs on this list, please post to the Joomla GSoC mailing list and ask about the community's interest.
  • No documentation-focused projects. Google Summer of Code is a program about code. We expect our students to document their work, but writing documentation for Joomla as a project does not align with the goals of GSoC.

Idea Pool

This page is going to be updated once the call for ideas is done and the projects have been chosen and approved by the production department.


Project I: Webservices in Joomla!

Project Description:
Continue the work done on implementing Webervices in Joomla 4 building on last years GSOC project. This will involve implementing a new Active Record Implementation for Joomla! CMS using inspiration from Laravel's Eloquent and Joomla's Model and Table class.
Expected Results:
There is a specification maintained at https://joomla-projects.github.io/gsoc18_webservices/?gsoc-2018/specification.md with full information of expected requirements and some project history.
Knowledge Prerequisite:
PHP, object-orientated programming, ideally some experience with the Joomla MVC stack. Before starting looking at the existing work done at https://github.com/joomla-projects/gsoc18_webservices
Difficulty:
Hard
Mentors:
George Wilson

Project II: Automatic Multilanguage Associations

Project Description:
These are the Scenarios that need to be covered as part of the project for 2018 GSoC
     WHEN I save a new item (article, category, menuitem,...), that is assigned to the root language
     THEN All items of this type for the other installed languages are created including their associations
     AND put in the right place (Category, Menutree)
     WHEN installing a new Content Language, 
     THEN Associated Menuitems, Categories and Articles are created automatically
     WHEN I access the Association Component
     THEN I have a better overview of the current state
     AND I can access global Parameters
     ONTOP:
     - I can define for every Content Language a Fallback language
     - I can switch a Website from en-GB to en-US or de-DE to de-AT without recreating items or without switching them one by one
     - Language Associations for Modules and Tags
Expected Results:
A better Workflow on Multilanguage sites
Knowledge Prerequisite:
PHP, Joomla Plugins, object-orientated programming, ideally some experience with the Joomla and Multilingual Associations.
Difficulty:
Medium to Hard
Mentors:
Elisa Foltyn

Project III: Improve override management

Project Description:
As it is an overall target to simplify the layouts in Joomla and push people to do overrides. Joomla needs a better override management.
Expected Results:
- Diff viewer between the override and the actual template file. - Check on upgrades if a template file has changed where an override exists and inform the user.
Knowledge Prerequisite:
PHP, Joomla MVC, Javascript
Difficulty:
Medium
Mentors:
Allon Moritz, Astrid Guenther

Project IV: System Testing for Joomla 4 with increased coverage

Project Description:
Increase the test coverage for Joomla 4, write Automation tests in Codeception for Headless Chrome and latest version of Selenium
Expected Results:
Increased Code Coverage for Joomla 4, Tests should be integrated with CI tool, Task Runner and Reporting should work
Knowledge Prerequisite:
PHP, Selenium, Codeception, Robo Task Runner, Dockers
Difficulty:
Medium to Hard
Mentors:
Puneet Kala

Project V: Command Line Update

Project Description:
Update Joomla and components via command line
Expected Results:
Programatically update joomla via ssh so you can have scripts to batch update site without the need to log in to every site administrator. https://github.com/joomla-projects/cli-update
Knowledge Prerequisite:
PHP, Joomla CMS
Difficulty:
Medium
Mentors:
Marco Dings

Project VI: Enhance Users

Project Description:
The user component contains some old code which needs to be adapted to the current Joomla standard. Additionally it would be nice to have a front end list view for user groups and and detail menu item for user. Similar to the rest of the Joomla components.
Expected Results:
The user component should get two new front end views for a list of users and the details of one (similar to the ones from com_contact). Additionally some views should be adapted to Joomla standards, for example the profile view.
Knowledge Prerequisite:
PHP, Joomla CMS
Difficulty:
Medium
Mentors:
Benjamin Trenkle

Project VII: Media Manager - Adaptive Images

Project Description:
Since content is viewed on very different devices with very different sizes and resolutions, it is not sufficient to provide one single format of an image. There are a lot of approaches for resizing images to fit the current environment, but that does not always lead to good results.The idea with this project is to let the user define the important areas of the image for different resolutions and aspect ratios. A 2-page description with examples exists.
Expected Results:
An editor as extension to the media manager (or as a field type), A re-usable PHP class for cropping and resizing, A plugin to remap image references to the resize script
Knowledge Prerequisite:
Javascript, PHP
Difficulty:
Medium
Mentors:
Niels Braczek