MoinMoin student projects
This page is to collect ideas for potential "student" projects. Although these projects are intended for students attending university, we don't want to limit it to that group. So if you have the experience required by the project and you can meet the other requirements, too, feel welcome.
Participant requirements
- have experience on the fields demanded by the project
- have adequate time to do the project
- can write an invoice (you usually have to be 18+ years old for that)
- due to tax / accounting related problems, this is limited to participants located in Germany or the EU
- you should be able to communicate in german or english very well
Project requirements
- be well defined
- integrate well with current state of moin code
- doable in a rather limited timeframe (few weeks, including getting familiar with the code)
- any result is licensed under GPL (or compatible license)
Funding
Some funding can be provided by ThomasWaldmann's company.
The current idea is a few students and a few hundred EUR per task (depending on the project size maybe?). We are not Google, obviously.
If someone else wants to get some stuff done and fund it, feel welcome.
Participant payment
As the funding is limited, we want to give it to participants getting something done (aka good coders <g>).
That means, that your stuff has to work well, be of reasonable code quality and volume, be reasonably documented and meet your project's goals.
If you are new to the goals required by the project, this is not the right job for you as we require experience.
Whether the goals were reached or not (or to what usable extent) will be decided by MoinMoin development.
Project suggestions / goals
Project "Appearance"
The Moin standard theme "modern" currently looks rather simple.
OTOH, this theme has a very good usability and compatibility, while many other themes lack either compatiblity or usability or just have issues.
Goal:
- make a "modern-pretty" theme that looks prettier (but not too extreme, should be still usable in business context, too)
- communicate much with moin developers to make sure you are on-track
- improve quality of the CSS:
- clean it up
- improve colouring in a consistent way
- use some decent effects
- improve quality of all icons in a consistent way
- if you don't find a complete and free set matching our needs well, this might require making new icons
- we won't accept a wild mixture of icons you collected at some places on the web
- usability must not be worse than "modern" theme:
- good readability of text
- recognition of icons "at a glance"
- navigation without much scrolling
- scalability (number of trail items, number of navibar entries/quicklinks, screen resolution, logo size)
- compatiblity must not be worse than "modern" theme:
- must work with any sane browser (Mozilla, Opera, Konqueror, ...)
- must work with 2 insane browsers (latest IE6 and IE7)
- should degrade gracefully for text browsers as lynx/links/w3m
- must work with right-to-left languages as well as ltr.
- accessability must not be worse than modern
As you see, this needs lots of experience with CSS and graphics and won't be an easy job!
This project can also be split in several smaller projects. So if you are not much familiar with CSS and Python coding but a crack in design of icons or other web stuff, please help either. The Moin core development team will find ways to integrate your aesthetic knowledge and talent.
Resources you can use:
any free existing theme (see ThemeMarket)
- any free icon collection
- of course you can expect help from moin development
Upgrading FCKeditor
Our built-in FCKeditor (GUI HTML editor) is 2 versions behind and needs someone with Javascript and Python knowledge to get upgraded. Some moin FCKeditor plugins make problems with the current version, so expect quite some debugging in this task.
Fixing bugs
Fixing bugs (see MoinMoinBugs) is always a good idea. This is a great way to understand how the system works and a lot of fun.
This is not an easy job (but sometimes easier than starting from scratch), the easy bugs are mostly fixed already. So fixing bugs in Python code must be your obsession.
ToDo: make a list of bugs to fix in this task or some other concrete "goal" for this.
Refactoring
There are dark corners that needs to be cleaned. Worst examples:
Page.send_page
wikiutil.sendTitle
Most of PageEditor
RequestBase.run
4
The goal is to clean up the code keeping the same behavior, and making the code easier to understand, fix bugs, and change in the future.
Refactoring can be done in very small and easy steps. Can be nice way to start working on stuff.
But see "Testing" below before you start.
Testing
Most code does not have proper tests. This makes it impossible to refactor code, fix bugs or add features in a safe way, and is a source for many regressions.
Testing is fun, and it is hard to introduce bugs by adding a test.
Sub projects:
- Improving the testing framework: a lot of stuff requires a request object, and lot of code changes request state, so one test may affect the next test. Each test should work on a fresh request object.
- Broken tests
- Missing tests
Template system
See theme and most macros and actions to see how bad the current html creation code is. This makes it hard to fix bugs, add features and improve the design. For example, a web designer can't work on the html to create a new layout, unless he has basic Python skills.
There are many great template systems on the market. The goal is to find a simple one that developers can learn quickly, and integrate it with the current system.
The first step on that way is a "templating theme plugin" as a proof of concept before any major core code changes happen.
See TemplateSystems