Tutorial: Create an event registration system
This tutorial shows how to build an event registration system using a golf tournament as an example. You can use it as a simple sign up form, or you can add more elaborate functions such as an automated waiting list or collect payments with each sign up. You can see the end result in this demo registration system. It should be straightforward to adapt these instructions to suit your particular need. For instance, the instructions could equally well be used to set up appointment booking for a theater performance or to let people sign up for a party.
In this example we create a reservation booking system for a single event. If you have more than one event and want people to select an event date from a calendar, or if your event has several parts that can be selected separately, then you should look at the ‘capacity schedule’ tutorial instead.
How to use this documentation
The usual way to set up a SuperSaaS schedule is with a “build and test” cycle:
- Set up a basic schedule using the wizard
- Try if it works as expected
- Unless satisfied make changes to the configuration and go back to step 2
- When you are happy integrate the schedule into your own site
This documentation will follow this basic pattern but deviates in some places to allow logical grouping by subject. Clicking the ‘Next chapter’ link at the bottom will present the material in a linear fashion but you can quickly jump to a subject of interest through the tutorial index.
Before you start create an account on SuperSaaS if you don’t already have one. It’s free and all you need is a valid e-mail address. Log in to your account to reach the dashboard page. If you’ve already created another schedule before it will be shown on the dashboard page, otherwise it will be mostly empty.
Set up a basic schedule using the wizard
Click the ‘New Schedule’ option in the right-hand menu to start the schedule creation wizard. The wizard will ask a series of questions and create a schedule with sensible default settings for your situation. The first screen of the wizard presents you with a choice between a ‘Resource’, a ‘Capacity’ or a ‘Service’ schedule. This choice is very important because, unlike all other settings, the only way to change it is to start from scratch with a new schedule.
For this example we need a ‘Capacity’ type schedule since, obviously, more than one person can attend our event. If you want to split the event into time slots where each slot can be booked by one person, like you would do for the sign up for a parent/teacher evening, then the ‘resource schedule’ tutorial is more appropriate.
Click ‘next’ to get to step 2 where you give your schedule a title. This title, together with your account name, forms the web address that users see in their browser when they use your schedule. You could just label it “schedule” but it is more helpful to your users if you pick something descriptive of the thing you are scheduling. We use “Golf Tournament” and click ‘next step’.
In step 3 we set how many people we can attend our event. We pick a low number here so we can easily fill it up to try out the waiting list facility, you can always change it later, and we check the box that we want to use the waiting list. You can also check ‘Unlimited’ if you don’t want to put a cap on your event. For the default length we put in the length of our event, 4 hours. At the bottom of the page we pick the option “This is only for a single event, just present a sign up sheet” Clicking the “Finish” button creates an empty schedule, and puts it online right away. Next we need to define when our event takes place.
Try out the basic functionality
To use your schedule click the blue ‘Use’ button that you can find in the menu box that is pictured on the right. It is only visible when you are logged in as administrator. Regular users will see the same schedule but with fewer options. You can also find the ‘Use’ button by going to your dashboard page. You can always get to the dashboard by clicking the link in the top right corner of your screen. Another option is to use the bookmark feature of your browser to quickly find your schedule.
When you enter your calendar for the first time you are greeted by an empty schedule. A lot of what you see here can be configured, but we will get to that later, first let’s try out the basic functionality of the system.
You now have a basically functional appointment booking system. Let’s first create an empty slot that will hold the information for the event we are organizing by clicking “Create Slot”. When we click on the ‘Create new Slot’ button and a ‘New Slot’ window appears. If the dialog window is in an inconvenient place you can simply drag it by its title bar just like you would with a window on your computer. Fill out the date and a descriptive ‘title’. The dialog will reformat a little bit from the one shown here if you omit any fields. You can use the space above the schedule to give a more elaborate description as we will see later. In the space above the schedule you have more formatting options, you can change colors or add pictures.
Change the Configuration
The wizard made a lot of assumptions when it set up your schedule and one of those assumptions is that we don’t want to show a calendar screen. If we have multiple events to choose from you may want to switch it back on. Click the ‘Configure’ button to go to the Configuration Overview page to see a summary of all the different options you can change. This page also lets you temporarily block the schedule or delete it entirely. On the ‘Layout’ tab is the option “Show simplified if just one slot”, that you can uncheck. On this page is also a box marked "Message to show at the top of the schedule:" where we can put some HTML text and links to give more details about our event. Now save the page by clicking the button at the bottom and click ‘Use’ again. Let’s try to enter a reservation by clicking ‘New Reservation’. By default the system only asks for a name, we will explain how to change that later in the customize workflow tutorial.
Here we will go back to the Configure screen and discuss the ‘Resources’ tab in more detail. The other tabs each have their own chapter and are discussed there.
Resources tab for a ‘capacity’ schedule
The resources tab contains the settings that define the resource, the thing you are scheduling. Note that the resources tab will look differently if you are building a ‘resource’ type schedule instead of the ‘capacity’ type schedule we are using here. The first options deal with naming the resource appropriately. The terms you select to be used instead of the default names, ‘slot’ and ‘booking’, are used throughout the system. Error messages, email confirmations and help pages all use the terms you select. Since we are creating a system for an event we select the term ‘event’. We can also change the term used for a ‘user’, for instance to change it into ‘participant’, but this setting is on another page because it is an account-wide change, we will get to that later. If you use a custom term for a slot, for example “tournament”, then enter the singular form and the system will convert it to a plural where appropriate. For foreign words you can enter the custom term as "singular, plural".
Further down the resource page you can specify details about the capacity. In the first field you enter the default capacity, i.e. “How many people can attend the event?”. If you want to create several events with different capacities you can change this number for individual events when you create them. Entering zero will switch off the limit checking entirely. The second field determines how many places a person can book with one reservation. Setting this value to anything other than 1 will change the user interface to include a quantity field when making a reservation. For this event we will leave this at 1, but if you are using SuperSaaS to sell tickets to a play, for instance, it would make sense to allow people to buy multiple tickets at once. Finally, the check box determines if people are allowed to make a second reservation for the same event. Note that the system can only determine if someone is ‘the same person’ by his or her login name. So if you allow people to create their own login name (or if you allow anonymous bookings) then the system cannot prevent people from making a second reservation by creating a second login name.
The next section, ‘overbooking’, determines what happens when a slot fills up. The choices are simply to deny booking, to allow only you to override the limit, to ignore the limit altogether, or to create an entry on a waiting list. The waiting list option is quite sophisticated. It creates a separate waiting list for each event and remembers the order in which people entered the waiting list. If the box for automatic placement is checked it will automatically place the first person on the waiting list if someone cancels. It can get more complicated if you allow multiple bookings per person. You can allow multiple bookings per person by entering a number different than one to the question "How many times can one slot be booked at the same time by the same user?". Upon booking a “quantity” field will appear that allows people to enter the number of places they want to book. (You can change the field name “quantity” to something that is more appropriate, like “number of seats”, by clicking the “Customize” link on the “Process” tab). If someone requests more spots than are available they will go to the waiting list until enough room is available. And if someone subsequently cancels then automatic placement will only take place if there is enough room to satisfy the request of the first person on the waiting list. As administrator you can at any time place people from the waiting list, even if that would go over the set limit. We will show how to do that later. Another thing to note is that automatic placement will obey the time limits you can set on the process tab, discussed later in this tutorial, so if you set a limit to only allow sign up until one day in advance then the automatic placement will stop there too.
The ‘Location’ heading gives you a check box to add an additional field to specify the location. This can be used to specify where the event takes place if you have multiple classes. The user interface also changes slightly to make room for the additional information and if you publish your calendar this information also gets sent across to the appropriate location field inside Outlook and Google Calendar.
The ‘Price’ field allows you to charge money for a booking, or to capture credit card details. By clicking “Setup pricing” you can create advanced pricing rules that change the price based on the number of seats available, and you can, for example, charge extra for an optional lunch. It is discussed in detail in the tutorial on pricing. The ‘Time’ heading allows you to set a default length for slots and you can modify the user interface for time display. Rounding all times to whole days can be a good idea if you are using SuperSaaS for events that take multiple days. Setting ‘Availability’ is done on a different screen. It simply changes schedule coloring, it does not prevent you from adding an event on a Sunday, for instance, if you have indicated that you are closed on Sunday.
Next chapter: Control access to your schedule