The Objectivity Customer Support site was created to provide an easy way for active customers to interact with Objectivity. Some of those interactions include but are not limited to:

  • Downloading the latest release of the product
  • Downloading special per-user downloads
  • Downloading files contingent on user agreements
  • Searching through documentation (including PDF's)
  • Contacting Customer Support
  • Searching our issue database
  • Learning about our product and its usage

Objectivity is an enterprise object database whose main product, Objectivity/DB, persists data in format similar to that of Object Oriented languages such as C++ and Java. Objectivity also offers a Graph Database known as InfiniteGraph.

Why Drupal was chosen: 

Drupal was chosen primarily because of the wide array of existing modules that allowed us to fulfill most our requirements without any extra work. Secondarily was the ease of extensibility. This allowed us to build our own modules and actions to compensate for our very specific requirements.

Drupal was chosen over WordPress for its ease of extensibility. It was also chosen over Confluence as we needed something that would do more than simply provide documentation for our product.

Describe the project (goals, requirements and outcome): 

Searching our issue database
Searching our issue database possessed a unique challenge in that we both needed to expose potential issues to our clients and at the same time protect the identity and possibly proprietary information provided by the client who originally filed the issue. This meant that we had to filter specific fields from not only being displayed but from even being searchable. Additionally the reporting client must not only be able to view his issues, he must also be able to search through normally unsearchable fields. The first step was to somehow link the information in our issue database with the user information in Drupal. To accomplish this we used the Profile module (https://drupal.org/project/profile2) to extend the user information. With this we had a way of matching a Drupal user to the submitter of an issue but in order to query the issue database we had to write our own custom module. This module was broken up into 3 parts, the backend which knows nothing of Drupal and is in charge of querying the database. The middle-end, which filters issues and processes the user's request and the front-end which provides blocks/pages for users in the Drupal site to interact with.

Searching through documentation (including PDF's)
The ability to search to search through our legacy documentation was a must-have. Our legacy documentation was spread-out in PDF's and HTML files while our newer documentation was in native Drupal format. The Apache Solr Search module allowed us to make all of these formats searchable. The module also allowed us to move away from the Drupal search which, while good for smaller documents, struggled to index and search through thousand page documents (PDF manuals).

An additional challenge of displaying the various formats in a structural way was addressed with the Books module to organize and group documents according to a release of the product. Breadcrumbs were used to help with navigation inside the book.

Downloading files contingent on user agreements
A module that performed this duty existed for Drupal 6 but not for Drupal 7. This lead us to integrate this feature into our own custom modules.

Contacting Customer Support
Every existing customer has a special support alias email that they use to contact our customer support team. The use of the Profile module allowed us to add this support alias to the users information and small hook in one of our modules allowed us to redirect their questions (via the contact form) to their support alias.

Technical specifications

Why these modules/theme/distribution were chosen: 

Profile 2
To add additional information to a users account.

Syntax Highlighter
To add some color to sample code, tutorials, and various snippets of code throughout the site.

Bootstrap API
To create the look and feel.

Panels
To create the look and feel.

Search API Solr Search
To search through large documents and PDF's.

Team members: 
Sectors: 
Technology