Loading...
 

GSOC Ideas 2013

Please read Google Summer of Code 2013 GSOC for more background information on Tiki Wiki CMS Groupware and the community. For information on potential mentors, see GSOC Mentors Bio 2013.

A very important aspect:
"In our case, the GSOC project will be an integral part of Tiki code (not an optional 3rd party add-on) and thus, the student will benefit from feedback from (and interaction with) the broader community being involved in setting the requirements, testing, bug fixing, documentation and translation. Our mentors will ensure that students’ projects and deliverables are well-defined and demarcated, while helping the student integrate with the community, so as to provide an excellent and fulfilling learning experience"

Priority goes to developers who not only provide useful functionality for Tiki but also that have a real project which will live on after GSoC. Eating our own Dogfood has proven beneficial for Tiki’s evolution and we think it will be good for you too :-)

For any questions, you can reach 2013 Tiki’s Google Summer of Code committee at gsoc at tiki.org

General skills
  • PHP
  • Smarty
  • HTML5
  • CSS
  • jQuery
  • Optionally MySQL
  • Zend framework knowledge may be plus
  • Fluent communication in English (at least written) and "community coding"

Template

[+]

GSOC Ideas 2013

Improved spam protection


Since the beginning of 2013, Tiki sites have been under steady attacks from spammers. The spam protection mechanisms we already have in place (ex: Captchas based on images with alphanums, admin approval of new users) seem to now be insufficient. So we need to up our game and come up with spam prevention approaches that are harder to beat and more manageable for site admins.

Many ideas have been suggested on this page:

http://dev.tiki.org/Spam+protection

Various lines of attack have been proposed to deal with this problem, which gives us a lot of flexibility for finding a project that achieve a sweet spot between:

  • Being immediatly releavant for the Tiki community
  • Is interesting and manageable for the student


The various lines of attack are:

  • Better IP filtering
  • Better tools allowing site admins to quickly approve and reject new users in batch
  • More custom Captchas that use semantically deep questions or images.


As an example we give some details about two ideas that have been proposed for Captchas. This is not to say that the choice will be limited to those options. It's just to give a flavour of what the student might be involved in.

Some of these ideas might be implementable as PHP libraries that could be used on their own in projects other than Tiki.

Captchas based on more semantically deep content

The captchas we currently use display images of alphanums and ask the user to type in what he sees. These captchas seem to have been cracked by spammers who attack our sites.

One way to deal with this would be to allow the creation of captchas that are harder to beat, because they are based on questions or images that are semantically deeper than identifying a string of characters and numbers in an image. Here are two ideas along those lines.

Using automatically collected semantically deep images

The images used in current image based captchas, display a string of alphanums. Such images are not very semantically deep.

An alternative approach would be to display an image of something that anyone can recognize (ex: a tree, a cat, a house) and ask the user to tell us what is in the picture. An alternative would be to use Google's "What's Up" approach (http://research.google.com/pubs/pub35157.html). This is an approach that displays a series of images and ask the users to click on the ones that are right side up.

The difficulty with this approach is the collection of semantically deep images that can be recognized by most anyyone. Below is an idea for how to do this.

  • Create a list of 1000 words that refer to everyday things (cat, dog, car, house, street, tree, etc...)
    • This list might be generated manually, or generated automatically from something like Wordnet.
  • Implement a PHP script that can do the following
    • For each word in the list, send a query to some image search engine (ex: Flick), and pull a random image from the list of hits.
  • Possibly generate a list of synonyms for the query word (using wordnet or other resources), that can be used to filter the answer to the question "What do you see in this image?"


These tools could be implemented as an external PHP library which could be used by other projects than Tiki.

Note that there is a possibility that even this kind of Captcha could be defeated using things like Google "similar images" features. Investigating the vulnerability of this kind of captcha might be part of the student's project.

Using manually created semantically deep textual questions

One problem with Captchas that are automatically generated is that, if a machine can produce the question automatically, then it's easier (but not necessarily trivial) for a machine to guess the answer.

One way to deal with this is to put humans in charge of generating a pool of semantically deep textual questions. For example:

"what part of your body lie at either side of your head?"

along with appropriate filters for judging the correctness of the question (ex: must contain regexp ears?)

Questions like these can be answered by most humans, but very few machines other than IBM's Watson can answer them. So one simple way to generate better captchas would be to add simple tools that allow a site admin to create custom questions, monitor their effectiveness, change them at regular intervals, etc...

The problem with this approach it's vulnerable to hybrid crowdsourcing/robot approaches. Humans from a crowd could be used to find the answer to a new deep question, and the answer could then be fed into a robot who starts using it. Because the questions are manually genearated, we may not be able to change them as often as the crowd of human solvers is able to answer them.

However, in the case of Tiki, the attacks we are getting seem to come from fully automated robots. So it's worth looking at this.

Please see:

Difficulty level and expectations:

  • Some of the spam filtering strategies have a low difficulty (ex: common sense questions)
  • Others have a moderate difficulty level (ex: Captchas based on Semantically Rich Images).

Required skills/interests:

  • Required
    • PHP
    • Ability to carry out trial and error and play with new ideas
  • Pluses
    • Smarty
    • Experience with connecting applications to third party services like Flickr.
  • ...

Potential mentors:

  • Alain Désilets


Tiki for Designers and Integrators


Tiki has been a great solution for content editors and site administrators. However, Tiki has failed to bring in a large amount of designers to the table to improve the appeal of Tiki as a solution. Instead of using the same paths as before and building out own tools, Tiki should be aligning with the design community and make sure bringing a theme to Tiki is effortless. At the time of writing this, Bootstrap seems to be where most of the attention is.

In order to align to existing style guides, a significant amount of templates will need to be modified. Ideally, someone could download a compatible theme, upload it in Tiki and be up and running.

Please see:

Difficulty level and expectations:

  • low to moderate
  • Good analysis skills required to identify common patterns.
  • Document the Tiki-specific components in a format designers will understand.

Required skills/interests:

  • Skills in JavaScript, LESS/CSSS, HTML and Smarty
  • Interests in design and integration
  • Patience for going through Tiki's massive codebase

Potential mentors:

  • Jonny B.
  • Gary
  • Luci
  • LPH (for technical assistance that goes out of scope)

Theme Generator

Paired with the project above. The project consists of making it easier to build bootstrap themes for Tiki. The project includes:

  • Scaffolding a new theme project, possibly from an existing theme
  • Including Tiki-specific LESS files
  • Building the bootstrap.css file (using existing tools)
  • Optionally add a way to quickly publish on theme.tiki.org, with attached screenshot

Difficulty level and expectations:

  • low to moderate
  • The resulting procedure should be simple enough and provide clear error reporting when something wrong occurs.

Required skills/interests:

  • PHP,

Potential mentors:

  • Jonny B. ?
  • LPH

Responsive Design


Introduce responsive design behavior for Tiki themes. It should be achieved by CSS changes made only in the base styles/layout/design.css in Tiki trunk using media queries.

Please see:

  • http://en.wikipedia.org/wiki/Responsive_web_design
  • http://www.w3.org/TR/css3-mediaqueries/

Difficulty level and expectations:

  • Moderate difficulty
  • The result should be em based responsive design

Required skills/interests:

  • Needs to know about CSS3 and media-queries very well
  • Interest in latest responsive design trends

Potential mentors:

  • luciash d’ being
  • ...

Tiki has enough features? Grant 100 wishes in a 100 days.

In Tiki, all bugs and features requests are added to a "wishlist". It doesn't matter how many features there already are, new ideas always are suggested.

But you want to help make it rock solid everywhere? Help squash bugs and improve existing features.

The most important aspect of this project is that at the end of the summer, you will know Tiki inside out and would have worked with all active members of the community. And everyone will love you. Also, hopefully, we'd have found a new Tiki developer who's in love with Tiki too and be a long term Tiki developer. :-)

The community will vote on bugs and feature requests and this, along with the experience of the mentors, will determine the priorities.

We suggest students begin from relatively easier bugs to get a feel of the code base and then move on to the difficult ones once they are comfortable with it.

Please see:

Difficulty level and expectations:

  • Low to High (difficulty gradually increases with time)
  • Must enjoy working with open source communities
  • People oriented coder preferred
  • Interest in learning more about software bug/issue management in an open source environment

Required skills/interests:

  • PHP
  • Smarty
  • Might need to have knowledge of the following:
    • HTML5
    • CSS
    • jQuery
    • MySQL
    • Zend Framework


Potential mentors:

  • Louis-Philippe Huberdeau
  • Jonny Bradley


Write some high quality profiles


Tiki profiles are a quick and efficient way of configuring a Tiki site.
Applying a Tiki profile can set any number of configurations settings and it can also create objects (pages, trackers, file galleries) and content.
It makes it possible to avoid all the tedious work of getting plenty of configuration settings right and compatible.
This is done by creating elaborate pages in YAML syntax, which can do all the above. Elaborate profiles mean elaborate YAML pages.

The Tiki community currently provides a handful of public profiles which serve to demonstrate the power and flexibility of Tiki.
These profiles are not sufficient for creating a completely operational website. Some of them do not need to be. It would not make sense for a business website to be set-up in a couple clicks, as it needs to differentiate from others with an unique derivation of theme and layout.
Some others should.

This GSOC Idea is about getting one or more quality profiles available. These would not be demo profiles but profiles sufficient for a fully functional site. For each profile, the work will involve:

  • collecting the needs for such a website which immediately answers the needs of the creators.
  • set up a website which people would be ready to use for the stated purpose
  • code the YAML and template pages which constitute the profile which can create the above site (this is not the easy part!)

Difficulty level and expectations:

  • Medium to High (difficulties are not expected to be overly technical in nature)
  • Must enjoy working with open source communities
  • Needs empathy for users viewpoints. Experience on the dynamics of online communities appreciated.
  • Attention to details, initiative, ability to get things moving in autonomy and to communicate on decisions taken and issues encountered

Required Skills/Interests:

  • YAML
  • Basic programming
  • Deep knowledge of Tiki configuration

Profile ideas

Tiki for activists

Mentors:


Some content (objects) could be easily reused from here (exporting yaml code from trackers as a starting point where needed, etc):

  1. http://unaltremonespossible.org
  2. http://intercanvis.net


Plus:

  • using PluginConvene for mimic doodle to convene events and choose the best options available.
  • using PluginTrackerCalendar to allow scheduling actions in a collaborative, with all the power of Tiki trackers, and the user friendliness of the Drag&Drop (or resize) interface of FullCalendar-resourceviews (which is what powers PluginTrackerCalendar ).

Other profiles

Student-proposed profiles that make sense are encouraged

\#list of tiki profile ends here
--

Official phpBB forum importer

A number of community members have a number of task specific-scripts to import PHP-BB forum content into Tiki. However, there is a need for an official import script that is in the core of Tiki, as these scripts were task specific and not generalized enough.

The student's role will be to study these existing scripts, as well as propose and develop new/better approach to solving the same problem, and together with the mentor, develop importers that will be part of the core distribution of Tiki.

A similar project was used by Tiki when Tiki was a part of GSoC 2009. It was decided that both MediaWiki and phpBB importer would be too much of work for one summer and phpBB was dropped. We plan to complete it this summer.

Please see:

Difficulty level:

    • Moderate

Required skills/interests:

    • PHP
    • SQL / MySQL
    • Regular expressions
    • Familiarity with phpBB
    • Data migration

Potential Mentors

    • Rodrigo Primo (Tiki developer who worked as a student on the project in GSoC 2009)


Improve the existing MediaWiki and WordPress importer

There are a good number of people moving from MediaWiki and WordPress to Tiki. The importers for these already exist but they could do with quite some improvements. In this project, the students must be willing to study the existing scripts, find faults and fix them, resolve known issues, figure out areas for improvement and add new features to keep the scripts in line with the recent changes to the respective softwares. There were a few features that can't be imported with the existing scripts. It'd be great if they could be implemented too.

You can have a look at the list of known issues, features that can't be imported at the moment in the links provided below.

Please see

Difficulty Level

    • moderate to high

Required skills/interests:

    • PHP
    • SQL / MySQL
    • Regular expressions (for the MediaWiki importer)
    • Familiarity with WordPress and MediaWiki
    • Data migration

Potential mentors:

Translation Tools Integration for Cross Lingual Wiki Engine project

The Cross Lingual Wiki Engine project aims at designing, developing and testing lightweight wiki tools to support communities that collaboratively create and maintain content in multiple languages.

Thus far, we have implemented basic features which could be used by a community of motivated and technically sophisticated users, to collaboratively produce multilingual content in simple scenarios.

The GSOC project is specifically aimed at integrating translation tools (both online services such as translate.google.com, open source dictionary and terminology software, as well as text alignment tools.

Such tools could include:

  1. PhpDictionary: http://sourceforge.net/projects/phpdictionary/
  2. GlossWord: http://sourceforge.net/projects/glossword/
  3. bitext2tmx: http://sourceforge.net/projects/bitext2tmx/
  4. PHP implementation of Dijkstra's algorithm http://en.giswiki.net/wiki/Dijkstra%27s_algorithm#PHP

Please see:

http://www.wiki-translation.com

Required skills/interests:

  • PHP
  • Smarty
  • jQuery
  • CSS

Difficulty level:

  • moderate


Mentors:

  • Alain Désilets



Examples

[-]

Here are some examples from the past

Edit UI Revamp Project


The current interface provided to users to edit wiki page content has been criticized for being confusing for users, because there are too many fields for information cluttering up the screen. The strategy to overcome this is to hide information/input fields by default, using UI elements such as twisters to expose necessary UI to show more information/input fields, combined with an overall redesign of the editing interface. There could also be semi-intelligent exposing of information/input fields depending on context and "helpers" that popup providing hints for users.

The Edit UI Revamp design process is already well underway. The goal of the GSOC project is to implement a consistent look and feel for the editing interface for Tiki. The specs are already almost complete and it is the student's role to implement the code necessary to create this UI based on these specifications. The student will get the opportunity to contribute his own ideas to refine the existing specifications.

See Edit User Interface Revamp for more information.

Potential mentors:

  • Rick Sapir
  • Gary Cunningham-Lee
  • luci aka luciash d' being
  • Marc Laporte
  • Jonny Bradley


Difficulty level:
Moderate

Required skills/interests

  • Strong background in Usability.
  • Interest in Tiki as a whole as the whole application will need to be gone through and making the UI nicer and more consistent.



Keywords

The following is a list of keywords that should serve as hubs for navigation within the Tiki development and should correspond to documentation keywords.

Each feature in Tiki has a wiki page which regroups all the bugs, requests for enhancements, etc. It is somewhat a form of wiki-based project management. You can also express your interest in a feature by adding it to your profile. You can also try out the Dynamic filter.

Accessibility (WAI & 508)
Accounting
Administration
Ajax
Articles & Submissions
Backlinks
Banner
Batch
BigBlueButton audio/video/chat/screensharing
Blog
Bookmark
Browser Compatibility
Calendar
Category
Chat
Comment
Communication Center
Consistency
Contacts Address book
Contact us
Content template
Contribution
Cookie
Copyright
Credits
Custom Home (and Group Home Page)
Database MySQL - MyISAM
Database MySQL - InnoDB
Date and Time
Debugger Console
Diagram
Directory (of hyperlinks)
Documentation link from Tiki to doc.tiki.org (Help System)
Docs
DogFood
Draw -superseded by Diagram
Dynamic Content
Preferences
Dynamic Variable
External Authentication
FAQ
Featured links
Feeds (RSS)
File Gallery
Forum
Friendship Network (Community)
Gantt
Group
Groupmail
Help
History
Hotword
HTML Page
i18n (Multilingual, l10n, Babelfish)
Image Gallery
Import-Export
Install
Integrator
Interoperability
Inter-User Messages
InterTiki
jQuery
Kaltura video management
Karma
Live Support
Logs (system & action)
Lost edit protection
Mail-in
Map
Menu
Meta Tag
Missing features
Visual Mapping
Mobile
Mods
Modules
MultiTiki
MyTiki
Newsletter
Notepad
OS independence (Non-Linux, Windows/IIS, Mac, BSD)
Organic Groups (Self-managed Teams)
Packages
Payment
PDF
Performance Speed / Load / Compression / Cache
Permission
Poll
Profiles
Quiz
Rating
Realname
Report
Revision Approval
Scheduler
Score
Search engine optimization (SEO)
Search
Security
Semantic links
Share
Shopping Cart
Shoutbox
Site Identity
Slideshow
Smarty Template
Social Networking
Spam protection (Anti-bot CATPCHA)
Spellcheck
Spreadsheet
Staging and Approval
Stats
Survey
Syntax Highlighter (Codemirror)
Tablesorter
Tags
Task
Tell a Friend
Terms and Conditions
Theme
TikiTests
Timesheet
Token Access
Toolbar (Quicktags)
Tours
Trackers
TRIM
User Administration
User Files
User Menu
Watch
Webmail and Groupmail
WebServices
Wiki History, page rename, etc
Wiki plugins extends basic syntax
Wiki syntax text area, parser, etc
Wiki structure (book and table of content)
Workspace and perspectives
WYSIWTSN
WYSIWYCA
WYSIWYG
XMLRPC
XMPP




Useful Tools