Entries in the '' Category

New opentaps keyword search feature

And now for something I’m especially proud of.

We’ve just finished putting together the new keyword search feature for opentaps. Now if you go to opentaps CRM, you’ll see a new keyword search box on the right:


Type in a keyword, click on search, and opentaps will return results from different sections of the CRM application, including accounts, leads, contacts, cases, orders:


And here’s an example of searching for an order by its ID:


The results are returned in a floating panel which shows up on top whatever screen you’re on.  You can click on a result to take you to it, or just close the floating panel to stay in the page you’re already in.

Now Here’s the Best Part

This new keyword search feature is implemented with Apache lucene and hibernate search. What we’ve done is create a separate and modular component in opentaps and loaded  with the Spring framework as a domain under our domain driven architecture:


Each opentaps application then uses the underlying search component to put together its own search services and user interface. For example, opentaps CRM uses the accounts, lead, contact, cases, opportunities, and orders search services from the search domain.

What this also means is that if you want to use a different indexing and search engine, all you have to do is implement the search domain and then plug it into opentaps using this our domain driven architecture.

Anybody out there interested in working with the Google Search Appliance?

What Will Make Your Project Successful?

In the previous installment of An Open Source Business, we talked about how to determine if an open source project could also support a successful business. Now let’s look at how to build a successful commercial open-source project.

Before starting your project, ask yourself:
What will make a commercial open source project successful?

Believe it or not, most developers get this question wrong because of two myths about software — and doom years of work before they’re begun.

The Two Myths

Here’s the myth that many commercial software companies have:

“The best software is the one with the most features.  If we could just get more features in our program, we’ll be able to get more customers and topple Microsoft.”

And here’s its equivalent at many open source projects:

“The best open source project is the one with the most people.  If we get more people in our project, we’ll get more contributions and more features, and then we’ll be able to topple Microsoft.”

And What’s Wrong with That?

For commercial software, the number of features is not as important as ease of use.  Sure, I want my software to do what I need–but then that’s it.  Don’t confuse me with all those other screens, menus, and buttons.  I’ve got a life and want to get back to it.

For open source software, the most important thing is having good code.  Every project needs more users and more developers, but without the proper technical foundation to absorb them, an open source project could easily hit a wall.  (I actually wrote about this almost exactly two years ago under “The Limits of Open Source.”)   A successful open source projects must be extensible, stable, and technically interesting — otherwise, who would want to work with your code base?

Now Here’s the Hard Part

If you want to have a successful commercial open source project, you need to do both.  You need to create software that is both easy to use and is technically strong.  It should have enough features to be useful, so that your project could support your business.  Longer term, though, your project — and your business — will succeed only if your software is easy to use and well written.


This may sound like a tough balancing act, but it’s exactly what has worked for opentaps Open Source ERP + CRM.  Sure, our users  are looking for a program with enough features to meet their needs.  But why do they choose opentaps?  Because they find it easy to use, and because they like its strong technical architecture.  This is why we’ve invested so much in giving opentaps a stronger technical infrastructure and making it easier to use — and we’re just getting started.  If you like opentaps now, then just wait — you ain’t seen nothing yet!

In the next installment of “An Open Source Business“, we will look at competitive strategies for an open source project.

Taking Full Advantage of GWT in opentaps

GWT is short for “Google Web Toolkit”, an open source library of tools for building rich web applications using Ajax. We have been working with GWT in opentaps Open Source ERP + CRM for over a year now, and I’d like to give you this example of how GWT really can do.

A long, long time ago…

Almost 4 years ago, we built the first version of opentaps CRM. It had several tabs for all the function of a full-featured CRM application, including leads contacts, accounts, cases, opportunities, etc.   Under each tab we added a “quick widget” to help users do common tasks easily, like entering a lead with basic information:


GWT Made It Better

When we started working with GWT over a year ago, we started by porting these quick widgets to GWT. This was nice, because now you can enter a lead without having to refresh your entire web page. We also updated the find and list forms in opentaps with GWT, so it’s easier to scroll through lists of  data like leads and cases. These are all enhancements which will be part of opentaps 1.4.

But This is What It Can Really Do For You

Looking back, this was a classic example of old thinking with new technology, like the early TV commercials which featured an announcer reading a script in front of a microphone.  (“Folks, it’s So So to tell you about the incredible advantages of the new Such and Such…”)  Sure, now you can see the announcer, but you’re just watching a radio commercial on TV.

What GWT really allows you to do is create “widgets” which can be pasted anywhere, so you don’t have to be tied to the context of the page.  For example, Google adwords is a widget that can be pasted on any web page to serve up ads from Google.

In a similar way, these opentaps CRM quick action widgets don’t have to be tied to just a particular part of opentaps anymore either, because you’re not.  You might be entering some information about a sales opportunity and get a call.  It turns out to be a new prospect.  When you’re done on the phone,  and you shouldn’t have to go look for the Leads tab to enter the new prospect’s information.

And you won’t. As of the next release of opentaps, the quick action widgets have been changed so that they can be put on any page in opentaps CRM. For example, they are all available from the “My Home” page of opentaps CRM:


By default, they are closed, but once you click on the tab bar to open them, you can use them to enter information without leaving the screen you’re on:


They will also remember whether you would like them open or closed, so if you have widgets get you use frequently, they will stay open for you: