In the last chapter, we saw how to create graphs for publishing in print or online by creating PNGs. Of course, the Internet can do a lot more than publish static images. Much of the power of the Internet is that it's interactive. In this chapter, we'll see how to create a full web application using Clojure, including interactive graphs.
First, we'll set up a web application with Ring (https://github.com/ring-clojure/ring) and Compojure (http://compojure.org). Ring is an interface between web servers and web applications. Compojure is a small web framework that provides a convenient way to define and handle routes (the associations between URLs and functions to provide data for them).
Next, we'll see how to use Hiccup (https://github.com/weavejester/hiccup) to generate HTML from data structures.
We'll complete our web stack with the ClojureScript (https://github.com/clojure/clojurescript). This is just Clojure, but instead of compiling to the JVM, it compiles to JavaScript...