In my previous post, I shared my recent experience building a RESTful API with Node.js, MongoDB, and Express.
In this post, I’m sharing the client application that uses that RESTful API. The Node Cellar application allows you to manage (retrieve, create, update, delete) the wines in a wine cellar database.
The client application is built with Backbone.js and Twitter Bootstrap.
Run the Application
You can run the application here. For obvious reasons, the create, update, delete features have been disabled in this hosted version.
NOTE: Node.js is running on port 3000 on my EC2 Instance. My friend James Ward convinced me to host the application on their service over at Heroku. It’s now running on port 80 at http://nodecellar.coenraets.org. Thanks James!
Server-Side
The details of the Node.js, MongoDB, and Express implementation are documented in my previous post.
Client-Side
In this application, Node.js is used to provide the RESTful services that the client application needs to manipulate the data. Node.js is not used to generate HTML/Views at the server-side. Instead, the Views are created dynamically at the client-side using Backbone.js and Underscore.js templates. They are injected into- and removed from the DOM as needed as you navigate through the application. Node Cellar is a “single page application”.
This is a Node.js and MongoDB powered version of an application I initially posted here with PHP and Java backends. The original post provides some additional Backbone.js context. This Node.js version also provides an improved user experience with the latest version of Twitter Bootstrap (2.1.1), and a responsive layout. It also uses Adobe Edge Web Fonts.
Source Code
The source code is available in this repository on GitHub.