Project :: IRWatcher
This was an experiment into using more advanced JavaScript concepts and developing with Node.js. It lead me to cloud PaaS deployment and integration - namely Redhat OpenShift. Node.js is lightweight, powerful, damn fast and actually quite easy to use. I used to program JavaScript in a minimal way and did so fairly imperatively, Node.js has certainly opened up the potential of JavaScript to me and I now enjoy programming with it immensely.
There are many reasons that make JavaScript an ideal language for web systems, I think the most obvious to me now is its natural and native support for JSON. One example - loading Node.js configuration from JSON in a file was up and running in seconds. The JSON is parsed and whacked into an object for you, no messing around writing XML and code to parse configuration structures and transfer the information to objects - I've done this in C# often - and seeing this in Node.js I'd really like to use something similar in C#. Not just custom configuration, but all the config for WCF services and app settings etc.
Redhat's OpenShift cloud platform as a service is impressive yet simple. Integrate it with your Git repo as a remote and just push to it to release and deploy. I was able to utilise a free OpenShift account that gives me 3 gears (platforms for applications) - each with their own MongoDB database.
Considering everything was free, I'm both impressed and fond of Node.js, MongoDB and OpenShift. I will certainly continue to develop on this stack.
The application watches interest rates at ANZ bank, records those rates over time and alerts when a change is detected via email. Often the interest rate on your high-interest-savings-account goes down without you knowing - the bank doesn't tell you like they would if it was a home loan. Or maybe you want to watch the interest rates of term deposits and wait for it to go up before you invest. Perhaps you just want to keep an eye on home loan rates. This application is capable of doing all of these things and can be custom configured to do so. I thought this a worthy experiment with Node.js as it utilises the networking strengths of Node and a lot of the power of working with JSON natively.
The application uses Bootstrap 3 for a responsive UI, Express on Node.js for MVC and the Jade template engine for HTML output.