XWiki @ Google Summer of Code 2022

Last modified by Thomas Mortagne on 2023/01/03 09:19

This page hosts information and project ideas for the open source project XWiki related to the Google Summer of Code 2022 mentorship program.

About GSoC

You can learn a lot about the program by reading the GSoC FAQ. The timeline of this year's edition is given here.

Getting Started

As a new GSoC Contributor candidate, you're probably looking for this section! Please read it carefully (and the linked resources) before asking for guidance or where to start. It applies to all proposed projects and it covers many topics asked by newcomers.

  1. Being part of the XWiki community means knowing our rules and practices.
  2. As a GSOC Contributor or candidate, you need to make sure you read and apply our guidelines. It also contains suggested way of getting to know the XWiki project and its community. This is where you find out what you need to get up to speed with developing extensions or making changes to the XWiki product.

Please do not skip this part. Don't be that person joining the community and asking "where do I start?". This is your first test you need to pass emoticon_smile

Application template

When applying for one of our projects, please provide this information about yourself and the project you choose in the application which you submit to Google.

Selected Projects for GSoC 2022 (1)

The projects below, out of all the proposed projects, have been selected to participate in GSoC 2022.

Create a snap package for XWiki by Vedant Pol

The idea is to create a snap package of XWiki.

The first step is to actually create a clean and working snap package for a version of XWiki. Then the generation of a snap package for each version of XWiki should be integrated into the release process.

Coordinated by


Contributor
Estimated workload: 175 hours (Medium size project).
Difficulty: Medium.
Read more...

Proposed Projects (7)

You can contribute to this list! We encourage would-be mentors to propose ideas or even to revive old ideas from the previous years, but, if you do, make sure to assign yourselves as mentors for the proposed project. Proposals without mentors will be discarded, as we have learned from previous years that they are counter-productive.

Candidate Contributors are also encouraged to propose projects, but make sure you first present and discuss your idea on the forum (dev category) and that they find a mentor interested in the idea who should theb ne assigned to the project proposal.

We also recommend candidates interested in joining XWiki for GSoC 2022 to manifest themselves as early as possible so that we can start working with them on this project list. Communication is the key to success at GSoC!

Create a integrable solution Two-factor authentication (2FA) for XWiki

2FA requires you to enter an extra code when you log in or perform some account-sensitive action (e.g. changing your password).

XWiki allows writing custom authenticator and there is many of those, see http://www.xwiki.org/xwiki/bin/view/Documentation/AdminGuide/Authentication/#HCustomAuthentication but they are written one by one and they don’t share much with each other.

Coordinated by


Estimated workload: 350 hours (Large size project).
Difficulty: Medium.
Read more...

Create a snap package for XWiki

The idea is to create a snap package of XWiki.

The first step is to actually create a clean and working snap package for a version of XWiki. Then the generation of a snap package for each version of XWiki should be integrated into the release process.

Coordinated by


Contributor
Estimated workload: 175 hours (Medium size project).
Difficulty: Medium.
Read more...

Demo Flavors

Work on several Demo Flavors for XWiki. A Flavor is a set of XWiki Extensions working together to achieve a goal. The idea here is to propose several Demo Flavors for common usages of XWiki in order to show users how XWiki can be used to achieve these usages.

Goals & Ideas

  • Identify several commons usages for XWiki. There are already some design pages that exist on this, see Flavor design. The idea is to offer some very specific flavors (not generic flavors) so that the Demo can be specific and directive / self-explanatory
  • For example, you could imagine a Demo flavor for using XWiki for managing a Bike Shop. The idea would be to:
    • Write a small Applications Within Minutes application
    • Provide a simple skin and color theme for the Bike Shop
    • Install some existing Extensions that are useful for the Bike Shop use case, for example the Calendar application to manage deliveries of Bikes, or the Task Manager Application to organize tasks needed to manage the Bike Shop.
    • Write several wiki pages and provide demo content to simulate real content. Also provide content pages to explain how the demo is created using existing XWiki Extensions & technologies
  • Write several small Demo flavors, depending on the size of the flavors chosen and the time available.
  • Keep in mind that the goal is to demonstrate XWiki Extensions and Technologies so that users understand that XWiki is not just a wiki and can be used to implement applications.

Related

  • Existing Demo Flavor. The idea is that it's too generic and should be replaced by smaller and more focused demos with demo content.

Coordinated by


Estimated workload: 175 hours (Medium size project).
Difficulty: Medium.
Read more...

Mermaid Integration

Integrate the Mermaid library into XWiki by creating an XWiki Extension for it. Mermaid is useful to create flow charts, sequence diagrams and Gantt timelines.

Goals & Ideas

  • Create and release a Contrib Extension for Mermaid
  • Offer an XWiki Rendering macro for it, {{mermaid ...}}...{{/mermaid}}
  • Make it work in the WYSIWYG editor (i.e. ability to enter text and click on a button to get live rendering - Button displayed inside the Macro viewport, to toggle source and rendered view).
  • Integrate it with existing Project Management Extensions so that these projects can offer Gantt diagrams for example.
    • This means ability to generate Mermaid syntax from other sources of data (e.g. from temporal XObject data for the Gantt part)
  • Idea: introduce a new layout for the LiveData component of xwiki for data having either 2 dates columns or a date + duration columns so that the entries can be presented in a Gantt diagram
  • Note that the work defined above are just initial ideas and it'll be up to the mentor and student to define more work since it's currently too small for 2 months of work.

Related

Coordinated by


Estimated workload: 175 hours (Medium size project).
Difficulty: Medium.
Read more...

Set of useful Macros

Develop a set of XWiki Rendering Macros to make it easy to perform well-defined tasks in XWiki for non-technical users. Right now everything is possible using the Scripting macros of XWiki. However that's reserved to technical users. The idea is to identify common needs and implement specific macros to fulfil those needs.

Goals & Ideas

  • Form macro + Button macros to avoid needing the use of HTML macro and very simply add a button or a form in a wiki page. See also Form in page FAQ
  • Search macro to display a Search box in a wiki page and to display search results, with possibility of passing search parameters.
  • Members macro to display all the members of a given Group into a LiveTable and/or a Tree
  • Contributors macro to display all the authors who have contributed to a wiki page.
  • Develop these new macro as XWiki Extensions on XWiki Contrib and release them.
  • Propose new macros if time permits it. Ideas can be taken from New macros idea list. Some of these macros have already been implemented but the implementation may not work anymore in the latest versions of XWiki or can be improved. Improving them using new technologies would be great.

Considerations

  • Regarding the form macro the idea is to design it and see if we can make it easy to implement some use cases. We should not do something generic or we'll be harder to use than HTML! It may not be a form macro but another name. Example of typical use case.
  • The goal of this project is to look at our pages and find common patterns and provide macros to help implement them more easily, bringing the ability to non devs to do powerful stuff in xwiki
  • There's a big part of the project at the start about researching, brainstorming and making spec proposal.
  • Another source of inspiration is to also look at the snippets and find useful ones that would make sense to be as macros for users to use
  • Yet another source of inspiration is to look at other wikis (such as Confluence) and find nice macros that we could have too.
  • Since it's easy to script in XWiki, we've often forgotten to create plenty of small macros that can be implemented with 1 or 2 lines of code but even writing these few lines can be hard for non-devs and having a read-to-use macro could them.

Coordinated by


Estimated workload: 175 hours (Medium size project).
Difficulty: Easy.
Read more...

Translation in context

XWiki 4.4 introduce new translation macro which will allow to find easily translated content in a page when using annotated HTML5 renderer (you can see the result by adding ?outputSyntax=annotatedhtml in the URL).

The idea is to use that and provide a "translation mode" where you can directly select and translate what you see in the page (when the translation macro is used). The idea is also to make easy to contribute to http://l10n.xwiki.org from your local wiki by sending your corrections to it.

Various ideas for the look and feel of this feature:

Location where to code this: https://github.com/xwiki-contrib/application-translation

Coordinated by


Estimated workload: 350 hours (Large size project).
Difficulty: Hard.
Read more...

WebHooks for XWiki

XWiki supports Events for various actions done in the XWiki: creating a new page, modifying a page, doing an action, etc. It's possible to write Event Listeners in Java or in Wiki pages.

However it would be great to be able to register Web Hooks in XWiki so that events would trigger Web Hooks, i.e. call remote APIs to notify them about the event that has just happened.

Goals & Ideas

  • Provide something similar to GitLab's System Hooks and Web Hooks.
  • Write a generic Event Listener that listens to all events and forward them as remote API calls when events occur.
  • Also provide an Admin UI so that users can register URLs for specific events.
  • Implement this as a Contrib Extension and release it

The JIRA issue corresponding to this need is XWIKI-16088.

Coordinated by


Estimated workload: 175 hours (Medium size project).
Difficulty: Medium.
Read more...

Mentors (4)

The following community members are assigned to mentor the proposed projects:

Contact us

You can ask for more information about each project proposal and interact with the community and mentors through the usual communication channels: forum or the Matrix channel.

What's next after GSOC?

First and foremost: Thank you for having participated to XWiki!

We want to keep you in the community for as long as possible. We understand that you may have school projects to carry on and won't have the time to continue participating much immediately after GSOC. However, we're really keen to see you coming back to this community when things settle a bit more and you get some time again.

Here's some visibility and ideas of what's next after you've completed a GSOC project and opportunities you may have:

  • You could be voted as Committer
  • You could get hired by one of the companies doing some business on top of the XWiki project
  • Become a Google Code-In mentor
  • You could propose a school project, PhD, etc about XWiki to your teachers!
  • You'll be able to add a nice line to your CV about having participated to an open source project emoticon_smile
  • You can ask for recommendations on LinkedIn, Facebook, etc about your work as a GSOC Contributor
  • (Future, doesn't exist ATM) Your name on the Hall of Fame
  • (Future, doesn't exist ATM) Receive an XWiki GSOC t-shirt
  • (Future, doesn't exist ATM) Be sponsored to take about XWiki at conferences
  • (Future, doesn't exist ATM) Be able to implement some bounties for XWiki and get paid for it
  • (Future, doesn't exist ATM) Be invited to physically participate to an XWiki conference

Org Admin Resources

If you are one of this year's XWiki Organization Administrators, make sure to check out the Organization Admin Guide.

Previous GSoC editions

Tags:
   

Get Connected