The Influent web app is a servlet with server-side Java and client-side JavaScript and HTML5. The following instructions describe the process of installing the prerequisites and source code needed to build a custom Influent web app.

The Influent source code is available on GitHub.

Installing Prerequisites

Before building Influent, you must first install several third-party tools and clone the source code repositories for Influent and its dependent projects.

Third-Party Tools

The following third-party tools are required for new Influent builds:

Tool Version
Java Development Kit (JDK) 1.7+
Apache Maven 3.1+

The following third-party tools are recommended, but not required:

Tool Version Notes
Node.js 0.10.31 Runtime environment for build optimization and unit testing. If not installed, build optimization is instead executed with Rhino.
npm Official Node.js package manager. As of Node.js v0.6.3, npm is installed automatically with the Node.js environment.

Source Code Repositories

Source code repositories for Influent and its dependent projects, Aperture JS and Ensemble Clustering, are available on GitHub:

  • Influent
  • Aperture JS: Adaptable and extensible JavaScript visualization framework with supporting REST services.
  • Ensemble Clustering: Flexible multi-threaded clustering library for rapidly constructing tailored clustering solutions.

NOTE: We recommend you watch these projects on GitHub to receive email notifications each time a new release becomes available.

To work with the Uncharted source code
  1. Clone the Influent repository:

  2. Clone the Aperture JS repository.

  3. Determine which version of Aperture JS you require:
    1. Open the main pom.xml file in the root of your Influent working directory.
    2. Search for the <aperture.version> element, which specifies the required version.
  4. Check out the Aperture JS branch or tag corresponding to the required version:

    git checkout <branch>
  5. Clone the Ensemble Clustering repository.

  6. Determine which version of Ensemble Clustering you require:
    1. Open the pom.xml file in the influent-server/ folder of your Influent working directory.
    2. Search for the <artifactId>ensemble-clustering</artifactId> element and note the corresponding <version> element.

  7. Check out the Ensemble Clustering branch or tag corresponding to the required version.

    git checkout <branch>

After you clone the repositories, the following working directories will appear in your Git project folder:

  • influent
  • aperturejs
  • ensemble-clustering

Installing the Source Code

To install the source code for Influent and its dependencies, execute the following Maven command in the root working directory for each project:

mvn clean install

Install the projects in the following order:

  1. Aperture JS
  2. Ensemble Clustering
  3. Influent

Updating the Source Code

After you perform the initial setup and installation of your repositories, you can simply pull new updates to the project from GitHub.

NOTE: Retrieving updated Influent source code may also require you to update its project dependencies: Aperture JS and Ensemble Clustering.

Example Applications

Example Influent web apps used to explore publicly available transaction flow data are provided in the source code:

  • Influent App: Generically themed application that examines a fabricated dataset of personal and commercial financial account data
  • Bitcoin: Examines Bitcoin transactions between Jan 2009 and May 2014
  • Kiva: Examines semi-anonymized Kiva microloan transactions between Apr 2005 and Apr 2013
  • Walker: Examines unsealed and published email communications from a John Doe investigation into Wisconsin Governor Scott Walker's government staff between Jan and Nov 2010

These applications connect to databases Uncharted has made available online for demonstration purposes.

To run the example applications in a Jetty instance
  1. Execute the following command in the Influent App, Bitcoin, Kiva or Walker project folder of your Influent working directory:

    mvn package jetty:run
  2. Access the example application in the Jetty instance at one of the following locations:

New Implementation Setup

When configuring your first Influent application, we recommend you copy one of the provided example applications as a template. Choose the one which most closely aligns with your source data.

NOTE: If you are examining simple financial transactions, the Influent App example may serve as the best template, as it has been generalized to require minimal modification.

Project Transactions Entity Types Source Data
influent-app/ Financial
  • Personal and commercial financial accounts
  • Transaction database
  • Entity details
bitcoin/ Financial
  • Bitcoin accounts
  • Transaction database with limited entity details
kiva/ Financial
  • Lenders
  • Partners
  • Borrowers
  • Transaction database
  • Entity database
walker/ Email
  • Email accounts
  • Transaction database
  • Entity database

Next Steps

To configure your source databases, connect them to Influent and enable search functionality, see the Database Configuration topic.