= EuroPython Conference Software Requirements =

This page is derived from [[PyConPlanning/SoftwareRequirements]] but focuses on things that have proven more relevant to EuroPython. The requirements here do not directly address general conference Web site issues, such as http://www.europython.org/ which focuses on the publishing of general information about the conference.

----

== Existing Software ==

There are a few solutions people are using for conference management, including the following:

 * [[http://cdsware.cern.ch/indico/|Indico]] - used for EuroPython 2006 and 2007
 * [[http://www.zookeepr.org/|Zookeepr]] - developed for linux.conf.au
 * [[https://pycon.coderanger.net/|PyCon-Tech]] The PyCon submissions and schedule system - developed for PyCon and being developed further for PyCon UK
 * [[https://github.com/pythonitalia|EuroPython Software]] - This was specifically written for EuroPython by the Python Italia user group as Django application and is open-source (only the design files are not open-source). It was used for EuroPython 2011-2013 and is the official conference software for EuroPython conferences.

----

== Essentials ==

These are things which have been central to the organisation of EuroPython and which have already been managed using conference software:

 * Account management
 * Registration
 * Paper/talk submissions
 * Scheduling

== Extras ==

These are things which could have been managed using conference software or which could have been made easier using such software:

 * Feedback
 * Sponsor management

== Luxuries ==

These are things which people seem to find interesting but which haven't been the focus of the EuroPython organisers:

 * Mapping of attendee locations

----

== Account Management ==

It is not generally a good idea to allow unauthenticated users to register for a conference - this tends to attract speculative registrations from people who seem not to be serious about attending. However, a few use-cases need to be supported for people logging in to...

 * Register themselves
 * Register other people
 * Submit/edit/withdraw materials created by themselves or collaborators
 * Review paper/talk submissions
 * Manage aspects of the conference

One limitation of the Indico instance hosted at CERN was the insistence that registrants must have their own account. Creative workarounds include using distinct e-mail aliases belonging to one person.

== Registration ==

This combines some of the PyCon requirements for "users" with more general requirements:

 * Support the following information:
   * Name
   * E-mail address
   * Registrant status: participant, speaker, volunteer, session chair
   * Registrant class: student, normal
   * Payment class: paid, unpaid
   * Geographic information (this is more relevant for EuroPython given the number of countries involved)
   * Organisation
   * Other contact details
   * Privacy preferences (would (not) like name published in delegate listing, would (not) like e-mail notifications)
   * T-shirt size (if appropriate)
   * Food preferences (if any)
 * Export/reports of registrant information
 * Badges must be able to show name, class/status, organisation, origin and must obviously be exportable (as PDF, for example)
 * Payment:
   * Support e-payment and later payment (bank transfer being the norm in Europe)
   * Support non-paying registrants (guests, invitees)
   * Must support different prices for students, non-students (and other classes of registrant)
 * Keeps or can generate the total revenue for the conference
 * Support tutorial registration and extra events
 * Support capacity limits for tutorials and extra events
 * Optional donations and/or extra items
 * Support editing and cancellation of registrations by both users (for their own registrations) and by administrators

== Paper/Talk Submissions ==

See "Account Management" for some relevant criteria.

 * Reviewers can look at other people's proposals
 * Organisers can mark proposals as 'accepted' or 'declined', and can set a scheduled time/location
 * Proposals have: title, summary/abstract, description, category, length (30/45 min), difficulty level (beginner/intermediate/advanced), a list of 3 assigned reviewers, an accepted boolean, a list of reviewer comments, and a list of uploaded documents
 * A mechanism must exist for reviewers to choose or be assigned submissions; PyCon requirements involve assigning 3 reviewers at random (excluding the author)
 * Reviewer voting or the mechanisms to form a consensus
 * Exports/reports showing the status of submissions and their scores
 * Reviewers and users can comment, but some reviewer comments can be withheld from the user until a decision is made
 * Notifications via e-mail about comments and decisions
 * Export conference materials for proceedings

== Scheduling ==

 * Produce online schedules with talk information, track/theme membership for each room
 * Produce printable schedules for the entire conference, and for individual rooms for a given day
 * Track session chairs for each session
 * It can be nice to be able to edit the schedule interactively
 * Room management: desirable to be able to switch or rename rooms globally

== Sponsors ==

 * Sponsors can fill in a form with contact information that gets stored in a list and also e-mailed to the sponsorship coordinator
 * Support the following information:
   * Contact information
   * Sponsorship level (platinum/gold/silver)
   * Invoice number
   * Paid (Y/N)
   * Web graphic, banner provided (Y/N)
   * Banner received (Y/N)
   * Comments on where the banner should be displayed

== Feedback ==

 * Forms for the entire conference, and for specific talks and tutorials (but not sprints since they're separate things)
 * Report: feedback summary for the conference, summaries for individual talks
 * E-mail authors with the results from their talk's feedback

----

== Experiences with Indico ==

[[http://cdsware.cern.ch/indico/|Indico]] has been used to manage EuroPython 2007. Here's how it fares in the above criteria:

||<#DDDDDD-2:>'''Account Management''' ||
||<#EEEEEE>'''Register yourself''' ||<:> ''Yes'' ||
||<#EEEEEE>'''Register others''' ||<:> ''Not at CERN'' ||
||<#EEEEEE>'''Submit/edit/withdraw your own materials''' ||<:> ''Yes'' ||
||<#EEEEEE>'''Submit/edit/withdraw materials for others''' ||<:> ''Only as administrator'' ||
||<#EEEEEE>'''Review materials''' ||<:> ''Yes'' ||
||<#EEEEEE>'''Administer conference''' ||<:> ''Yes'' ||
||<#DDDDDD-2:>'''Registration''' ||
||<#EEEEEE>'''Registrant information''' ||<:> ''Supported - can add arbitrary fields'' ||
||<#EEEEEE>'''Export/reports of registrant information''' ||<:> ''Yes (PDF, CSV)'' ||
||<#EEEEEE>'''Badges''' ||<:> ''Supported - interactive editor and PDF export'' ||
||<#EEEEEE>'''e-payment''' ||<:> ''Yes'' ||
||<#EEEEEE>'''Pay later''' ||<:> ''Yes'' ||
||<#EEEEEE>'''Non-paying registrants''' ||<:> ''Yes (1)'' ||
||<#EEEEEE>'''Different prices/rates''' ||<:> ''Yes'' ||
||<#EEEEEE>'''Can generate total revenue''' ||<:> ''No - would need to include non-registration revenues'' ||
||<#EEEEEE>'''Tutorials and extra events''' ||<:> ''Yes (2)'' ||
||<#EEEEEE>'''Capacity limits on events''' ||<:> ''Yes'' ||
||<#EEEEEE>'''Optional donations/extra items''' ||<:> ''Yes (2)'' ||
||<#EEEEEE>'''Edit registrations yourself''' ||<:> ''Yes'' ||
||<#EEEEEE>'''Edit other registrations''' ||<:> ''Only as administrator'' ||
||<#EEEEEE>'''Cancel registrations yourself''' ||<:> ''No'' ||
||<#EEEEEE>'''Cancel other registrations''' ||<:> ''Only as administrator'' ||
||<#DDDDDD-2:>'''Paper/Talk Submissions''' ||
||<#EEEEEE>'''Reviewer role''' ||<:> ''Yes'' ||
||<#EEEEEE>'''Organiser role''' ||<:> ''Yes'' ||
||<#EEEEEE>'''Submission information''' ||<:> ''Supported'' ||
||<#EEEEEE>'''Reviewer assignment''' ||<:> ''Done manually'' ||
||<#EEEEEE>'''Reviewer voting/consensus forming''' ||<:> ''Yes'' ||
||<#EEEEEE>'''Export/reports showing submission status''' ||<:> ''Yes - filtering and export possible (XML, PDF)'' ||
||<#EEEEEE>'''Reviewer comments (public and hidden''' ||<:> ''Yes'' ||
||<#EEEEEE>'''User comments''' ||<:> ''Yes'' ||
||<#EEEEEE>'''E-mail notifications''' ||<:> ''Yes'' ||
||<#EEEEEE>'''Export as proceedings''' ||<:> ''Yes'' ||

 1. An "invitation code" feature would let people register without manual validation of non-paying registrants afterwards. Generally, some kind of validation mechanism would be required, anyway.
 1. Add chargeable items to the form for extra events and items.