Last updated 24 July 2008
Introduction
GroupServer is an open source collaboration platform that enables
users to interact in groups, using email and the web. This document
aims to help with evaluating GroupServer, as well as planning and
administering GroupServer deployments. It describes the current
features and functioning of GroupServer, as well as improvements
that are scheduled, or to be scheduled. It describes aspects of
GroupServer's functioning that are determined by how GroupServer is
configured, or customised, behind the scenes, but does not provide
details of the
technical architecture,
installation or
back-end administration.
GroupServer Overview
GroupServer
users
interact in
groups, which are
located on a site,
by exchanging
messages.
Users are members of groups, which are run by
group administrators,
while the site itself is run by a
site administrator.
A GroupServer instance can support multiple sites.
Users interact with GroupServer using email and the site interface. Groups and sites are also administered using the site interface. Behind the scenes administration is carried out using the Zope Management Interface (zmi), and via a terminal.
User Profiles
Each user in a GroupServer instance has a
profile
(account) that is common to all the
sites in the instance.
The profile stores all the user's
personal information,
an image associated with the user,
the user's nickname, and
the user's email addresses.
This information is presented on the user's
profile page,which also summarises the
posts that have been made by the user.
A profile is created when the user signs up with GroupServer group
for the first time, or an administrator adds a new person to a
group.
Email Addresses
Each user can add multiple email addresses to his or her profile.
These email addresses are unique to the user (so no two users can
share the same address) because the email addresses are used to
identify the user when he or she sends email messages to groups,
or logs in.
A user must verify that they control
each email address that they add to their profile.
This ensures that that the user can access the email addresses
that are entered, and prevents the addition of email addresses
without consent of their owner.
A user can make multiple attempts to verify an email address, and
can re-verify an email address that has been set to
unverified as a result of
bouncing.
Users are blocked from adding disposable email addresses
― provided by services such as dodgit.com and spambox.us
― to their accounts.
User Post Summaries
Each user's profile displays the latest posts made, and files
posted by the user.
The visibility of these posts is determined by the privacy
setting of the group they were made to, and by the group
memberships of the viewing user.
Sign Up
Signing up to a GroupServer site creates a user profile.
Someone can join a GroupServer site by either
signing up themselves
or by
being added to a
group
by an administrator.
Sign Up, User-Initiated
A user can sign up and join a public group via the web or
email.
When registering via the web, the user initiates the
registration process by entering their email address.
An email is sent to the user, requesting that they verify the
email address, and the users is
asked to complete a profile, and optionally join
public groups
on the site.
If the user has verified their email address by the time they
have completed their profile, they are taken to the group they
have joined.
If the email address is not yet verified, the user is taken to
page that prompts them to check their email for the verification
request.
When the user clicks the email address verification link that
was emailed to them, they are logged in to the site, and asked
to set a password.
The user can generate further email address verification
requests, if necessary.
- Scheduled for Q4 2008:
An interface that enables group administrators and
participation coach to accept or decline requests to join a
group made by users.
Joining a Group, Administrator-Initiated
A group administrator can
invite existing and new site members to join a group in the
following two ways.
- Create a single group member.
This option enables the group administrator to fill out the
user's profile, and write a message, inviting the user to join
the group.
- Create users in bulk by loading a CSV spreadsheet that
contains all the profile information of the new users.
In all of the above cases, the users must accept an invitation
before they become a group member. This ensures the following.
- People only join groups that they genuinely want to join.
- The risk of the site being identified as a source of spam is
minimised.
- People only join groups if they can access the email address
that is known by the site or group administrator.
In the two cases where new user accounts can be created, the
Group Administrator can add information to the users' profiles,
while creating them.
If the email address specified by the group administrator
belongs to an existing user, the user's profile remains
unchanged.
It is possible to create user accounts, and join users to
groups, without requiring consent from users, in bulk, using the
zmi.
Login
A user can log in to a site to edit profiles, and make posts to
groups using the Web interface. Optionally, users can stay logged
in over multiple sessions.
Password Reset
The password reset feature emails the user a link that enables
them to set a new password. GroupServer never sends passwords
out by email.
Groups
A group is the primary location for interaction on GroupServer.
It is made up of three components:
-
The members
of the group share a common interest, which the group represents,
-
The mailing
list is used to distribute messages and files to the
members, and
-
The web-group
presents all the posts, files, and membership information about the
group in a web interface.
The behaviour of the group is primarily defined by two things: the
type of group, and the
privacy settings of the group.
Members are either invited to join a group, or
join and leave of their own
accord.
Group Types
The different types of groups primarily differ in who can post
and receive messages.
In the common discussion group all the
members can post and receive messages.
Only some members can post messages to an
announcement group, while all the
members receive the messages. Finally
anyone — including non members — can post to a
support group, though only the members
can receive the posts. While these three group types are defined
by GroupServer, it is possible to create custom group types via
the zmi.
While the group-type defines the basic behaviour of the group, specific behaviour can also be configured by a zmi administrator. For example, the messages from any group can be altered so email replies go to either the author of the message or the group.
The group type is determined by a Site Administrator when the group is created (Section ). The group type can not be changed via the site interface, once the group has been started. It is possible to change a the type of a group via the zmi.
- Scheduled for Q4 2008: A Site Administrator can change the type of a group after the group has been created, using the Group Administration interface.
- Scheduled for 2009: A group type that behaves like a blog. Only specified group members will be able to start topics.
Group Privacy
There are three privacy settings, which only a Site Administrator can alter. From most open to most restrictive, the group privacy settings are as follows.
- Public: Everyone can view the group, view the posts, and join the group.
- Private: Everyone can view the group, but only group members can view the posts. Anyone can request to become a member.
- Secret: Only group members can view the group and posts. People must be invited to join the group.
The privacy and security settings are more nuanced than the three settings above, and a zmi administrator can alter the specific security and privacy settings. However, experience has shown these to be the most useful combination of settings.
Site administrators do not follow the same rules as other users of GroupServer: and administrator can view all posts, files, and users on a site, regardless of group membership.
- Scheduled for Q4 2008: A secret or private group can only be made public, if it has no posts.
Group Members
The members of a GroupServer group are listed on the members page. In public and private groups, the members page is visible to non-members.
When a user leaves or joins a group, a message is sent to user to notify them of the change that has taken place. A message is also sent to the participation coach. An instance administrator can determine the text of both sets of join and leave notifications for all groups in an instance.
- To be scheduled: The members page shows the number of messages posted by each group member. In public groups, members are only listed on the members page if they have made one or more posts. (GroupServer values the right to “lurk in peace”).
- Scheduled for Q4 2008: The participation coach, site administrator, and group administrator, and in private and secret groups, all group members can optionally receive notifications when members leave or join the group.
Group Administrators
The group administrators' role is usually related to member management tasks. The group administrator can carry out the following tasks
- Enable or disable group moderation.
- Change the moderation status of individual group members.
- Invite existing or new members to join the group.
- Remove a member from the group.
- Make a member the participation coach.
A Site Administrator can carry out all group member management tasks that can be carried out by a Group Administrator. In addition, a Site Administrator can grant group administrator status to one or more group members, and revoke that status.
- Scheduled for Q4 2008: A group administrator can view the membership status of each group member, including whether or not the user has at least one verified email address.
- Scheduled for Q4 2008: A group administrator can add an email address to the account of a group member that does not have at least one verified email address.
Participation Coach
Participation Coach is largely a social role: a group member who is concerned with encouraging and facilitating good participation in the group. However, the Participation Coach can make a topic sticky, to highlight important topics in the group.
- Scheduled for Q4 2008: A Participation Coach can receive a notification when a member joins or leaves the group.
Group Mailing List
The mailing list for the group is tasked with determining who can post to the group, and which members should receive the posts that are made to the group. Most of the capabilities of the mailing-list portion of the group is discussed below.
Web Group
On the web, the group consists of a series of pages related to the group. The home page for the group shows the following.
- In discussion groups, a list of latest topics, and in announcement groups, a list of latest posts.
- Links for joining and leaving the group.
- Information about tasks that visitors and group members can carry out.
- The group email address (visible to group members only).
- Information reflecting group attributes such as real life group .
An instance administrator can alter the content displayed on the group home page, to include, for example, a logo, a set of related links, or custom text.
The appearance of the group on the web is based on the appearance of the site.
- Scheduled for Q4 2008: A site administrator can add arbitrary content to a group home page, using the Structured Content Editor.
Group-Level Content
By default, each group has a template-driven Charter page, that displays content from the group attributes, such as the group purpose and membership criterion. An instance administrator can customise the charter.
An instance administrator can also add and edit arbitrary pages in the group context. Links to these pages are automatically added to the group context menu.
- To be Scheduled: Group members can add and edit arbitrary pages in the group context, using the a multi-user implementation of the Structured Content Editor.
Group Management
Only site administrators can start groups , delete groups and alter the group attributes.
Starting a Group
The following information is required to start a group.
- Group ID: the ID is used for the group URL and the left-hand side of the email address.
- Group Type: discussion, announcement or support.
A Site Administrator can alter other group attributes, like the name of the group, after the group has been created.
Deleting a Group
A Site Administrator can effectively delete a group while retaining an archive of its posts by removing all its members, and setting the group privacy to secret. Only an instance administrator can truly delete a group, and even then posts must be explicitly deleted from the database to remove archives.
- Scheduled for Q4 2008: A site administrator can disable and archive a group.
Group Attributes
A site administrator can edit the following group attributes.
- Group Name
- Subject Line Tag
- Real Life Group
- Group Category
- Membership Criterion
- Purpose
These attributes determine content displayed on the group home page, the charter and the groups page. An instance administrator can configure the group attributes that are available to be configured by a site administrator, and can enable group administrators to edit group attributes.
Groups do not support tagging by users
Joining and Leaving a Group
People who are not members of the GroupServer site join a group by either signing up or by being added by and administrator.
A logged-in user can leave a group via the group's home page, or the site's Groups page. A user can also leave a group by by sending an email to the group address with the subject line unsubscribe. To join a private group, a user must sign up if necessary and log in. They can then use the request contact feature to contact the group's Participation Coach and request membership.
Messages
Users can post a message to a group using email or the
web. All posts made to a group, are emailed to all group members,
according to their delivery settings. Depending an each group's
privacy settings, all messages posted are stored on the site and are
visible to users with the required group memberships within the
group context (as well as on the site home page and in search
results).
Messages are normally grouped into
topics. Topics are determined by
examining the subject-line of the email: messages with the same
subject line belong to the same topic. In the group context, messages
are displayed in the following ways.
- Latest Topics on the group home page,
showing a summary of the six latest topics, with a link to each
topic.
For each topic, the title, number of posts, and keywords are shown,
as well as the author and date of the last post.
- Topics page, showing a summary of
20 topics, with a link to each topic, and an option to navigate
between newer and older topics. For each topic, the title, the
number of posts are shown, as well as the author and date of the
last post.
The topics that the
participation coach considers
important (sticky topics) are
displayed in a prominent place on this page.
- All posts in a topic, showing the full
text of all posts in a single topic.
- Posts page, showing the full text of
20 posts, with an option to navigate between newer and older
posts.
- A post summary, showing a summary of
50 posts with with a link to each post, and an option to navigate
between newer and older posts.
- A post page, showing the full text of
one post, with an option to navigate between newer and older posts,
and to the post's topic.
In the Topic and Posts views, an
image of the author
of each post is shown, and a short link to each post is provided
(to enable users to link to individual posts).
Message Formatting
GroupServer formats messages from group members for presentation
on the web and
email.
Email Message Delivery Settings
Via the site interface, a user can specify individual message
delivery settings for each group, choosing
one email per post,
topic
digest,
and
Web only.
When receiving email, a user can also specify one of their email
addresses for group-specific message delivery, independent of their
site default email address.
A user can also enable and disable digest mode via email.
One Email per Post
In this setting, the user receives a message whenever anyone
posts to the group.
In the experience of
OnlineGroups.Net and
E-Democracy.Org,
this is the most common delivery setting.
Topic Digest
A topic digest is an email message that lists the latest topics
in a group.
For each topic the digest shows the title, the number of posts,
the date of the last post, and a link to the topic.
A topic digest is sent every day, if there are posts, and every
week, whether there are posts or not.
Web Only
If the group member does not want to receive any email messages
from the group, he or she can set the delivery setting to
Web only.
This option is also used when the user wants to follow the
messages using the Web feeds of the
latest posts in the group, on the site or by a person —
rather than use an email client.
To access the web feed for private and secret groups the user
needs to be logged in to the GroupServer web site.
Message Posting Restrictions
There are three primary restrictions to posting messages:
requiring
verified email addresses,
limiting the posting rate, and
moderating messages from members.
There are also some general criteria for
blocking messages.
Posting Rate
A site administrator can define a
posting rate for each group:
the number of posts that a user can make in a period of time.
When a user has exceed the posting rate, both the email and web
interfaces inform the user that they can not post, and when the
user will be able to post again.
Moderation
A group administrator can determine the moderation status of
group, choosing between the following settings.
- No moderation.
- Moderate specified members only.
- Moderate specified members, and all new members that join
the group.
When a group member who is moderated makes a post, GroupServer
sends a notification email to all moderators for the group.
The moderation notification email contains links that enable the
moderator to approve or decline the post.
A group administrator can also assign the role of moderator to
one or more group members, and revoke that role.
Blocking Messages
Besides moderation messages can be
automatically blocked based on who posted it, the email
address that the message was posted from, the contents of the
message, what sort of email-software produced the message,
what properties the user who sent the message had set and the
size of the message.
Individual users can be banned from posting to a group or a site.
These users can add or remove email addresses, but they will
still be banned from posting.
As well as blocking users, specific email addresses can be
blocked from posting to a group or site.
This prevents a user from creating a new
profile
and posting.
GroupServer also blocks messages based on message contents.
Normally, this is used to block
out of office messages from being
posted to a group, but the system can be configured to block any
phrase.
However, there is no mechanism to quarantine messages for later
approval based on the message contents.
Messages are also blocked if
- The message is from an
automatic emailer,
- The message is a repeat of a message that is already in
the topic by the same author, and
- The user does not have the
required profile properties
set.
The required profile properties can be set at both the site and
group level, so specific group can have tighter requirements
on profile-properties than the site.
Finally, an instance administrator can determine the maximum
size of message that can be posted to GroupServer.
Deleting and Archiving Messages
An instance administrator can delete a message from the archive, but it is not possible to delete a message via the site interface.
- To be scheduled: A group administrator will be able to mark a post as “deleted”. The post, along with a record of the date, the reason for marking as deleted, and the user who marked the message as deleted will be accessible to group administrators.
Auto-Responders
GroupServer does automatically respond to some messages, such as Subscribe and Unsubscribe messages. However, it has no generic auto-responders but these could be implemented relatively easily.
Sharing Files
All files that are attached to posts made by email are displayed on the Topics area of the group along with the associated message. Alternatively, files can also be uploaded using the web interface. In both cases, a link to the files is distributed in the email version of the post, rather than sending out the files as attachments, as this prevents people on slow Internet connections from becoming overwhelmed with large attachments. An instance administrator can configure Groupserver to make files available to unauthenticated users for a defined period after they are uploaded.
The presence of files is indicated in the list of topics on the site and group home pages, as well as on the search pages for topics and posts. In addition, Web feeds are available of the latest files posted on the site, in a group, and by a particular person.
All files are virus-checked as they are uploaded.
Scheduled for Q3 2008: File links are distributed in attachments to emails, so that the presence of file links can be seen from the email inbox.
Chat
The Chat feature, available in all groups, enables group members to post messages in real time.
- Scheduled for Q4 2008: Group members can access an archive of messages posted using the chat feature.
Sites
Site Home Page
The site home page displays a Topic Summary, showing the latest topics posted to groups that are visible to the current user.
Keywords
Topic summaries on the site home page, group home page and search results show keywords that are automatically extracted from each topic to increase “information scent”. The keywords are extracted using the TFIDF (term frequency inverse document frequency) algorithm. This extracts words that occur frequently in the topic but infrequently in the rest of the site.
Groups Page
The groups page shows the following for each group that is visible to the user.
- Group title, with a link to the group home page.
- The “real life group” (ie the group of people that the online group is for).
- The number of members.
- Who can join the group (“anyone”, “on request” or “invitation only”).
Anonymous visitors see all public and private groups, and for public groups, links to sign up and join. For private groups, anonymous visitors see a link that enables them to contact the participation coach to request membership.
Logged in users see all public and private groups, and secret groups that they are a member of. For all groups that they are a member of, logged in users see a link to leave the group. For public groups that they are not a member of, logged in visitors see a link to join the group. For private groups, logged in users see a link that enables them to contact the participation coach to request membership.
With customisation, an instance administrator can configure GroupServer to display groups sorted by category (see “Group Attributes”) on the groups page.
Search
The search feature can show topics, posts or files visible to the current user that contain a specified search string. Searches can be restricted to a specific group or user, or both. It is possible to implement search of user profiles.
Site Headers and Footers
An instance administrator can define a site title, logo and page footer that appear on all pages.
Usage Statistics
Usage statistics for all public and private groups are visible to anonymous site visitors though the site interface. Statistics for secret groups are visible to group members. The usage statistics show the number of posts, and the number of group members who made posts (authors) per month. The usage statistics can be downloaded in CSV format.
An instance administrator can add a Google Analytics tracking code to a site, so that Google Analytics can be used to analyse site usage.
An instance administrator can obtain ad hoc statistics by viewing logs, and running SQL queries on the message database tables (see “System Usage Logging”).
Scheduled for Q4 2008: Group administrator can view a log of all members leaving and joining a group.
Site-Level Content
A site administrator can add and edit content on the site home page, using the Structured Content Editor (see “Structured Content Editor”).
Pages and content can be added to sites and and edited via the Zope Management Interface (see Behind the Scenes). All valid XHML1 or XHTML2 can be used. This supports the display of external content such as Custom features such as a YouTube Movie, Flickr Badge, Google Calendar, Google Map (and scheduled for Q3 2008: External Web Feed Display). Examples of site content created in this way can be found at http://onlinegroups.net and http://remotehuts.co.nz.
Scheduled for Q4 2008: A site administrator can add and edit pages and page content in public and private areas on the site, via the site interface.
Scheduled for Q3 2008: A site administrator can select add a logo to appear on all pages in a site.
Site Visual Appearance
An individual visual style, including fonts, colours and layout can determined for each site, but this currently requires instance-level administration.
Scheduled for Q3 2008: A site administrator can select a site colour scheme, from a list of predefined colour schemes.
Multi-Lingual Support
GroupServer provides the basic infrastructure to support a multi-lingual interface. The interface also supports UTF-8, so that a wide range of character sets can be displayed.
To be scheduled: Support and interface for multi-lingual versions of forms, site navigation, email notifications and site content. A translation table for forms, site navigation, email notifications, in each new language.
Help
Sites include the following Help resources.
- User Manual. A reference manual for the use of GroupServer to participate in online groups.
- User Guide. A guide to the use of GroupServer to participate in online groups.
- Administration Manual. A reference manual for the administration of groups and sites.
- Administration Guide. A guide to the administration of groups and sites.
Starting Sites
A component can be added to a site, that enables a logged in user to start a new site. A site ID is the only information that is required prior to starting a site. The site ID is used to create a subdomain for the site, but this can be over-ridden by a custom domain (see Site Custom Domain).
Site Custom Domain
A site can be addressed via the web and email at any domain for which the DNS can be administered.
External Application Integration
GroupServer provides basic support for integration with external systems. YouTube movies are rendered in posts. A GroupServer site can be loosely integrated with a WordPress blog.
Structured Content Editor
The open source WYMEditor component (http://wymeditor.org) is used to edit structured content in GroupServer sites. The structured content editor outputs valied XHML2 and can be used to create the following page elements.
- Paragraphs.
- Lists, numbered and bulleted.
- Images.
- Links.
- Headings at levels 1, 2 and 3.
- Scheduled for 2009: Custom features such as YouTube Movie, Flickr Badge, Google Calendar, Google Map, External Web Feed Display.
The Structured Content Editor is used in the following places.
- Site Home Page.
- Profile Biography.
- Scheduled for Q4 2008: Arbitrary Site-Level Content (subject to privacy settings).
- Scheduled for Q4 2008: Group Home Page.
- Scheduled for Q4 2008: Arbitrary Group-Level Content (subject to privacy settings).
- Scheduled for 2009: Multi-user content-editing. This will provide a functional equivalent to a wiki, without requiring editors to learn a markup language.
Posts from Incorrect Email Addresses
GroupServer only accepts email from addresses that are associated with a member of the group that they are addressed to. GroupServer sends notifications in response to emails from addresses that are not associated with a group member, as often these are sent by users who have incorrectly configured email settings.
Spam Management
An instance administrator can implement a spam-management tool such as SpamAssasin in conjunction with GroupServer, to control spam arriving at the email server used by a site. This is necessary for performance reasons, to reduce the number of emails that must be checked by GroupServer to determine whether how they should be handled. This also limits the possibility of spam email being posted to groups.
Virus-Scanning
All posted files are checked for viruses as they are uploaded.
Bounce Handling
An email address is said to be bouncing
if the server that controls the address rejects the messages that
are delivered there.
GroupServer detects when a messages from a group bounces; by
default, if an address bounces on five different days in any sixty
day period, the address is set to
unverified.
The user is notified of this action by an email message that is
sent to all non-bouncing addresses associated with the user
account.
Email Loop Handling
GroupServer identifies and terminates "Out of Office" reply loops. The loop-detection uses a variety of configurable methods to recognise automatically generated email.
Distributed Authentication
GroupServer does not currently support integration with external authentication systems, but its technical architecture does enable this to be implemented. Implementation of Open ID is anticipated.
Behind the Scenes
Day to day administration of a GroupServer site can mostly be carried out via the site interface. Behind the scenes, there is wide scope for custom administration and customisation. Some behind the scenes administration can be carried out without specialist technical skills. The scope of what can be achieved behind the scenes expands proportionally to skill and experience with Zope, Python, TAL, SQL, and GroupServer itself.
GroupServer Instance
A GroupServer instance can support multiple sites. User profiles are common to all sites in an instance.
GroupServer Instance Administration
An instance administrator can configure the following for all sites in an instance.
- User profile attributes.
- Group attributes.
- Group type templates.
- Email notification templates.
- Default domain for new site subdomains.
System Usage Logging
The GroupServer system log records the following.
- User logins and login failures.
- Password resets.
- Profile attribute changes.
- Additions, removals or modifications of email addresses, and changes to the verification status of email addresses.
- Users joining and leaving groups.
- Messages posted and sent.
- Scheduled for Q3 2008: All instances of a user joining or leaving a group.
Message Logging
An instance administrator can view a log of all messages received and sent by the Postfix email server. The database tables containing stored messages can also be queried by an instance administrator.
Server Components
Each GroupServer instance requires a set of server components, including Zope, Apache, Postfix and PostgreSQL. A single set of server components, on a single physical server, can support multiple GroupServer instances. Alternatively, the components that support a single GroupServer instance can be distributed across multiple machines.