Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Conference management system, written on Ruby on Rails
Ruby JavaScript CSS Other
Branch: master
Failed to load latest commit information.
app Corrected bug that bombed on personal photo uploads
config Remove whitespace [ WhitespaceBot]
db/migrate Replacing the handling of conference logos/posters and attendees phot…
doc Starting with (toy, at least) reimplementation of Comas with Rails
lib ...And yet one more little subtlety...
locale Fix rendering problem with user menu due to change in html_safe behav…
log Just add an empty placeholder - git won't track an empty directory
po Fix rendering problem with user menu due to change in html_safe behav…
public Remove whitespace [ WhitespaceBot]
vendor/plugins Grr, Rails inter-version incompatibilities
.gitignore Replacing the handling of conference logos/posters and attendees phot…
.gitmodules Finally - The tree has been ported to properly work with Rails 2.3.x!
COPYING Remove whitespace [ WhitespaceBot]
INSTALL.txt Updated documentation
README Updated timestamp in the README
Rakefile Remove whitespace [ WhitespaceBot]


= Comas - The Conference Management System

=== What is it?

COMAS aims at making a complete Conference Management System, flexible
enough to be easily adaptable for most conference needs. The aspects
that Comas directly handles are:

* Receiving, voting, approving papers
* Creating proceedings
* Scheduling talks
* Managing attendance (pre-registration, nametag printing, charging
  for participation depending on what talks they are interested in,
  managing day-to-day attendance, preparing diplomas...)
* Various administrative tasks

It is best suited for academic conferences (i.e., conferences where
the main intrerest are the presentations, not commercial meetings,
which are also called conferences in some countries).

=== What differentiates it from other similar systems?

* Comas is highly malleable

  Most similar systems provide you fairly rigid definitions for a
  person or for a proposal. If the system does not provide for a field
  you are interested in, you will have to modify the database schema
  and the system's source files in order to get them.

  Comas allows you to easily add fields (including more complex data
  types, i.e. references to other catalogs) both to people and

* Comas provides a multiconference setup.

  Many systems require you to set up one full instance per
  conference. While this is not much of a hurdle for the technically
  minded system administrators, many academic settings will require
  the administrator to set up conference management systems, one after

  With Comas, you just have to set up one Comas instance, and it can
  acommodate all the conferences you need. Plus, people that register
  to your system once will not have to re-submit their personal data -
  They will just have to check whatever conferences they are
  interested in.

* Comas aims at following the whole conference workflow

  Several systems provide only the needed utility for a subset of the
  conference workflow. Comas attempts to cover the process as
  integrally as possible. As of now, the current functionality is

  * Attendee registration

    The basic information needed from an attendee is their full name
    and e-mail address. Additional fields may be specified. Each
    attendee will also be asked whether they are interested in general
    or conference-specific mailings.

    Lists of attendees, filtered by different criteria, can be easily
    exported in spreadsheet format for local usage.

  * Conference definition

    Each conference will be defined with a name, an optional
    conference logo/image, a full description (allowing for
    RedCloth/Textile-based formatting, which allows this to be the
    main conference page or link to an external one), and the
    starting/ending dates for the conference itself, the Call for
    Papers period, and the attendee registration period.

  * Proposal submision

    Conferences which have a Call for Papers period will allow the
    attendees to send talk proposals. Proposals can include a number
    of attachments.

  * Nametag printing and attendance tracking

    The needed infrastructure is in place for printing nametags on
    Zebra EPL2 printers, the most commonly used kind of barcode
    printers. The nametag printing format can be defined from the Web

    You can track attendances at each of the conference's sessions,
    either by using a barcode reader or just by typing the attendee's
    ID on a regular keyboard.

  * Certificate definition printing

    You can define several certificate formats, which can be used
    i.e. for printing attendance/participation certificates, talk
    presentation certificates, etc.

  More functionality is on the way. Most pressing (and probably the
  next step that will be covered) is implementing the academic
  committee functionality (deciding on which of the submitted
  proposals will be accepted, which will require changes, etc.)
  Probably, more than one scheme of academic committee logic will be
  implemented, as different conferences handle it in very differing
  ways — But this is speculatively only right now.

=== What is Comas' current status?

We are just starting to implement Comas on a production server - and
will probably uncover more than one design flaw in the process. Still,
care will be taken not to break existing instances.

=== Comas' prior incarnation

Comas is in the final stages of a complete reimplementation from

If you were familiar with the Perl-based Comas originally developed
for CONSOL by Manuel Rábade and Gunnar Wolf... Well, some of its ideas
still live on. However, the old Comas code was found to be too rigid,
too hard to adequate for other conferences' needs.

The Perl version was actively developed in 2003-2004, and regularly
maintained until 2006. I played a bit with other technologies to base
it on, trying to avoid a complete rewrite, but I found it impossible -
And moved on fully to Ruby on Rails.

I have been developing Comas based on Rails since late 2007, and it is
quite promising by now - there are for sure many rough edges to polish
and still some missing functionality. But it's quickly getting there.

=== Where can I get the code?

Comas is developed over Git. Our main repository is located at GitHub,
from where you can easily clone it:

  $ git clone git://

As soon as I'm happy with its releasability (this means, as soon as I
go over the blockers in the TODO list), I will also put up nice
tarballs. Right now, the One True way to get Comas is cloning from the
Git repository.

=== What can I do to help?

Hack on!

=== Dependencies

Comas uses the following modules or plugins - Most of them are
available as Debian packages (the package name will be indicated next
to the URL):

Ruby 1.8::


Rails 2.3.x::


Acts as catalog::

Acts as list::

Acts as magic model::

Real FK::

Will Paginate::


PDF Writer::


















Note that some of the Debian packages are not part of the currently
stable Debian release (6.0, Squeeze), but can be safely installed from
the unstable repository.

If you _cloned_ the Git repository, the plugins in this list (realfk,
acts_as_list, magicmodel and actsascatalog) are available as Git
submodules. From Comas' top directory, just run:

    $ git submodule init
    $ git submodule update

=== Authors and copyright

The original Comas was written mainly by Manuel Rábade and Gunnar

The current implementation, with somewhat different goals and mindset,
has been so far written by Gunnar Wolf.

Comas is released under the GPL license, version 3 or higher (at your
option). A copy of the GPLv3 license is included in the 'COPYING'
file in Comas' source directory.

Copyright (c) 2008-2012 Gunnar Wolf <>

Comas includes code written by third parties:

class inherit:: Thomas Sawyer (License: Same as Ruby)
Rails date kit:: Stuart Rackham (License: MIT)
Pseudo gettext:: Masao Mutoh (License: Same as Ruby)

== TO-DO

* Academic committee
* Check what to-do items we really have!
* Move the included third-party code out of the tree, make it a clean
* Tests!
* Provide for a better way for themability (not requiring the user to
  modify provided files, as it makes integration with newer versions

Something went wrong with that request. Please try again.