News and blog posts from our students and faculty

How to create a pilot app for $1.54 (and a fair amount of time and aggravation)

Tuesday, April 1st, 2014 | Posted by alex.wykoff

Fair warning, this is a technical post and doesn’t cover much (if anything) design-related. I just wanted to share what I used to allow for us to build up a prototype without much cost.

As we are knee-deep into the fourth and final quarter at AC4D, the task is to pilot our ideas within the community. The amount of fidelity can vary greatly, but one of the goals is to assess whether or not our abductive leaps have landed on solid ground.

I set a rather ambitious goal to actually build our application in its entirety. I also wanted to explore a few technologies which I haven’t had the time to investigate otherwise, but I believed were going to be a solid fit for our project.

The first thing I did was to go to Walgreens and purchase a pre-paid Visa card. Many online services, especially the ones I wanted to employ, require a credit card to be on file before utilizing any free trials. This allows me to create a solid budget constraint and to avoid any security issues with my personal credit in case the data is stolen, which happens more often than you’d like to imagine.

The next steps occurred in a less-than-ideal order, but it worked for me.

I went to Amazon Web Services site and configured an EC2 instance. The Linux micro instance is free for one year. Since I am no stranger to their pre-configured Ubuntu instances, it was an easy choice.  I could create a complete separate post about this step, but the short-short version goes like this: Read the directions they give you, read them again, attempt what they describe. Rinse, wash, repeat.

Once the EC2 instance was up and running, I poked a few holes in the firewall to allow for an SSH connection and HTTP. I also created a set of SSH keys so that I could safely connect to our git repo and deploy code. You don’t have to have a git repo, but I certainly recommend some form of version control other than copying and renaming folders.

So why choose EC2? Freedom and cost. The EC2 micro instance supports nearly any stack you could possibly wish to use. If I had chosen a typical hosting service, I would pay a lot more and have rather limited choices as the IT manager for hosting services usually likes to keep their servers in lock-step and tend to lag on support for the latest libraries. EC2 is free for a year and I can do what I like. That’s an incredible deal.

Having said that, if you would like to save yourself some incredible configuration headaches, Digital Ocean is a rapid up-and-comer in the hosting space which provides a ton of flexibility, a great management interface, and very little challenge in configuration. You just pay a bit more for the convenience.

With this much configured, I wanted to get a server up and running as quickly as possible. I had played a little bit with Meteor in the past, but I wanted to try it for our project for a few reasons:

Firstly, it is a complete stack with a Node.js front end and an integrated Mongo data store. My view is that if I need to use HTML, CSS, and JavaScript, why not let that be all I have to learn instead of trying to pile on Python or Ruby? Granted, CherryPy and Flask are pretty quick-and-easy, but a simple stack means that it’s easier to bring people onboard to help. Mongo is a recent favorite technology of mine since it doesn’t require a strict schema. I can add new attributes without having to retrofit.

Secondly, it takes only 4 lines to install, create a project, navigate, then start a server. I would be able to discover any network issues very quickly this way.

Thirdly, it is intended for use as a web app. Updates to data or behavior are pushed out to the user without having to ‘bounce the server’ (stop the server, make chances, then start the server).  This also means that the site is always ‘live’. As the users interact with the system, it can constantly update the other users’ view. In the case of Queery, this means that the moment a new meeting is available, other users could be notified. Static web pages can’t begin to come close to the level of interaction possible.

So far, everything I have described has cost $0.00. So where does the $1.54 come from?

If you want a domain on the cheap, 1and1 is impossible to beat. If you want a .com, it’ll set you back a whole $0.99. This sometimes means you need to get creative with you domain name, but ‘getqueery.com’ seems pretty reasonable to me.

To get the name ‘getqueery.com’ to point to the EC2 box, I had to use Route53.  I honestly don’t know if there is another way to use DNS to point to an EC2 instance, but for $0.55 including tax, it seemed like a pretty reasonable deal.

It was quite a learning experience to get this up and running, but you can now visit http://getqueery.com/ and sign up for our pilot!

As the pilot progresses, expect a few followup posts on how to implement multiple views in Meteor and how to use the HTML5 geolocation and vibration APIs!

I hope this has inspired you to think a little differently about just how far you want to go with your pilot. Got any questions or suggestions? Feel free to contact me via email or twitter

No Comments »