GSoC/GCI Archive
Google Summer of Code 2013

Systers, an Anita Borg Institute Community

Web Page: http://systers.org/systers-dev/doku.php/2013_systers-mailman_development_projects

Mailing List: http://www.systers.org/mailman/listinfo/systers-dev

Systers is the largest (4000+) world-wide online community of women in computing. A small group of members (and a few non-members, including men) maintain a specialized version of mailman, the Systers “conversation model” that enables us to have varied discussions while keeping the signal -to -noise for an individual Syster high. Systers maintains a custom version of GNU Mailiman that allows for dynamic sublists in addition to other features.


Projects

  • Administrative Features - create/modify monthly dlist stat scripts Monthly reports are executed at the first of the month for prior month. Details in the report include, total number of members, subscription requests, digest members, and unsubscribes. Desired Solution: Add additional stats for the following: 1) number of unsubscribes for : via the members option page web confirmation email confirmation disabled address member mgt page 2) number of total unique subject lines 3) number of subscribers that posted
  • Implementing New Administrative Features When a woman requests to join the Systers community, she must write a short essay that answers three questions. Some applicants do not answer all of the questions because they are only given one long text field in which to input their answers. I will modify the essay to contain both radio buttons and text fields, and I will also add new criteria to this sign up form. Lastly, I will change the Systers database fields so that the answers of applicants can be saved for future reference.
  • Implementing RSS feed for Mailman and increasing test coverage The main goal of my project is to implement RSS feed for Systers-mailman and Mailman3. Subscribers will benefit from feeds for the whole list (including Systers dlists) and separate feeds for threads. At the beginning I would also like to increase unit test coverage for various parts of the Mailman/Systers system.
  • Modern Web Interface for Systers member's area A mailing list's member's area is typically the user's "dashboard". It allows him/her to configure their mailing lists, subscribe or unsubscribe to lists and basically control every aspect of their subscription. While mailman provides a lot of functionality for creating and maintaining mailing lists, the basic interface that the user is faced with is un-intuitive at best. Regular users will eventually learn to use the mailing list but new users, especially those who are accustomed to dynamic, responsive and interactive webpages will find it quite difficult. Powerful systems need to be coupled with simple interfaces that enable users to get the most out of the community. Please go to http://roughroughbook.blogspot.in/ to view the mockup. The proposed interface builds on top of existing Mailman and WebKitty modules.
  • Setting up automated test environment for the Systers Mailman Project The project consists in setting up a framework for automated tests of Systers Mailman Project. The main goal of the project has been to have reusable and automated scripts for regression testing. The Pyunit test framework has been used. I have created a series of web-based selenium webdriver scripts covering thoroughly the specific features added by Systers to the Mailman project. I have also created a collection of functions that serve to check if the data in the lists databases is being correctly modified while users perform web-based actions. The function are being used in conjunction with selenium scripts and smtplib/imaplib based functions to build a set of test cases that cover in a comprehensive way the functionalities of the Systers Mailman project.
  • User Interface design Mailman 3 distinguishes between the concepts of a user, email address and list member. This proposal aims towards better management of the user's settings and their preferences of the various mailing lists in a manner that provides the user with absolute control and clarity via a user-friendly interface.