Ideas for GSoC '20

Hi all,
Hope all of you are doing great.

I had some ideas for 2020’s GSoC projects so I wanted to share them.

1. Advancement of Livetable - Extension
Livetable is probably the most used XWiki extension. It’s great as it is now but there are some upgrades that can be done to enable more customization for styling table data.

These advancements could be in the form of,

  • Adding options for displaying only a single search bar for all data
  • Making only certain columns searchable and don’t display other columns search box
  • Adding Solr search like filter options for data, there can be a full filter mechanism for tables
  • Options for changing and defining table-specific themes
  • Improving the table’s responsive behavior, finding ways for better displaying tables on mobile platforms
  • Adding icon support for delete, view or any other action
  • Other improvements can be suggested by the students

2. Improvement of Excel Plugin - Extension
Excel plugin is pretty old but it can be very useful for certain firms who make use of Microsoft Office tools.

The project’s activities could be,

  • Adding support for the newer XLSX format
  • Importing options for getting the excel sheet as a livetable in XWiki
  • Creating XWiki objects with the imported data and manipulating them
  • Merging multiple sheets
  • Displaying multiple sheets within an excel file as tabbed content in XWiki

3. Mailing Assistant Application
Easy to configure contact forms is where this idea originates from. I didn’t find any plugin in XWiki that could be easily used for creating a contact form. This could probably be done using velocity but having an easy to use UI for configuring options for such applications is necessary for the users.

Application’s functions could include,

  • UI based creation of contact forms
  • Macro for including the contact form on any XWiki page
  • Other possible features could be suggested by the students

4. Interactive Maps Application Macro (?) - Extension
Not sure if this could suffice as a 3 months long project. Integration of some leaflet plugins can also be a part of this.

Please let me know your thoughts on these ideas.
Also, I would like to mentor a project with XWiki in GSoC '20. If there is something that should be done to be a mentor, please let me know.

Best,
Fawad

1 Like

Hi @ginpachi

Thanks for starting this topic! And for the good ideas :slight_smile:

FYI, XWiki SAS has hired an intern, Clement Desableau, who will start on Feb 2020 and will work on Livetable v2 for 4 months. The scope of his work is not fully defined but the following ideas below have been discussed with him and will need to be proposed to the XWiki community to gauge the interest. Clement will likely work on an Extension first, before it can replace the existing LT (if the xwiki devs choose so).

Ideas:

  • Work on the ability to create and edit LT using a spreadsheet view
    • Headings would contain xproperty definitions
    • Ability to create/modify page/xobjects by entering data directly in the spreadsheet cells
  • Realtime-enabled

Other ideas in addition to yours:

  • Ability to offer several LT views in addition to the current table view:
    • Card view
    • Calendar view (would work when one column is of type Date)

AFAIK this is already supported.

Thus my recommendation would be to wait until Clement has finished. AFAIK he’ll work on this from Feb 2020 till May 2020, so in theory it should be possible to have a GSOC student continuing the work. In practice, I think the core dev team will want to take over from Clement and integrate the work the platform/continue it, instead of a student.

WDYT?

Thanks

@vmassol,

Great to hear that Clement would be working on it. The ideas you propose are great, especially the different LT views. That would be really helpful for the users.
Depending upon the development done by Clement, it might be better for a core dev team member to continue the work as LT is an important extension of XWiki and a new student wouldn’t be as much experienced to better implement the new changes. But if it’s something that is not prioritized by the dev team, then the student can be a big help.

It would be great to hear your thoughts about the other ideas as well.

Cheers.

Note that we already support importing spreadsheets (excel, etc) through the office import feature. So all the use cases you mention regarding importing should be done there probably.

AFAIU the Excel plugin is used to view excel files content attached to wiki pages, and there’s no import. Right?

I don’t know how useful this is to the xwiki project but if we want to touch this plugin it should be rewritten using components and made an extension.

It also seems to be using the old Charting Plugin: https://extensions.xwiki.org/xwiki/bin/view/Extension/Charting%20Plugin

This also needs to be rewritten completely and to use some more modern charting solution (d3.js, chart.js, etc).

EDIT: it seems to be using syntax 1.0: https://extensions.xwiki.org/xwiki/bin/view/Extension/Excel%20Plugin#HUsage-1

AFAIU the Excel plugin is used to view excel files content attached to wiki pages, and there’s no import. Right?

That’s right Vincent. If the import features are a part of the office import then the possible functions for this project can be redefined as,

  • Support for XLSX format
  • If the content is to be processed on the front-end. Then the integration of the newer SheetJS will be a good option (https://github.com/SheetJS/sheetjs)
  • Ability to display multiple sheets as tabs
  • Mapping custom tab names with sheets
  • Using newer Chart.js Integration extension with the application
1 Like

The card view would be awesome for this page for example: https://www.xwiki.org/xwiki/bin/view/Main/Feedback/Testimonials (needs to be transformed into an app first ofc) :slight_smile:

Just a thought about the tabular export (CSV, Excel or other possible formats): one key improvement in my opinion would consist in enabling data streaming: unless I’m mistaken, the current exporter builds the whole sheet in memory before sending it over the network, which can cause memory exhaustion in some cases (I faced it in some projects). It seems that the Apache POI framework may allow this, not sure, to be investigated. POI: acronym for “Poor Obfuscation Implementation” apparently :–)

A note about about import in order to mention the Batch Import Application which could either be used as is or extended I guess?

A note about about import in order to mention the Batch Import Application which could either be used as is or extended I guess?

That will be an impressive improvement. Would that be a part of the Improvement of Excel Plugin project?

Is this idea valid for GSoC? The application will be like a UI based implementation of the Mail Sender API with options for graphically creating mailing forms and newsletters.

@ginpachi, This could even replace the Excel plugin possibly I guess, not sure (since plugins are deprecated as far as I understand, in favour of extensions).

Yes.