Meteor.js CodeMash Staff Application
Note: 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
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:
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.
I would definitely use Meteor again for applications like this, although I have not tested how it scales.