Meteor.js CodeMash Staff Application Reply

Scott ZischerkNote: If you have interest in checking out the project, you can find it here:
https://github.com/InteractiveBusinessSystems/cm_staff_app

Background

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.

 

Implementation

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:

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:

WordPress.com Logo

You are commenting using your WordPress.com 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