Unordered thoughts about programming, engineering and dealing with the people in the process.

Real Life Clojure Application

| Comments

When a language is going through its maturity process, there’s always the need for sample code and applications to look at, design patterns, coding guidelines, best libraries, you name it, you usually get those looking at the source code of others.

That is what really builds community, having a common language, besides the language.

Clojure’s been going through this phenomenon for the last years, as you see in this question from 2008 and this question still being answered in 2012.

This year I made a real life full application in Clojure so I’ve spent some time deciding on many strategies, where to put which code, how to test, best libraries to use and what not.

So I decided to put the source code online, not only because I think it may help someone, but hopefully somebody will come up and help me improve what it’s done in one way or another, it’s certainly far from perfect.

In case you wonder, it’s an application for automatic call and sms dispatching.

Among other things, you’ll find inside:

  • Web development using ring, compojure and hiccup.
  • Client side almost entirely done in clojurescript.
  • Authentication and authorization using friend.
  • Database access using both jdbc and korma.
  • Async jobs using quartz for call and sms dispatching.
  • Unit tests using midje.
  • Chart drawing using incanter.
  • Asterisk telephony integration using my own clj-asterisk bindings.
  • Deploy configuration using pallet (not yet finished).

If you like it say hi! I’m guilespi