GSoC 2024 Project Ideas
From Joomla! Documentation
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[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
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
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
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.
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
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
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