Actions

Project ideas for GSoC 2015: Difference between revisions

From LimeSurvey Manual

Line 106: Line 106:


'''Mantis'''
'''Mantis'''
* [bugs.limesurvey.org/view.php?id=8725]


bugs.limesurvey.org/view.php?id=8725


'''Mentor(s)'''
'''Mentor(s)'''

Revision as of 17:11, 20 February 2015

Welcome

Project ideas

Update Limesurvey Template Engine to use Twig

Currently Limesurvey uses its own custom coded template engine. Since the framework used for Limesurvey ("Yii") supports the Twig template engine we plan to replace the custom coded template engine with Twig's template engine for better code maintenance and embedding with the Yii framework.

Steps

  1. Check how the current Limesurvey templates are structured
  2. Dig into the related code to find out how the underlying Limesurvey template engine works
  3. Get familiar with the structure of Twig templates
  4. Test-edit one of the shipped templates and make it twig-compatible
  5. Embed the Twig template engine into Limesurvey
  6. Test your test template and the Twig template engine carefully
  7. Adjust further shipped Limesurvey templates

Skills

You should know how a template engine and framework works. In addition to that HTML and CSS skills are required for adjusting the shipped Limesurvey templates. You should also know about PHP because switching the template engine will require adjustments of the Limesurvey source code as well.

Difficulty

Easy to medium

Mentor(s)

Marcel Minke (Mazi)


Re-organize the Limesurvey Admin Interface for better Navigation Usability

When creating a survey at the Limesurvey admin interface the current page structure is: survey list -> survey question groups -> questions (within the current group)

That structure forces users to often navigate using the drop down and back/next buttons when dealing with larger surveys. Having a new menu on the left presenting a structured overview of all question groups with all their questions would help a lot to easily jump from question X to question Y. That new overview should contain icons for:

  • Deleting a question/question group
  • Directly jumping to the survey question/question group edit mode
  • Copying a survey question
  • Adding a new question/question group at the appropriate survey section

Steps

  1. Check how the current Limesurvey survey designer is structured
  2. Have a look at the different features available on the different levels (survey/question group/question)
  3. Think which features could additionally be added to the icon list above
  4. Check the related code for creating a full overview of question groups + questions
  5. Adjust the admin GUI to embed the additional overview on the left
  6. Create the code for the new overview and the functions presented by the different icons (most of that code is already there)
  7. Testing, testing, testing...

Skills

You should be familiar with the "Yii" framework we are using for Limesurvey or at least other PHP frameworks. A good understanding of object-oriented PHP programmierung is required as well. For adjusting the GUI moderate HTML + CSS skills are needed.

Difficulty

Easy

Mentor(s)

Carsten Schmitz


SettingsWidget for core

Use and update (if needed) extension SettingsWidget for core Survey forms.

Some forms to be updated:

  • Survey settings
  • Personal settings
  • Users settings
  • Export settings

Skills

PHP, html, js and css

Difficulty

Easy to moderate : some settings can be more diffcult

Link on mantis

Mentor(s)

Denis Chenu

Expression Manager javascript optimisation

Actually Expression Manager use inline javacript for relevance , updating class and updating HTML. Then user or dev can not use own function. The task is to update Expression manager inline javascript to use javascript event only on update expression manager javascript to call actual function on this events.

Skills

Some PHP to update Expression Manager class, jquery/javacript for javascript. A jquery plugin can be a great idea.

Difficulty

Moderate

Mantis

  • [bugs.limesurvey.org/view.php?id=8725]


Mentor(s)

Denis Chenu

Javascript optimisation on question

Due to old system, each input have onchange/onkeyup function. The idea is to remove this inline function and use only javascript existing event.

Skills

Some PHP to update qanda, jquery for new javascript function.

Difficulty

Low, but some test can be hardest.

Mentor(s)

Denis Chenu

Idea template

Describe the idea here in general terms

Skills

Explain what sort of coding skills would be needed for a student to implement this project

Difficulty

Explain the level of difficulty involved

Mentor(s)

Put your name (and tag) here if you are willing to mentor a student for this idea