Contents
Project Ideas for Google Summer of Code 2010
Logged-in users may edit this page.
Mentors and students may announce their interest in some specific project(s), maybe this helps us to avoid collisions.
Of course each student may apply for multiple projects - as well as multiple students may apply for the same/similar project.
Only the stuff that gets submitted via the GSOC webapp will count in the end.
General
These are some initial project ideas that should guide students when writing an application for GoogleSoc2010 (see the disclaimer there).
These ideas are very brief - we know that and we do that on purpose, because we expect from you that you get active:
- use moin
- look into the moin code
- talk to moin developers and other moin users
- work out a more detailled project proposal before writing your application.
If your application is as brief as the ideas listed below, we see that you did not work on it enough.
Mentoring
Mentoring will be done by the people listed on MentorGroup - these are usually long term MoinMoin developers.
Get in contact with us!
If you consider doing Summer of Code with us, get in contact with us early! Best way is IRC, see MoinMoinChat for details.
Required skills
We require good Python skills for all projects, except otherwise noted.
We'll help you with improving your Python (and other) skills, but there should be a good base to build on.
MoinMoin versions
MoinMoin 2.0 (short: moin2, mm2, m2) is our current development focus, we're doing heavy changes there about how moin works and what it is able to do. Top priority for moin2 is getting a usable wiki with basic functionality.
MoinMoin 1.9 (short: moin1) is our latest stable release (and the last 1.x release), no big core code changes are wanted there, but doing useful work in the modular/plugins is possible, esp. if these parts don't change much in moin2.
Project Ideas (moin2 based)
Project: Improve storage indexing/search, improve sqlalchemy backend
- item metadata indexing (requires: good SQLalchemy or other DB/kvstore skills)
- item metadata/data search (with/without xapian)
- SQLalchemy backend - improve its performance and resource usage, more testing (requires: good SQLalchemy skills)
- allow plugins to add metadata?
Students interested: Ashish Sharma
Mentors interested: ThomasWaldmann
Supporters: RemcoBoerma
DOM based format transformations
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.
Requires: experience with tree representations, XML, elementtree (emeraldtree) plus the input/output formats mentioned below.
Project: Tree formats support
html -> DOM (for gui editor)
docbook -> DOM (there is no docbook support in moin2 yet)
DOM -> docbook (for gui editor and other applications)
Students interested: DmitryAndreev ValentinJaniaut
Mentors interested: EugeneSyromyatnikov, RadomirDopieralski, ReimarBauer, BastianBlank
Project: Wiki-like formats support
DOM -> wiki (for gui editor and other applications)
reST -> DOM
DOM -> reST (for gui editor and other applications)
Mediawiki markup -> DOM
Students interested: DmitryAndreev
Mentors interested: EugeneSyromyatnikov, RadomirDopieralski, ReimarBauer, BastianBlank
Misc. part-time Projects
pygments supported text format -> DOM (there is some code already, needs further improvements)
DOM -> SVG (can be used by svg-edit, is rendered by any modern browser, can be converted to various formats)
- XSL-FO is more adequate here, it is a page oriented output format
Students interested:
Mentors interested: EugeneSyromyatnikov, RadomirDopieralski, ReimarBauer
Project(s): Glashammer framework
Maybe we can reuse some code from Glashammer WSGI Application Framework for:
framework
- i18n (basic functionality is there, based on babel, needs to get more dynamic though)
- plugins (some stuff there, some more maybe coming soon)
- event system
- auth system
- csrf protection middleware (needs more work)
- web forms (in flux, to be seen)
- database connectivity
- sessions
- templating support (theming stuff maybe coming soon)
So we don't need to reinvent wheels (glashammer didn't either, quite some stuff comes from zine, it uses werkzeug, jinja2, babel, ...).
Note: this project has some overlap / replaces some of the projects below.
Students interested: DiogenesAugustoFernandesHerminio
Mentors interested: AliAfshar, ThomasWaldmann, (ReimarBauer)
User interface
Moin2 needs a UI redesign and also a redesign of the code generating the UI. Currently we use a simple UI for developers based on the moin1 theme code.
- jinja2 theme / theming infrastructure (requires: Jinja2 or other template engine skills)
- create user interface usable for normal users (requires: UI design experience)
- reorganize / recreate css, icons, ... (requires: good CSS/HTML/JS skills)
- optional: create a jinja2-template-based moin dump (requires: Jinja2 or other template engine skills)
Students interested: DiogenesAugustoFernandesHerminio, ConnorMontgomery
Mentors interested: RadomirDopieralski
Plugin system
The moin1 plugin system is not powerful enough and too complicated. Design and implement new one.
Requires: experience with python plugin systems and software design.
Note: this needs either us doing the design ASAP or a student jumping on it well before the SOC process (we maybe don't want to spend half of SOC for design discussions).
Students interested:
Mentors interested: RadomirDopieralski
i18n
Moin's internationalization (i18n) support system needs a clean rewrite.
Requires: i18n experience, GNU gettext, PO files, ...
improve the i18n subsystem (complete rewrite)
solve issues with i18n strings discovered in the dom refactoring project
- using ngettext rather than gettext
- improve the way language installation is handled
Students interested: AndrewGrigorev
Mentors interested: EugeneSyromyatnikov
General User Experience
- Installer (requires: VERY detailled specification in the application, vague ideas likely won't get accepted).
Students interested:
Mentors interested: RadomirDopieralski, ReimarBauer
Project Ideas (moin 1.9 based)
LDAP/AD groups support
Can be done as a group backend. Estimation for effort needed, likely that's only a part-of-SOC project.
Requires:
- Student needs access to AD environment for developing/testing (Windows Server, if not otherwise available, can be run in a VM, requires RAM/CPU/DISK ressources to do this). LDAP/AD experience wanted.
- Mentor preferably should have practical LDAP/AD experience.
Students interested:
Mentors interested: ReimarBauer
Inspiration
Just some buzzwords, be creative.
Changes visualization
- "moin annotate" - show who changed what, line by line, colours?
- inline diff
Misc. stuff
- converter from twikidraw format to SVG
- refactoring of userprefs
You can have a look at all the FeatureRequests that are already stored in this wiki. Some of them might be a good inspiration for a SOC application.
Your idea!
If you have a great own idea for moin, that is not listed above, don't hesitate to apply with it.
Advice for own ideas:
- maybe check on the wiki if the idea has been discussed already and what the outcome was (some stuff sounds great first, but doesn't withstand a deeper look)
- check if your idea is rather generally useful for a wiki or if it is just something YOU (or very few people) need
- if you discuss your rough idea with moin developers (you can do that by private chat, so you don't disclose your idea publically), you might get quick feedback before writing a detailled proposal