The "Lark In The Park" project is a charity event that runs for two weeks in Sidcup (London, UK) and two weeks in Ramsgate (Kent, UK) in July and August each year. The event is now (2014) in it's 18th year.
Under the Digitage umbrella I designed, developed and manage the visitor registration system and ticketing system used during the event.
The project describes itself as a gift to the community from the local churches - and this is exactly what it is.
The project typically has over 1400 visitors each day, and is staffed by a team of 400 or so local volunteers. The site holds a full-sized circus tent, several large marquees, a theater constructed out of four large articulated truck trailers, the catering facility, office and staff areas.
It's no small thing!
Each Saturday we run a three-hour "open day" with all kinds of entertainment for all ages, including live music, bouncy castles, safe play area, art-attach craft venue, games, challenges and more.
On week days we run clubs for pre-schools, key stage 1 (5 to 7), key stage 2 (7 to 11) and 11 to 15 year olds. There is also an adults craft venue called "Inspiration" for those who want to explore their creative side.
In the evenings we run a range of events including an "X-Factor" and the ever popular "Has Sidcup got Talent?" evenings.
If you live in the area, why not coming along and join us - it's great fun.
About the registration system
In order to run an event like this efficiently and safely, we need to be sure that we know the relevant details of all the kids left in our care (such as emergency contact details, any allergies -- etc), and to be able to provide a quick and secure ticketing system.
The Digitage system is built on hardware platforms donated to the project by local organisations (mostly: old laptops from local schools in the process of upgrading) and free software (Linux, MySQL, Perl, etc).
I designed and wrote the main application and database. I also manages the 30-strong registration team on site during the project.
Each year we build a full network into the site using a mix of copper, WiFi and 3g (to link to the global internet).
The system has a server at it's core and 25 or so workstations networked to it. The workstations run a custom Centos 6 Linux build which has the primary purpose of providing a thin-client "X" session to the server (using VNC) and local printer drivers for the ticket printers. The version of Centos I use has been adapted to handle low-spec machines (usually with no PAE support and as little as 256MB of RAM). The systems are configured and administered using "puppet".
Our guests can either register on line from home, or on the "Lark" site at the registration marquee (staffed by 18 operators). The registration process records the names, ages, contact details and special needs of all our guests and establishes child/parent or child/carer linkages. Once registered, our guests can obtain tickets for the clubs and events. These are in the form of bar-coded stickers which show the individual's name the event details. When our guests arrive at the clubs the sticker is scanned and the system records their presence at the venue. Thus the venue organizers always know who is in their venue, what (if any) special needs they have and how to contact one more primary adults (parents/carers) should the need arise.
At the end of the club events, any children wishing to return the next day can collect a follow-on ticket simply by having their bar-coded sticker re-scanned.
The application supports three primary roles. The "registration console" is used to log people's details and issue tickets. The "doorkeeper" function is used in each of the clubs to admit people, log their departure and provide emergency contact and special-needs information on demand. The administration function allows for record de-duplication, synchronisation with the on-line registration system, configuration and event definition, backup - etc.
The application is written in Perl, using MySQL for the database and Tk for the GUI front-end. It uses "Fuzzy" data matching techniques to minimize the number of duplicate data records generated. The thin-client mechanism is a custom VNC client/server solution. Tickets are printed using Brother QL-5xx printers (for which a bespoke driver was written), and barcodes are scanned using USB-connected scanners. The printing subsystem is based on "CUPS" with extensions to handle the auto-discovery of the ticket/workstation associations (including sharing of printers between adjacent workstations).
The forms filled out by hand or on line are scanned into the system and linked to the associated records using purpose-developed a QR code recognition technique. An OpenCV application is currently under development to analyse handwriting on the forms in order to provide some automation of the cross-validation of the form and database contents - my hope is to have this ready for the 2015 event.
The system runs from power supplied by the on-site generator but is also backed up by UPSs in various locations. The networking schema uses WIFI for connections between venues and within the main registration tent, cross-over copper Ethernet in venues that use only two computers (to save on the costs of hubs/switches), copper wiring between the server and the registration venue (since this is the most critical and hardest driven link in the system) and an O2 3G dongle to provide connection with the outside world.