GSoC 2024 Project Ideas: Difference between revisions

From Joomla! Documentation

Shivam1997 (talk | contribs)
Created page with "{{Top portal heading|color=white-bkgd|text-color=#333|title= Welcome to Joomla GSoC 2024 Projects Page }} 150px|center|link=GSoC 2020 Welcome to the [..."
 
Alikon (talk | contribs)
 
(14 intermediate revisions by 4 users not shown)
Line 7: Line 7:


If you are interested in participating as a student please review the materials on applying that are available at [https://developers.google.com/open-source/gsoc/faq Google]. We strongly encourage you to ask questions about process and projects on our  
If you are interested in participating as a student please review the materials on applying that are available at [https://developers.google.com/open-source/gsoc/faq Google]. We strongly encourage you to ask questions about process and projects on our  
[https://joomlacommunity.cloud.mattermost.com/main/channels/gsoc2023 Mattermost chat tool].
[https://joomlacommunity.cloud.mattermost.com/main/channels/gsoc2024 Mattermost chat tool].


'''''Note: The GSoC 2024 projects are displayed in no particular order'''''
'''''Note: The GSoC 2024 projects are displayed in no particular order'''''


[[Image:Gsoc2016.png|30px|center]]
==Project I: API Improvements ==
===Project Description===
To exchange information between different Content Management Systems, for integration or migration purposes, many ad hoc solutions have been created. A more universally applicable approach would be establishing a common, shared model for content. This would enable the creation of specific models tailored to individual CMSs, facilitating model-to-model transformations. A standardized content model would provide a more versatile and efficient solution for handling information exchange across diverse CMS platforms.
There was a standard for content integration, CMIS [http://docs.oasis-open.org/cmis/CMIS/v1.1/cs01/CMIS-v1.1-cs01.html], but it is hardly used nowadays, mainly because it is not up to date with modern web content management.
===Knowledge Prerequisite===
*Language Requisitions: PHP, JavaScript
*Besides that, a must have: REST API
*Nice to have: API Protocols
===Expected Outcome===
*Work towards a gradually more general (formal) content model, usable in multiple CMSs.
*Gradually adding more CMSs. Adjusting the general model and defining the specificities per CMS. Start with Joomla and 1 other.
*Export content from those CMSs to the general model using the API.
*Import content from the general model using the API.
*Increase the coverage for API
*Go through the components to add missing calls
**Auth & Error
**Enhancement to authentication (OAuth 2.0)
**Improve Error handling
===Difficulty===
*Hard
===Project Type===
*Large [350 Hrs]
===Mentors===
*George Wilson
*Carlos Rodriguez
*Herman
[[Image:Gsoc2016.png|30px|center]]


==Project I: Improve the Joomla front end editing experience ==
==Project II: Health page ==


===Project Description===
===Project Description===
Front end editing in Joomla is a helpful feature for content creators, but it’s not always consistently available or easy to use. This project will identify areas of improvement and implement the recommended changes to front end editing in relevant Joomla core components.
Extend the com_admin component in the Joomla backend with a framework for system health features. This requires creating a page which lists the different available health checks, a page which displays the result of the health check and a page to run checks and/or fixes in batches. All health checks should be implemented as plugins and thus be extendable by third party. The health checks should contain a file integrity check based on checksum files and a check to repair all nested set tables. Additional checks are very welcome. These checks should also be able to run via CLI. Built as a series of plugin checks that feed into a dashboard.


===Knowledge Prerequisite===
===Knowledge Prerequisite===
*Language Requisitions: PHP, HTML, CSS and JavaScript
*Language Requisitions: PHP, HTML, CSS and JavaScript
*com_content
 
*Workflow
===Expected Outcome ===
Extended com_admin component with 3 views, at least 2 health check plugins and an integration into the CLI app of Joomla.


===Difficulty===
===Difficulty===
Line 29: Line 67:


===Mentors===
===Mentors===
*Crystal Dionysopoulos
*Hannes
*Geraint Edwards
*Viviana Menzel
 
[[Image:Gsoc2016.png|30px|center]]
[[Image:Gsoc2016.png|30px|center]]


==Project II: API Improvements ==
==Project III: Command Palette for Joomla 5.3 ==


===Project Description===
===Project Description===
Improve the API to cover more/all general functions in Joomla!
An interface within Joomla CMS for Command Palette, to type in actions like creating new artiles; Execute the command. The project should be integrated with the shortcuts; a good example is VS code command palette.
Go through the components to add missing calls
Implement proper authentication (oAuth2, ...)
Improve error handling
 


===Knowledge Prerequisite===
===Knowledge Prerequisite===
*Language Requisitions: PHP, HTML, CSS and JavaScript
*Language Requisitions: PHP, HTML, CSS and JavaScript
*CLI
*Besides that, a must have: VueJS
*Plugins
*Nice to have: Joomla! 4 template creation
*Cypress
 
===Expected Outcome ===
*Command Palette Integrated with adequate number of commands.
*Integration of short keys
 


===Difficulty===
===Difficulty===
*Hard
*Medium


===Project Type===
===Project Type===
*Large [350 Hrs]
*Medium [175 Hrs]


===Mentors===
===Mentors===
*George Wilson
*Benjamin
*Carlos Rodriguez
*Christiane
*Shivam Rajput
*Martina
 
[[Image:Gsoc2016.png|30px|center]]
[[Image:Gsoc2016.png|30px|center]]


==Project III: Health page ==
==Project IV: Using AI for Automated Testing ==


===Project Description===
===Project Description===
A page to check the integrity of your Joomla! files and database structure (also for 3rd party extensions).
System or unit tests are an essential part of the development process to ensure stability of any application.
Built as a series of plugin checks that feed into a dashboard
 
https://magazine.joomla.org/all-issues/october-2022/off-to-cyprus-ehm-cypress-how-joomla-does-its-end-to-end-testing
 
AI offers new possibilities to define system tests which can be used in our CI process. With the knowledge of end users together with artificial intelligence, it should be possible to increase the amount of system tests as it will reduce the amount of bugs. Community members without developer experience will be able to help increase the testing coverage.
 


===Knowledge Prerequisite===
===Knowledge Prerequisite===
*Language Requisitions: PHP, HTML, CSS and JavaScript
*Language Requisitions: PHP, HTML, CSS and JavaScript
*Modules
*Cypress
*REST
 
 
===Expected Outcome===
AI offers new possibilities to define system tests which can be used in our CI process. With the knowledge of end users together with artificial intelligence, it will reduce the amount of bugs.
A system which is able to generate or enhance Joomla specific system tests, based on an API integration from an AI service like ChatGPT. In a first step, the existing system tests should be enhanced and based on them, the AI model should be able to generate simple ones by itself.


===Difficulty===
===Difficulty===
Line 79: Line 125:


===Mentors===
===Mentors===
*Rishabh Ranjan Jha
*Allon
*Shazma Siddiqui
*Astrid Günther
*Shubham Verma




[[Image:Gsoc2016.png|30px|center]]
[[Image:Gsoc2016.png|30px|center]]


==Project IV: Migrating websites from CMS platforms to Joomla Core ==
==Project V: Enhancing Database Driver for JSON Field Management 5.3 ==


===Project Description===
===Project Description===
An idea that's been floated a few times in JUGL, an importer using either a csv exporter from another system or a backup solution if they have one. the project is to identify and build an importer into core Joomla articles (categories as well if applicable) to help people migrating from other systems. Wordpress, Wix, Squarespace to help kick of a migration
 
Many platforms and services facilitate the migration of websites from Joomla to their own platforms. Joomla should have such possibility, allowing users to transfer their sites to Joomla, at least when it comes to data. Adding such services to Joomla would ease the migration of existing sites to Joomla.
The current database driver lacks comprehensive features for handling JSON fields, resulting in limitations when it comes to querying, indexing, and updating JSON data. As JSON becomes increasingly prevalent in application development, it is essential to optimize the database driver to meet the evolving needs of developers and ensure better compatibility with modern data storage requirements.
Proposed Enhancements:
 
Improved Querying:
Enhance the database driver to support advanced querying capabilities for JSON fields. This includes the ability to search for specific key-value pairs within JSON objects, perform range queries on numeric values in JSON, and execute complex queries involving nested JSON structures.
 
Indexing Support:
Introduce indexing options specifically tailored for JSON fields. This will significantly improve query performance by allowing the database engine to efficiently locate and retrieve data from JSON fields. Indexing should support both simple and nested structures within JSON.
 
Validation and Schema Enforcement:
Implement mechanisms for validating JSON data against predefined schemas. This will ensure data integrity by enforcing a consistent structure for JSON fields, preventing the insertion of invalid or inconsistent data.
 
Atomic Updates:
Enable atomic updates for JSON fields to ensure that changes to JSON data are applied consistently and without the risk of data corruption. This includes supporting operations like adding, updating, or removing elements within JSON arrays or objects within a single atomic transaction.
 
Compatibility and Standardization:
Ensure compatibility with widely adopted JSON standards and specifications. This will enhance interoperability between different applications and systems, providing a standardized way of handling JSON data within the database.
 
 
===Expected Outcome ===
*Improved query performance and efficiency when working with JSON fields.
*Enhanced data integrity through validation and schema enforcement.
*Better support for modern application development practices relying on JSON data.
*Increased flexibility for developers to build complex and efficient queries involving JSON content.By implementing these enhancements, we aim to elevate the database driver's capabilities in managing JSON fields, providing developers with a more robust and flexible solution for handling JSON data within the database.
 
 


===Knowledge Prerequisite===
===Knowledge Prerequisite===
*Language Requisitions: PHP, HTML, CSS and JavaScript
*Language Requisitions: PHP, HTML, CSS and JavaScript
*Joomla database structure
*Besides that, a must have: SQL
*Nice to have: Joomla! 4 knowledge
*Cypress


===Difficulty===
===Difficulty===
Line 100: Line 172:


===Project Type===
===Project Type===
*Large [350 Hrs]
*Hard[350 Hrs]


===Mentors===
===Mentors===
*Philip Walton
*Richard Fath
*Olivier Buisard
*Nicola Galgano
*Christiane Maier-Stadtherr
*Achilleas Papageorgiou
 


[[Image:Gsoc2016.png|30px|center]]
[[Image:Gsoc2016.png|30px|center]]


==Project V: Increase test coverage ==
==Project VI: AI for improving accessibility of WEB sites ==


===Project Description===
===Project Description===
System or unit tests are an essential part of the development process to ensure stability of any application.
Until now, our accessibility plugin helps writing accessible content but does not check the whole website for accessibility.
https://magazine.joomla.org/all-issues/october-2022/off-to-cyprus-ehm-cypress-how-joomla-does-its-end-to-end-testing
AI could help to make websites accessible
*generating accessible color scheme helps the web designer,
*improve navigation logic
*verify optimal keyboard access to the site
*generate alt-text via image recognition from AI
*and others
 
===Expected Outcome ===
*Better Accessibility of the Web
*Support for Template developers (agencies)
*Advantage for marketing
 


===Knowledge Prerequisite===
===Knowledge Prerequisite===
Line 125: Line 205:


===Difficulty===
===Difficulty===
*Medium
*Mediun


===Project Type===
===Project Type===
Line 131: Line 211:


===Mentors===
===Mentors===
*Franciska Perisa
*Christiane
*Allon Moritz
*Carlos Camara Mora
*Anurag Kumar
*Viviana Menzel


[[Image:Gsoc2016.png|50px|center]]
[[Image:Gsoc2016.png|30px|center]]





Latest revision as of 18:27, 7 February 2024

Welcome to Joomla GSoC 2024 Projects Page


Welcome to the Joomla Google Summer of Code (GSoC) 2024 projects page.

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 projects on our Mattermost chat tool.

Note: The GSoC 2024 projects are displayed in no particular order

Project I: API Improvements

Project Description

To exchange information between different Content Management Systems, for integration or migration purposes, many ad hoc solutions have been created. A more universally applicable approach would be establishing a common, shared model for content. This would enable the creation of specific models tailored to individual CMSs, facilitating model-to-model transformations. A standardized content model would provide a more versatile and efficient solution for handling information exchange across diverse CMS platforms.

There was a standard for content integration, CMIS [1], but it is hardly used nowadays, mainly because it is not up to date with modern web content management.


Knowledge Prerequisite

  • Language Requisitions: PHP, JavaScript
  • Besides that, a must have: REST API
  • Nice to have: API Protocols

Expected Outcome

  • Work towards a gradually more general (formal) content model, usable in multiple CMSs.
  • Gradually adding more CMSs. Adjusting the general model and defining the specificities per CMS. Start with Joomla and 1 other.
  • Export content from those CMSs to the general model using the API.
  • Import content from the general model using the API.
  • Increase the coverage for API
  • Go through the components to add missing calls
    • Auth & Error
    • Enhancement to authentication (OAuth 2.0)
    • Improve Error handling

Difficulty

  • Hard

Project Type

  • Large [350 Hrs]

Mentors

  • George Wilson
  • Carlos Rodriguez
  • Herman

Project II: Health page

Project Description

Extend the com_admin component in the Joomla backend with a framework for system health features. This requires creating a page which lists the different available health checks, a page which displays the result of the health check and a page to run checks and/or fixes in batches. All health checks should be implemented as plugins and thus be extendable by third party. The health checks should contain a file integrity check based on checksum files and a check to repair all nested set tables. Additional checks are very welcome. These checks should also be able to run via CLI. Built as a series of plugin checks that feed into a dashboard.

Knowledge Prerequisite

  • Language Requisitions: PHP, HTML, CSS and JavaScript

Expected Outcome

Extended com_admin component with 3 views, at least 2 health check plugins and an integration into the CLI app of Joomla.

Difficulty

  • Medium

Project Type

  • Medium [175 Hrs]

Mentors

  • Hannes

Project III: Command Palette for Joomla 5.3

Project Description

An interface within Joomla CMS for Command Palette, to type in actions like creating new artiles; Execute the command. The project should be integrated with the shortcuts; a good example is VS code command palette.

Knowledge Prerequisite

  • Language Requisitions: PHP, HTML, CSS and JavaScript
  • Besides that, a must have: VueJS
  • Nice to have: Joomla! 4 template creation
  • Cypress

Expected Outcome

  • Command Palette Integrated with adequate number of commands.
  • Integration of short keys


Difficulty

  • Medium

Project Type

  • Medium [175 Hrs]

Mentors

  • Benjamin
  • Christiane
  • Martina

Project IV: Using AI for Automated Testing

Project Description

System or unit tests are an essential part of the development process to ensure stability of any application.

https://magazine.joomla.org/all-issues/october-2022/off-to-cyprus-ehm-cypress-how-joomla-does-its-end-to-end-testing

AI offers new possibilities to define system tests which can be used in our CI process. With the knowledge of end users together with artificial intelligence, it should be possible to increase the amount of system tests as it will reduce the amount of bugs. Community members without developer experience will be able to help increase the testing coverage.


Knowledge Prerequisite

  • Language Requisitions: PHP, HTML, CSS and JavaScript
  • Cypress
  • REST


Expected Outcome

AI offers new possibilities to define system tests which can be used in our CI process. With the knowledge of end users together with artificial intelligence, it will reduce the amount of bugs. A system which is able to generate or enhance Joomla specific system tests, based on an API integration from an AI service like ChatGPT. In a first step, the existing system tests should be enhanced and based on them, the AI model should be able to generate simple ones by itself.

Difficulty

  • Medium

Project Type

  • Medium [175 Hrs]

Mentors

  • Allon
  • Astrid Günther


Project V: Enhancing Database Driver for JSON Field Management 5.3

Project Description

The current database driver lacks comprehensive features for handling JSON fields, resulting in limitations when it comes to querying, indexing, and updating JSON data. As JSON becomes increasingly prevalent in application development, it is essential to optimize the database driver to meet the evolving needs of developers and ensure better compatibility with modern data storage requirements. Proposed Enhancements:

Improved Querying: Enhance the database driver to support advanced querying capabilities for JSON fields. This includes the ability to search for specific key-value pairs within JSON objects, perform range queries on numeric values in JSON, and execute complex queries involving nested JSON structures.

Indexing Support: Introduce indexing options specifically tailored for JSON fields. This will significantly improve query performance by allowing the database engine to efficiently locate and retrieve data from JSON fields. Indexing should support both simple and nested structures within JSON.

Validation and Schema Enforcement: Implement mechanisms for validating JSON data against predefined schemas. This will ensure data integrity by enforcing a consistent structure for JSON fields, preventing the insertion of invalid or inconsistent data.

Atomic Updates: Enable atomic updates for JSON fields to ensure that changes to JSON data are applied consistently and without the risk of data corruption. This includes supporting operations like adding, updating, or removing elements within JSON arrays or objects within a single atomic transaction.

Compatibility and Standardization: Ensure compatibility with widely adopted JSON standards and specifications. This will enhance interoperability between different applications and systems, providing a standardized way of handling JSON data within the database.


Expected Outcome

  • Improved query performance and efficiency when working with JSON fields.
  • Enhanced data integrity through validation and schema enforcement.
  • Better support for modern application development practices relying on JSON data.
  • Increased flexibility for developers to build complex and efficient queries involving JSON content.By implementing these enhancements, we aim to elevate the database driver's capabilities in managing JSON fields, providing developers with a more robust and flexible solution for handling JSON data within the database.


Knowledge Prerequisite

  • Language Requisitions: PHP, HTML, CSS and JavaScript
  • Besides that, a must have: SQL
  • Nice to have: Joomla! 4 knowledge
  • Cypress

Difficulty

  • Hard

Project Type

  • Hard[350 Hrs]

Mentors

  • Richard Fath
  • Nicola Galgano

Project VI: AI for improving accessibility of WEB sites

Project Description

Until now, our accessibility plugin helps writing accessible content but does not check the whole website for accessibility. AI could help to make websites accessible

  • generating accessible color scheme helps the web designer,
  • improve navigation logic
  • verify optimal keyboard access to the site
  • generate alt-text via image recognition from AI
  • and others

Expected Outcome

  • Better Accessibility of the Web
  • Support for Template developers (agencies)
  • Advantage for marketing


Knowledge Prerequisite

  • Language Requisitions: PHP, HTML, CSS and JavaScript
  • Besides that, a must have: VueJS
  • Nice to have: Joomla! 4 template creation
  • Cypress


Difficulty

  • Mediun

Project Type

  • Medium [175 Hrs]

Mentors

  • Christiane
  • Carlos Camara Mora
  • Viviana Menzel