XWiki @ Google Summer of Code 2017

Last modified by Eduard Moraru on 2018/01/08 11:37

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

XWiki has also been participating to Google Code-In since 2017.

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.

XWiki Guidelines

Being part of the XWiki community means knowing our rules and practices. As a GSOC student you need to make sure you read and apply our guidelines. 

Student 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 2017 (4)

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

DokuWiki importer by Shubham Jain

Filter Stream framework allows converting from one wiki representation to another. The idea here is to provide a Filter input module for DokuWiki so that it's possible to convert from DokuWiki to any Filter output format.

You can get inspiration from http://extensions.xwiki.org/xwiki/bin/view/Extension/Import+DokuWiki+into+XWiki+Application and http://extensions.xwiki.org/xwiki/bin/view/Extension/Dokuwiki+To+XWiki2+Extension.

More extension repositories by Krzysztof Płachno

Right now XWiki Extension Manager support plain Maven and XWiki Extension (http://extensions.xwiki.org) repositories.

The idea is to add support for as much other kind of repositories as possible.

Here are some good examples:

  • Nexus
  • Bintray
  • Pypi

See http://dev.xwiki.org/xwiki/bin/view/Design/ExtensionManagerRepositories for more details.

Glossary Application by Sarthak Gupta

Develop a Glossary Application in XWiki.

The idea would be to present a list of definitions in the Glossary App (one page per definition), letting users create new Glossary items. This should be developed with the App Within Minutes application.

Then we have 2 possibilities:

  • Writing a Rendering Transformation to automatically create links to the Glossary item page when a page renders.
  • Provide a Macro so that users can insert manually to both link to a Glossary item page and if this page doesn't exist to directly bring the user clicking it to a new page for creating that Glossary item

Of course there are plenty of other features that can be imagined and it's left to the student to make the best possible Glossary app in the allocated time!

RedPen Integration by De Sheng Chuan

The idea is to be able to integrate RedPen inside XWiki. RedPen is checkstyle for documentation. See this presentation to know more about it.

There are several integrations possible with XWiki that we could imagine:

  • As an XWiki extension that can be installed in an XWiki instance and that would validate the content written when pressing the "save" button, allowing the reader to review the errors and either confirm the save or go back to editing and fixing the problems.
  • As an XWiki extension that can be executed inside the wiki to validate several pages (this should be done in a Job with a progress bar)
  • As a plugin inside RedPen to support the XWiki Syntax. This could be mandatory required for the previous 2 integrations since pages are saved in Wiki format (when you press save in the WYSIWYG editor the content is transformed to wiki syntax). However we could also imagine that the RedPen integration would take the page content and render it using the plain text renderer and then execute the check on that content too.

An even better integration would be the ability to run RedPen on the fly as user types content but I don't know if RedPen allows for this.

 

Coordinated by


Student
Estimated workload: 2 months.
Read more...

Proposed Projects (9)

Students can come up with their own ideas, but the ideas need to be proposed and discussed on the mailing list.

Finish and improve Android XWiki authenticator and contact synchronization

The idea is to continue the work on XWiki Authenticator and contacts started during GSOC 2016.

The main use case is to get all the contacts of your organization's intranet automatically synchronized on your phone so that you don't have to use a browser, go to your intranet, login and search form some user to see if he entered his phone in his profile. The other important part is to make sure this is as integrated and as standard as possible from Android point of view and allow other applications to use registered XWiki authenticators to access an XWiki instance without the need for the user to give the password to that application.

Current code: https://github.com/xwiki-contrib/android-authenticator
Known bugs/improvements: http://jira.xwiki.org/browse/ANDAUTH
Documentation: http://extensions.xwiki.org/xwiki/bin/view/Extension/Android+authenticator/
 

The first requirements for this project during this GSOC are:

  • get something stable enough to release a 1.0 version, especially a good support of bad network
  • a nicer and more polished configuration UI

Then any improvement idea is welcome. You can find some ideas already listed on jira and here are a few others:

DokuWiki importer

Filter Stream framework allows converting from one wiki representation to another. The idea here is to provide a Filter input module for DokuWiki so that it's possible to convert from DokuWiki to any Filter output format.

You can get inspiration from http://extensions.xwiki.org/xwiki/bin/view/Extension/Import+DokuWiki+into+XWiki+Application and http://extensions.xwiki.org/xwiki/bin/view/Extension/Dokuwiki+To+XWiki2+Extension.

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:

More extension repositories

Right now XWiki Extension Manager support plain Maven and XWiki Extension (http://extensions.xwiki.org) repositories.

The idea is to add support for as much other kind of repositories as possible.

Here are some good examples:

  • Nexus
  • Bintray
  • Pypi

See http://dev.xwiki.org/xwiki/bin/view/Design/ExtensionManagerRepositories for more details.

Improve l10n.xwiki.org

XWiki community maintain a wiki with a special application to help translation XWiki projects on. See http://l10n.xwiki.org. Sources can be found on https://github.com/xwiki-contrib/application-l10n (but not that it's a bit older than http://l10n.xwiki.org/ which is usually modified directly in pratice).

The goal of this GSOC is to improve it. The student will have to study it and propose improvements, there is no definite list of things to do.

Various ideas:

  • make all this a lot more dynamic
  • provide tools to refactor things a bit:
    • it's hard to move some translation from one space to another (for example the applicationresources on XE should be on Platform)
  • use new nested spaces to better organize resources (the whole platform is in the same space right now for example)

etc.

Glossary Application

Develop a Glossary Application in XWiki.

The idea would be to present a list of definitions in the Glossary App (one page per definition), letting users create new Glossary items. This should be developed with the App Within Minutes application.

Then we have 2 possibilities:

  • Writing a Rendering Transformation to automatically create links to the Glossary item page when a page renders.
  • Provide a Macro so that users can insert manually to both link to a Glossary item page and if this page doesn't exist to directly bring the user clicking it to a new page for creating that Glossary item

Of course there are plenty of other features that can be imagined and it's left to the student to make the best possible Glossary app in the allocated time!

RedPen Integration

The idea is to be able to integrate RedPen inside XWiki. RedPen is checkstyle for documentation. See this presentation to know more about it.

There are several integrations possible with XWiki that we could imagine:

  • As an XWiki extension that can be installed in an XWiki instance and that would validate the content written when pressing the "save" button, allowing the reader to review the errors and either confirm the save or go back to editing and fixing the problems.
  • As an XWiki extension that can be executed inside the wiki to validate several pages (this should be done in a Job with a progress bar)
  • As a plugin inside RedPen to support the XWiki Syntax. This could be mandatory required for the previous 2 integrations since pages are saved in Wiki format (when you press save in the WYSIWYG editor the content is transformed to wiki syntax). However we could also imagine that the RedPen integration would take the page content and render it using the plain text renderer and then execute the check on that content too.

An even better integration would be the ability to run RedPen on the fly as user types content but I don't know if RedPen allows for this.

 

Coordinated by


Student
Estimated workload: 2 months.
Read more...

ePub Creator

The project is to create an authoring tool to create an ebook that works on mobile devices: Android, iOS or any other. The objective is to export spaces of wiki pages within an ePub book (a zip of XHTML files) that can be read comfortably on mobile devices, with or without internet access.

The software should complement the XWiki collaborative editing mechanism to support the author in previewing and verifying the display of the content on various devices (e.g. warning that a given tag is not going to work on the profile Aldiko on Android XVGA, or presenting on a window of classical device sizes to insure a reasonable layout is achieved). It should also apply media-conversion, e.g. scale image or adjust videos to ensure an embedding that is reasonable in size and that works on the target sizes and platforms.

A very successful contribution should, with a small amount of changes, allow developers to also export to other package formats such as Mobi, SCORM or Common Cartridge and maybe even deliver Android's APK applications, integrating Cordova on the server.

Discussion: is to happen on the xwiki-devs mailing-list as well as on the #xwiki IRC channels.

Delivery: open-source code (LGPL) using XWiki, Groovy, Velocity.

Coordinated by


Estimated workload: several weeks.
Read more...

Search calibrator

As with any other search tool, XWiki's search experience is dependent on the data it searches. Should matches in the title of an attachments be prioritized compared to section titles of pages? Should a particular language transformation be desired?

The tool to be designed is an exploration tool to answer these questions based on the data.

Typically it would allow experts in the domain to see search results and report on them giving feedback on the validity of the results. For example, this tool would calculate precision and recall based on the feedback.

It would also include a method for the search tool manager to see the explanation of a search result so as to understand why a given score has been given.

Finally, the tool would come with a workflow explaining how a search tool can be evaluated and adjusted, in the form of a video and a text tutorial.

Coordinated by


Estimated workload: several weeks.
Read more...

Contact us

You can ask for more information about each project proposal and interact with the community and mentors through the usual communication channels: mailing list (devs AT xwiki.org) or the IRC 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 student
  • (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

Previous GSoC editions

Get Connected