User Tools

Site Tools


Systers Google Summer of Code 2012 Ideas

Fixing and implementing wishlists items and bug-fixes for existing features

Systers uses a heavily-customized version of GNU Mailman. A number of additional small features are desired to improve things further. Please see: the issue list, including wishlist items.

This year we particularly want to get the following features implemented:

  1. add admin UI for changing whether essay or name is required at sign up
  2. ability to save the essays for perusing in the future
  3. enable email conversation unsubscribes to happen without moderator intervention

keywords: Mailman, Python, web interface

Required Skill Levels: You must be a member of Systers or eligible and willing to join Systers to be considered for this project. Rising 2nd year undergraduate with some programming experience, Python preferred but not necessary. This is an ideal project for a first time Summer of Code participant, who perhaps has only done class projects before. Or it could be a starter project to get familiar with the code base before tackling one of the projects below.

Patches, Release and Testing Automation

Right now Systers code is available as a branch rather then in patch form. This makes it somewhat difficult to test on different versions of operating systems and against different versions of Mailman. Additionally, most of testing is done manually. This project involves working to automate everything from patch creation for new releases to testing to release management. It is a great project for a first-time GSoC student who would like to gain experience programming in Python and learning how an entire system runs. Project outline might include:

  • better automation of the the pushing and pulling of code (a script would be nice) to the dev and production servers
  • work on automated testing - there are some MM test scripts that might be exploitable.
  • come up with release numbering scheme
  • figure out how to use the many features of Launchpad for release control (and document).
  • implement a system of patches for releases – figure out how we make our code available to others - You will need to work with the MM 3.0 port team.

keywords: bazaar,mailman,release-management, python, scripting, patch management

Required Skill Levels: Basic Python, ability to read and learn from documentation, some understanding of systems administration.

Improve Mailman Archive Access/Searching

The default Mailman archives are really rudimentary: there is no search built-in, and finding a particular message is sometimes easier via Google, rather than Mailman's native interface. (but systers' archives are not indexed by Google, so even this option isn't viable). This project would seek to enhance the archives to be more useful to the list participants – better search options, member info & statistics, pretty charts using Google APIs and SVG graphics.

For more information about Mailman's archive requirements, see Modern Archiving in the Mailman wiki. Also, in 2010, we had two students doing exploratory projects in this area. You can read about the progress they made here Mailman Archives UI and here Mailman Archive Search Capabilities

Current work on Mailman 3.0 archives is being headed by a couple of people from Fedora. You can view the code for the "hyperkitty" archiver and try out a demo of hyperkitty. Ideally, any work by Systers will be integrated with this project.

This is probably a multi-person project. It will provide opportunities to learn requirements gathering, UI design, data architectures,and more. Describe the aspects you are interested in working on, and the ideas you have for making useful archives, and we will match you with another student interested in other parts of the project. (If two students who know each other want to work together this summer, you will each need to submit a separate application, though mention the other student in your application)

keywords: Python, CGI, web interfaces, SVG, CSS, web APIs, search

Required Skill Levels: Self-directed requirements definition, web backend and frontend experience. Senior CS undergrad or graduate.

Other Mailman extensions

As mentioned in the archives above, there are significant opportunities to add enhancements to the Mailman user interface. Metrics, graphs of postings, etc. could be built as separate widgets that a user could plug into their own “dashboard.” List admins might want small widgets so they can, for example, put a subscribe form into another web page on their site or display links to most recent or most popular postings.

You may want to take a look at Máirín Duffy's Mailman brainstorming ideas (another 16 here) for inspiration of what might be useful to different types of list, read the Mailman GSoC ideas page, or come up with an idea of your own.

keywords: Python, web interfaces, Django, upstream open-source participation

Required Skill Levels:* Self-directed requirements definition. Programming experience, familiarity with python and django preferred. Other skills required will depend upon specific project chosen.

Integrating Dynamic Sub-lists with Mailman 3.0

This is a great project for someone who is good at reading python code and making sense of it, and good at communicating with other developers. It will be a great way to improve your skill at understanding idioms, testing, debugging, and working with larger open source groups.

Integration of Systers Dynamic Sublist feature with Mailman 3.0. Read about dynamic sub-lists here:

Dynamic Sub-Lists

People have been talking about similar functionality in other mailing lists: Marin Duffy on richer web interfaces for mailing lists and Luis Villa on unsubscribing from conversations. For Mailman 3.0, the developers are hoping to replace the Mailman 2.1 topic system with dynamic sublists, so the goal is to get this code integrated with the Mailman 3.0 core tree.

keywords: Python, Mailman, ORM, Storm, upstream open-source participation

Required Skill Levels: Python and SQL familiarity, basic use of source control. 3rd year or above CS undergraduate.

Usability improvements to the Mailman 3.0 web interface for settings

Mailman contains a large number of options for list owners and members, and its web interface simply exposes these directly to the user. As a result, it can be difficult to find the option you want, especially on the list owner interface. In Mailman 3.0, the user interface may have a similar problem, as it will be easier for users to see their settings for all lists and all their selected email addresses and that amounts to a lot of potential settings.

We'd like to find ways to alleviate the usability problems of the web interface, either through better organization, carefully constructed pages, or “lite” interfaces which contain the most popular options so only advanced users need delve into the more complex screens.

keywords: Python, web interfaces, Django, upstream open-source participation, usability

Required Skill Levels:* Python familiarty, basic use of source control. Bonus if you have experience in interface design or have worked with Django in the past.

Create your own project

If you don't see a project that you'd like to do here, we welcome new project ideas. This makes sense mostly for someone who has participated in Summer of Code before, or at least is engaged enough in systers to know what kinds of projects would be relevant and doable.

2012_systers-mailman_development_projects.txt · Last modified: 2012/03/21 17:21 by terriko