Meteor.js CodeMash Staff Application

Scott ZischerkNote: If you have interest in checking out the project, you can find it here:


If you’re not familiar with CodeMash, it’s a technology conference hosted at the Kalahari Resort & Indoor Water Park in Sandusky, OH:

CodeMash is a unique event that will educate developers on current practices, methodologies, and technology trends in a variety of platforms and development languages such as Java, .NET, Ruby, Python and PHP.

A couple of years ago I took over the role of Committee Chair for the volunteers, which basically means that I’m the CCW (Chief Cat Wrangler).  Last year I had 32 volunteers under my watch, and this year I had over 40.  Volunteer duties include: session proctoring, manning the registration and sponsorship desks, coat check and other miscellaneous tasks.

In the past, scheduling , proctoring, and checking in was a manual process.  I spent half a week for CodeMash 2015 working on the schedule and even came up with a process for checking volunteers into their shifts.  Since last year, I started putting a lot of thought into how to make this process of scheduling and checking in easier and a bit more automated.

In the end, I came up with the idea of creating an application to facilitate the process and called it the CodeMash Staff Application.

It was designed to:

  • Import session and shift data from web services and csv files
  • Allow multiple users and groups
  • Automatically assign these users to the sessions and shifts
  • Show the users their personal schedule
  • Allow users to check into their shifts
  • For sessions, allow users to record start and end times for sessions as well as attendance


We started the project as a group activity at my company.  We were debating which technology stack we should use to write the application.  We threw out angular, backbone and ember before someone mentioned Meteor.  I had never heard of Meteor before, so what better excuse to check it out? I found that Meteor was a full stack JavaScript framework that uses WebSockets and MongoDB to build a very reactive experience.  This was perfect for what I needed it for!  So, we decided to go with Meteor as our framework.



Getting Meteor set up on my Windows system was as easy as using the Meteor Windows Installer.  I then went through the first tutorial, creating my first Meteor application within minutes.  From there I started working on the CodeMash Staff application with my team.  It was pretty easy and within a few short weeks (working on it only a few hours each week) we had a working prototype.  We finished up over the holiday break in December and were ready for the conference the first week of January.

I originally had plans to make it a Cordova application, but in the end I ran out of time and was actually glad that I didn’t, as I had to make updates to the application a few times during the week.

Screen Shots of user application:


Screen shot of the admin dashboard:


In Practice

I took the app to the conference and tried it out.  It worked great for the most part with some minor bugs that I worked out on-the-fly.

Meteor was great to work with for this small application, and the updates to the Mongo database caused the clients page to be updated almost immediately!  I was able to just keep my dashboard open and the check-ins just changed from gray to green on my screen as they came in.  No refreshing or polling the server.

I got compliments from the volunteers and the Speaker Committee Chairs as well.  At the end of the conference, I was able to export the session data and give it to the Speaker Committee Chair for further analysis.


In Closing

I would definitely use Meteor again for applications like this, although I have not tested how it scales.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s