Computerworld

Need open source Django CRM? Cuddle up to Koalix

Can be extended with other Django apps, API coming
Koalixcrm - editing an invoice

Koalixcrm - editing an invoice

CRM is an application with a long history of open source development, with many projects written the PHP language. However, a Swiss developer has released one of the first open source CRM systems developed with the Django Python framework.

The brainchild of Aaron Riedener, Koalixcrm is aimed at taking the complexity out of CRM, particularly for small businesses and individuals.

Reidener decided to write a new application from scratch after having a lot of bad experiences with other open source CRM systems.

“Most of them were over-sized, complicated, inefficient or simply not usable on single workstations,” he said.

“I had some discussions with small business customers looking for good alternatives to Excel spreadsheets to manage there contracts and bills. For a short while I tried to build plug-ins for different CRM systems, but came to no end.”

After tinkering with other apps, Riedener concluded a CRM system is “just a well-formatted database with some formulas and reports” and Django is “perfect” for this kind of application.

“I have worked with Django quite a lot over the past four years,” he said. “I built individual applications for customers like billing and customer support areas on websites and small dynamic websites.”

“I think the biggest advantage of Django compared to other frameworks is, of course, that it’s based on Python. It became well known to many developers that Django is not just another framework you can use. It’s the best way to store data in different databases and it’s even possible to run the software as a Google App.”

Django is becoming more popular with Web application developers. In March, Melbourne-based developer Stephen McDonald announced two open source projects built with the framework.

Riednener began working on Koalixcrm in late 2009 during his travels to work on the train every day.

“When I think of the hours that I spent writing the application I would estimate I’ve done about 200 to 300 hours by now,” he said.

“By the end of 2010 I set up a project plan to fix the milestones and the date for the first release. I’m currently about three months behind my plan because my wife got pregnant and lots of things have to be done until the birth of our first child in the next few weeks (estimated date is the June 11 and it’s a girl!)”

Still in heavy development, the first alpha release of Koalix is due later this month and will include all major features and documentation.

“This alpha release will hopefully be used by many people so that I get some feedback or bug reports for the beta release which is planned for end of this year,” Riedener said. “The first productivity release will hopefully be in mid-2012.”

The first Koalix stable release will be optimised for small businesses and individuals. CRM features include product and customer management, quotes and invoices, sales and delivery orders and customisable PDF export of documents.

Accounting features include bookings, accounts management, currency management, balance sheet PDF export and profit and loss statement PDF export.

“When I am working on Koalixcrm I try to think about one-person company owners that hate to do accounting at night after a hard working day,” Riedener said.

“I focus on minimising the effort needed to do these administrative things every day. A basic thing to do to gain efficiency is to reduce the number of possible options and fields that one has to fill out before you get some results. This makes the program not only more efficient but also easier to understand.”

If organisations require more complexity, Riedener says Koalixcrm can be extended with other Django applications.

“I kept the basic structure of Django, so Koalixcrm is very easy to extend,” he said. “If one likes to add some more customer fields or wants to add a special formula [to] calculate something before storing it in the database it’s all possible by simply adding a new application to the folder.”

An API for extending Koalixcrm is in the works and will be available after the first alpha release.

In addition to Django, Koalixcrm uses the Apache FOP (Formatting Objects Processor) XML graphics app for PDF generation.

FOP is written in Java, which Riedener says is “not perfect” for a Django CRM systems, but there is currently “nothing comparable” to its functionality available in Python.

“I must say the decision to use FOP was not easy,” he said. “I don't like ReportLab because there is no common interface like XML. Perhaps I will start to support both ReportLab and FOP in the productivity release if people have huge problems using FOP.”

Koalixcrm supports English and German, but Riedener is looking for help to offer the application in other languages.

“Thanks to Django this will not be a big thing. It took me only about two evenings to translate it from English to German,” he said.

Where did the name Koalix and Koala face logo come from? Riedener says a colleague came up with the name for a company they founded in 2006.

“It was a way to make money during our study (electronic and software engineering) and we started a small company doing IT support based on Linux,” he said.

“It was not a great success and my colleagues left the company just after study. After that I was the guy that had to do the administration and work at the customer’s location at the same time.”

“This was about the time where I had to learn the basics of accounting and CRM. I soon recognised that this is not going to be a cash cow — it’s simply a black hole of time investment with no reward. I said to myself ‘why not starting something more interesting’— Koalixcrm.”

Riedener is planning to travel to Australia and New Zealand in a few years to visit relatives in New Zealand.

Follow Rodney Gedda on Twitter: @rodneygedda