WCEU – Workshop Booking System

WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. Europe 2019 includes some workshops in its schedule (as WCEUWCEU WordCamp Europe. The European flagship WordCamp event. 2018 or WCEU 2017 did). Workshops are more interactive than regular talks and have a limited number of spots.

As far as I know, the process of controlling who signs up for a workshop, number of available spots, and so on has been done “manually” in previous years. We need a system that integrates to the WordCamp website for this.

Deadline: Please share your input before April 12th.

Requirements

After discussing the topic with the @content-team, we came up with several requirements.

Must Have

  1. Only attendees (i.e. people who purchased a ticket) should be able to register for workshops
  2. We should be able to limit the number of spots an attendee can book tops
  3. Attendees should be able to sort their preferred workshops
  4. Attendees should be able to change their preferred workshops at any time
  5. We should be able to require attendees to confirm they’ll assist to the workshops they registered to a few days before the event
  6. We should be able to notify attendees via email about:
    1. When the registration period opens
    2. When the confirmation period opens

Nice to Have

  1. Attendees should be able to see when a certain workshop has been sold out and, therefore, registering for it puts them in a waiting list
  2. We should be able to notify attendees via email about:
    1. When a workshop they booked is about to start
    2. When a workshop is about to start and it has free spots, we should notify those who registered for it and didn’t confirm

How Would the Booking System Work?

When an attendee registers for a workshop, the pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party stores the date and time of the registration, as well as the attendee’s preferred options. This helps us decide who can attend to a certain workshop:

  • Only spots for those attendees who confirmed their interest in a workshop are actually booked (that is, no one can take them unless the attendee doesn’t show up when the workshop is about to start).
  • The order in which spots are given to confirmed attendees is as follows:
    1. First, confirmed attendees are sorted based on their preference. That is, those who selected the workshops as their first option come before those who selected it as its second choice.
    2. Given two attendees who set the same preference value for a workshop, we’ll take into account the registration time. That is, first to register, first to get a spot.
    3. In the unlikely event that two attendees registered at the exact same time, the spot will be given randomly/alphabetically/other ideas?
  • Any free spots available at the time the workshop is about to start will be given to those waiting outside, in the order in which they arrived.

Plugins Screens

Registration/Confirmation

Attendees can register and confirm the workshops they’re interested in using CampTix’s Attendee Edit Screen:

Registration/Confirmation Screen

List of Attendees to a Given Workshop

We need an admin screen to control who accesses a workshop. Basically, given a specific workshop, we need an alphabetically-sorted list of attendees that confirmed their assistance.

Settings

We need a settings screen to tweak the plugin:

  • Maximum number of workshops an attendee can register for
  • Confirmation period start/end?
  • Emails?