GSoC 2024 Project Ideas

From Joomla! Documentation

Welcome to Joomla GSoC 2024 Projects Page
Gsoc2016.png


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

Gsoc2016.png

Project I: API Improvements[edit]

Project Description[edit]

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[edit]

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

Expected Outcome[edit]

  • 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[edit]

  • Hard

Project Type[edit]

  • Large [350 Hrs]

Mentors[edit]

  • George Wilson
  • Carlos Rodriguez
  • Herman
Gsoc2016.png

Project II: Health page[edit]

Project Description[edit]

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[edit]

  • Language Requisitions: PHP, HTML, CSS and JavaScript

Expected Outcome[edit]

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

Difficulty[edit]

  • Medium

Project Type[edit]

  • Medium [175 Hrs]

Mentors[edit]

  • Hannes
Gsoc2016.png

Project III: Command Palette for Joomla 5.3[edit]

Project Description[edit]

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[edit]

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

Expected Outcome[edit]

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


Difficulty[edit]

  • Medium

Project Type[edit]

  • Medium [175 Hrs]

Mentors[edit]

  • Benjamin
  • Christiane
  • Martina
Gsoc2016.png

Project IV: Using AI for Automated Testing[edit]

Project Description[edit]

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[edit]

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


Expected Outcome[edit]

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[edit]

  • Medium

Project Type[edit]

  • Medium [175 Hrs]

Mentors[edit]

  • Allon
  • Astrid Günther


Gsoc2016.png

Project V: Enhancing Database Driver for JSON Field Management 5.3[edit]

Project Description[edit]

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[edit]

  • 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[edit]

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

Difficulty[edit]

  • Hard

Project Type[edit]

  • Hard[350 Hrs]

Mentors[edit]

  • Richard Fath
  • Nicola Galgano
Gsoc2016.png

Project VI: AI for improving accessibility of WEB sites[edit]

Project Description[edit]

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[edit]

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


Knowledge Prerequisite[edit]

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


Difficulty[edit]

  • Mediun

Project Type[edit]

  • Medium [175 Hrs]

Mentors[edit]

  • Christiane
  • Carlos Camara Mora
  • Viviana Menzel
Gsoc2016.png