In this chapter, we're going to build a collaborative to-do list application. This means that you'll be able to share your to-do list with other people in real time. One or more people will be able to add, complete, or remove to-do list items at the same time. Changes to the to-do list will be automatically propagated to all users. This is the type of application that Node is perfect for.
Our Node.js code will consist of two distinct parts, the normal web application that will serve static HTML, CSS, and JavaScript, and a WebSocket server that handles the real-time updating of all the to-do list clients. Together with this, we'll have a jQuery-driven client that will look very similar to our application in Chapter 3, CoffeeScript and jQuery.
We'll use some of the assets (stylesheets and images) from our existing to-do list applications. We'll also re-use the client-side jQuery code from Chapter 3, CoffeeScript and jQuery and tweak it to fit our application. If you weren't following...