This is a web-based tool for biologist to search our catalog of chromosomes for specific genetic sequences. It also supports plug-ins which can search for variations or meta-data for the specific sequences.
The framework is written in C++ and uses CGI to interact with the browser. It is a little uncommon (and painful) to see a CGI application written in C++, but I chose this setup because I wanted to build a plug-in architecture so that the basic engine could be extended indefinably with new search algorithms. And future engineers wouldn’t have to keep reinventing the UI. And I wanted it to be really fast. Although the final architecture is very flexible and extensible, I never really found a good solution for the plug-in architecture, e.g. runtime binding of additional libraries. What I came up with was a plug-in model using abstract virtual classes. You could easily write your own plug-ins, but to deploy them you needed to recompile the main application and redeploy all the code. And it turns out, no one really wants to do that.
Files: