By all accounts, this year’s BSidesDC (http://www.bsidesdc.org) registration system was a vast improvement over previous years. We’ve had a variety of problems that have all caused on-site check-in for registered attendees, sponsors, speakers, and trainees to be extremely slow. The 2015 BSidesDC conference was particularly bad, resulting in a nearly complete failure of the automated system. We actually resorted to a paper printout of the database in order to get everyone checked in.
In the after action review, we decided that a new system was needed. I took it upon myself to figure out a better way, either by finding something out there that we could use or by designing and building a new system.
The first thing I did was to investigate commercial solutions. Companies like Eventbrite make systems specifically designed to register people for events and then check them in. Many other BSides conferences use them, and it was a logical place for me to start looking. It turns out that these companies don’t charge a service fee for free events, so events that are free can use the software without any difficulty. If you collect money for an event, then they charge a pretty high service fee. It’s not a knock against those types of companies. They make a good product, and they deserve to get paid for it. The problem is that it would require us to build in that service fee into the price of our tickets. It would have increased our prices significantly.
So, it looked like I was going to have to investigate building something. The engineer in me said, “Awesome! A project!”
I first looked at commercial barcode scanners to get a price comparison. 2D code scanners are not cheap. New ones start at around $100 and go up from there depending on the features you want. That was just for the reader itself. That didn’t include the computer that it would plug into or any other systems needed. I figured that there must be a cheaper solution.
Like most engineers and tinkers, I have a couple Raspberry Pi at home. Also, like most engineers and tinkers, I haven’t really come up with much to do with them. I played around with them when I first got them, but I haven’t really put them to good use. I decided I would look into building a QR reader system that used them.
The system I finally came up with uses a series of two or more Raspberry Pi units, one server and one or more readers. I used a Raspberry Pi v3, the Pi camera unit, some python programming, and some electronic components to build a system that worked well enough to check-in over 1000 in the span of a weekend without any major failures or screwups. Was it perfect, no. Are there things that could be done better, absolutely.
I have already started a list of improvements that I’m planning for next year. If you have any suggestions, please feel free to send them to me. BSidesDC wants this to be a community effort, so we welcome input.
I am currently working to document the hardware that I built. The software is already up on GitHub if you are interested in looking at it, https://GitHub.Com/jimgilsinn/PiConReg.
I will be posting a few different articles about this system in the near future. Keep an eye open for more to come.