I’ve spent about 16 hours running through tutorials, reading and rebuilding Poopee. This post will cover what I’ve learnt so far and how.
Poopee currently uses a MySQL database fronted by PHP that returns XML. The front-end is JQuery. My aim is to rebuild it with Mongo and Ember.
MongoDB
I’m comfortable with Mongo. I run through a basic interactive tutorial at Mongly. The main reason I wanted to use Mongo was that it had a simple way to handle geospatial queries. This was covered by Mongly with a geospatial tutorial.
The next step was to learn how to use Mongo as part of an API. Christophe Coenraets has a good two-part tutorial on how to build a simple site with Node.js, Express, Mongo and Backbone. The first part is a good guide on building the API, which I followed. The second is really a link to a github repository for the finished product. I used the first post to build the API for Poopee. That included importing the lastest batch of Australian Toilet data. Importing the XML data was the single task that I spent the most time on.
Ember
Outside the day and a half I spent on the API, I read about the good, bad and the ugly of pretty much every javascript framework I could find. I settled on Ember as the framework that I’d tackle. Ember is popular enough to have documentation and good tutorials. The decision was a toss-up between Angular and Ember. I rejected Angular because I didn’t like the way it extended HTML. I prefer to keep my HTML clean. Obviously, I can change my mind later, once I delve deeper into Ember. It’s highly likely I’ll end up using Backbone for Poopee, because it’s such a straight forward web app.
So far, I’ve spent my time coming to grips with the new (to me) concepts in Ember. After reading the Ember guides, the article/tutorial that I saw recommended was Advice on & Instruction in the Use Of Ember.js.
The next step is to run the Ember and Rails tutorials. The concept that I struggled with was how the API connection worked with the routing. I’m expecting this tutorial to help me understand that.