Difference between revisions of "GSOC 2014 Project Ideas"

From Joomla! Documentation

(→‎Project: Create a baseline component based on the Unified Content Model: Add an explanation and expected result for UCM project)
Line 37: Line 37:
 
=== Project: Create a baseline component based on the Unified Content Model ===
 
=== Project: Create a baseline component based on the Unified Content Model ===
  
:'''Brief explanation:''' Create a baseline component based on the Unified Content Model which could potentially replace the existing com_content
+
:'''Brief explanation:''' The Joomla! CMS has been moving towards a unified content model for which to serve content from.  Presently, a separate component is required for all content types (articles, categories, and weblinks, for example).  In the unified content model, all content types share a similar base dataset and components can add support for custom fields using the current component model of adding separate database tables.
  
:'''Expected Results:'''   
+
:'''Expected Results:'''  The goal for this project is to build a Joomla! CMS component which is based on the unified content model.  A practical example of this would be a new component to manage articles which would be a replacement for the existing com_content component.
  
 
:'''Knowledge Prerequisite:'''   
 
:'''Knowledge Prerequisite:'''   

Revision as of 18:05, 30 January 2014

GSOC 2014.png

Welcome to the Joomla! Google Summer of Code (GSoC) 2014 project ideas page. As we move forward with the 2014 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!

Discussion of ideas and other GSoC related items is welcome on our Google Group: https://groups.google.com/d/forum/joomla-gsoc-2014

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 the mailing list.

If you are interested in serving as a mentor, please fill out the Mentor Application Form 2014.

Ideas[edit]

Opportunities exist for students to work with projects from either the Joomla CMS, the Joomla Framework or in some cases a combination of both.

In addition to this ideas list, the Joomla! Community is able to voice their opinion on features they would like to see via the 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 2013, 2012, 2010 and 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.

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.

Important Guidelines on Submitting Ideas[edit]

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 19th 2014 and August 18th 2014. This is a very 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.
  • Keep ideas core. The purpose of GSoC is to improve Joomla itself. This is not the time to add ideas for new extensions or features that may not be included by the PLT. 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.
  • Respect Joomla's Release Cycle. Joomla's release cycle currently states that with Joomla 3.5, we will not add new features to the CMS. This means that most of the GSoC projects this year should ideally improve existing code in a backwards compatible way.
  • Joomla 4. Currently there is not a baseline for what Joomla 4 is and what it could be. Ideas centered around Joomla 4 would not fit in well with the goal of GSoC 2014.
  • When in doubt, reach out. If you're unsure if your idea belongs on this list, please post to the GSoC 2014 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.

Joomla CMS Ideas[edit]

Adding Project Ideas

Please add your CMS project ideas below. You can use the GSOC 2014 Project template.

Project: Create a baseline component based on the Unified Content Model[edit]

Brief explanation: The Joomla! CMS has been moving towards a unified content model for which to serve content from. Presently, a separate component is required for all content types (articles, categories, and weblinks, for example). In the unified content model, all content types share a similar base dataset and components can add support for custom fields using the current component model of adding separate database tables.
Expected Results: The goal for this project is to build a Joomla! CMS component which is based on the unified content model. A practical example of this would be a new component to manage articles which would be a replacement for the existing com_content component.
Knowledge Prerequisite:
Difficulty:

Project: Decouple extension dependencies[edit]

Brief explanation: In the current version of the CMS, some extensions rely on one another for functionality. The ultimate goal is for each extension to be completely independent so that it could be removed without breaking the functionality of another.
Expected Results: All extensions in the CMS to be completely independent of one another.
Knowledge Prerequisite:
Difficulty: Medium

Project: Develop dependency manager[edit]

Brief explanation: Distributions are one of the next possible evolutionary steps for the CMS. One key challenge to solve is the management of dependencies that extensions/packages may have.
Expected Results: A working proof of concept that manages the handling of dependencies as well as define requirements that extensions/packages must meet for their dependencies to be managed by this system.
Knowledge Prerequisite:
Difficulty: Very challenging, but highly rewarding.


Project: Update Core Extensions to use New MVC[edit]

Brief explanation: The Joomla Framework has brought us a new MVC architecture that we would like to start using for core components. This project will chose a few core components as a conversion goal to migrate them to run on the new MVC structure.
Expected Results: Selected core components will run on the new MVC architecture. This will involve changing the component to run the new controller based architecture, and potentially develop a standardized set of methods that are used across multiple extensions. Reducing code repeats and encouraging reuse will be an important aspect of this project.
Knowledge Prerequisite:
Difficulty: Challenging, high learning curve and will set precedent for other extensions. This is a opportunity for innovation, not a project to simply copy other parts code into a new feature.

Project: SQL Optimization[edit]

Brief explanation: The goal of this project is to increase site performance, optimizing slow sql queries.
Expected Results: After analyzing and measuring the site performance (on some test case ie small, medium, big) will be taken the necessary action using the proper techniques to improve measurably the slower queries.
Knowledge Prerequisite: SQL, DBMS
Difficulty: Medium to Hard
Posible mentors: Nicola Galgano

Joomla Framework[edit]

The Joomla Framework project ideas allows for ideas that can work within the Joomla CMS, or could be completely separate applications that have no connection at all. The Joomla Framework allows for applications to be built for the command line, process daemons and the web.

References:

All code contributions must follow Joomla coding standards and include full unit test coverage.

Adding Project Ideas

Please add your Framework project ideas below. You can use the GSOC 2014 Project template.

Project: Framework Unit Testing[edit]

Brief explanation: The Joomla Framework 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 Framework.
Expected Results: The student will be expected to review the current code coverage report for the Joomla Framework 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).
Knowledge Prerequisite: PHP, PHPUnit
Difficulty: Medium