GSoC 2024 Project Ideas: Difference between revisions

From Joomla! Documentation

Shivam1997 (talk | contribs)
No edit summary
m Fix name
Line 226: Line 226:


===Mentors===
===Mentors===
*Alon
*Allon
*Astrid
*Astrid



Revision as of 12:26, 30 January 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

Improve the API to cover more/all general functions in Joomla! Go through the components to add missing calls Implement proper authentication (oAuth2, ...) Improve error handling


Knowledge Prerequisite

  • Language Requisitions: PHP, HTML, CSS and JavaScript
  • CLI
  • Plugins

Difficulty

  • Hard

Project Type

  • Large [350 Hrs]

Mentors

  • George Wilson
  • Carlos Rodriguez
  • Shivam Rajput

Project II: Health page

Project Description

A page to check the integrity of your Joomla! files and database structure (also for 3rd party extensions). Built as a series of plugin checks that feed into a dashboard

Knowledge Prerequisite

  • Language Requisitions: PHP, HTML, CSS and JavaScript
  • Modules

Difficulty

  • Medium

Project Type

  • Medium [175 Hrs]

Mentors

  • Rishabh Ranjan Jha
  • Shazma Siddiqui
  • Shubham Verma


Project III: Increase test coverage

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

Knowledge Prerequisite

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


Difficulty

  • Medium

Project Type

  • Medium [175 Hrs]

Mentors

  • Franciska Perisa
  • Allon Moritz
  • Anurag Kumar

Project IV: 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.

Expected Outcome

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


Knowledge Prerequisite

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


Difficulty

  • Medium

Project Type

  • Medium [175 Hrs]

Mentors

  • Benjamin
  • Christiane
  • Martina

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: VueJS
  • Nice to have: Joomla! 4 template creation
  • Cypress


Difficulty

  • Hard

Project Type

  • Hard[350 Hrs]

Mentors

  • Richard Faith
  • Nicholas

Project V: Model Driven approach for CMS integration

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. A recent project [2] has used the API of WordPress and Drupal to gather information in a more general content model.

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.
  • Write code to export content from those CMSs to the general model using the API.
  • Write code to import content from the general model using the API.


Knowledge Prerequisite

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


Difficulty

  • Hard

Project Type

  • Hard [350 Hrs]

Mentors

  • Herman

Project VI: Using AI for automated testing

Project Description

With the help of AI to provide an environment to increase the test coverage when new features do land in the CMS.

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. Community members without developer experience will be able to help increase the testing coverage.

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

  • Allon
  • Astrid

Project VII: 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