Project ideas for SOC 2015

Release goal of moin2 is "a basic, but powerful wiki".

For important infos about moin2, installation and development read MoinMoin2.0 and the stuff linked from there.

For a list of sites which use MoinMoin see MoinMoinWikis page.

As we still can't release moin2 because it doesn't fully work yet, still looks ugly, misses stuff, etc. - we should focus on the release-critical stuff and not work on optional or non-essential stuff. Students: please keep that in mind when writing your application.

Mentors/Helpers: Before putting project ideas here, please check whether the idea is in that scope.

Hints for students

In general, the success of a (SOC) project depends quite a bit on good planning:

Some of this stuff can and should be done before you submit your proposal / before coding starts.

Start preparing early, get in contact with us early.

To get in contact with us, use the MoinMoinChat (preferred) or the MoinMoinMailingLists.

If you like to publically express your interest in some project idea, put your name in the "Students interested" lines. Please note that this is completely optional, voluntary and for student's mutual information. Formally, only stuff in melange will count.

As we are participating under PSF umbrella, for the Application Template please see there: https://wiki.python.org/moin/SummerOfCode/ApplicationTemplate2015.

If you want to work on your application on the wiki, you can request an ACL protected subpage of your wiki homepage, so that only mentors can read it (but not other students).

Hints for mentors

Please add yourself in some "Mentors interested" lines. If you don't think you should be primary mentor for this, but you would co-mentor this, put your name in parentheses. This is just for info, formally only stuff in melange will count.

Project Ideas

These are just some basic and sometimes vague ideas. If you want to do a SOC project, we expect much more detailled/specific ideas and time planning from you.

Improve existing themes

In general: Create a well-structured, consistent, good looking and well usable UI/UX for moin2.

Project applications require details about what you would improve and how. You could start by looking at the current UI issues in the issue tracker.

Difficulty: intermediate

Requires: Bootstrap 3 coding and design skills, usability, HTML/CSS/jQuery/JS/Python (you will also need to deal with jinja2 templates, but if you know any other templating language and python, that should be easy)

Mentors interested: AjiteshGupta, SaurabhKathpalia

Students interested: Milap Bhojak, Yask Srivastava

Trash and Purge Policy

UI: Visualize "deleted" items (trashbin view), enable undeletion (for users), enable destruction (for admins).

To purge means to permanently remove stuff stored in the wiki storage, the policy would define the rules for automatically doing that.

Difficulty: intermediate

Requires: Python, HTML/CSS/Jinja2 for UI parts

Mentors interested: ThomasWaldmann, AjiteshGupta

Students interested: Manas Joshi, Nalin Yadav

Improve Issue tracker

There is an existing implementation of a simple issue tracker within moin2, but UI/UX is lacking.

Difficulty: intermediate

Requires: Python, HTML/CSS, jQuery/JS, Flatland/Jinja2, UI/UX skills

Mentors interested: AjiteshGupta, SaurabhKathpalia

Students interested: Vipul Sharma

Improve Blog

There is an existing implementation of a simple blog within moin2, but UI/UX is lacking.

Difficulty: intermediate

Requires: Python, HTML/CSS, jQuery/JS, Flatland/Jinja2, UI/UX skills

Mentors interested: AjiteshGupta, SaurabhKathpalia

Students interested:

Validation of Wiki Contents

Use metadata to check whether the contents are still valid (not corrupted).

Difficulty: intermediate

Requires: Python

Mentors interested: ThomasWaldmann

Students interested:

Moin2 uses emeraldtree (which is a fork of elementtree) for dealing with XML.

Some stuff there needs to be fixed / added as a requirement for improvements in moin2:

Difficulty: intermediate

Requires: Python, XML/HTML5, XPath

Mentors interested: ThomasWaldmann, BastianBlank

Students interested: AviralDasgupta

Improve DOM converters

Moin2 uses an internal "moin-DOM" to represent a document in a tree-structure. This is used as intermediate format for all kinds of input and output formats.

We have quite a lot of DOM converters, but they need improvement:

Difficulty: intermediate

Requires: Python, XML/XPath, experience with tree representations, elementtree (emeraldtree) plus the input/output formats mentioned above.

Mentors interested: ThomasWaldmann, BastianBlank

Students interested: AviralDasgupta

Unify macros and converters

It's somehow the same, but implemented differently.

But:

Port missing moin 1.9 macros and variables, see https://moinmo.in/HelpOnMacros and https://moinmo.in/HelpOnVariables.

Difficulty: intermediate

Requires: Python, XML

Mentors interested: ThomasWaldmann, BastianBlank

Students interested:

Moin 1.9 data cleanup

Some day, we'll want to migrate moin 1.9 data into moin2. But if one looks into the data storage of a typical moin 1.x installation (esp. if it was open to the public), one sees that there is quite some need for cleanup (and we should do that before importing into moin2). Also, multiple separate wikis need cleanup if they shall become a farm wiki (or even a single wiki with multiple namespaces) with common users.

Code should be written in a way so it can be used even for wikis staying on 1.9.x (and not migrating to moin2 at the same time).

Difficulty: intermediate

Requires: Python (maybe also UI stuff, depending on how you suggest to solve)

Mentors interested: ThomasWaldmann

Students interested:

Collab editor

We could make pretty good use of a collaborative editor for editing (text) items.

Maybe use http://togetherjs.com

Issues to check before proposing this:

Difficulty: intermediate

Requires: html5/jinja2, javascript, python

Mentors interested: [ThomasWaldmann(python/moin only)]

Students interested: Sagar Ghuge

Difficulty: intermediate

Requires: Python, email data format

Mentors interested: BastianBlank

Students interested: TonyThomas

Authentication

Moin has several authentication methods, see https://moin-20.readthedocs.org/en/latest/admin/configure.html#authentication. The default MoinAuth is used almost exclusively by developers. The other authentication methods are buggy and have open issues. Identify new issues and fix problems related to authentication.

Difficulty: intermediate

Requires: Python, OpenID, LDAP, ...

Mentors interested:

Students interested:

Your Idea?

You may suggest projects based on own ideas that are not found on this page.

If you like to do that, it is a good idea to discuss them with the developers first so we can see if they are in scope of the moin 2.0 release, etc. - please keep in mind that this takes some time, so start early.

Other

MoinMoin: GoogleSoc2015/InitialProjectIdeas (last edited 2015-04-24 20:44:16 by 14)