Skip to content
Bronte Lee edited this page Feb 14, 2015 · 5 revisions

View most up-to-date version here. Otherwise this page will be updated at the end of each sprint at the very least, or as frequently as whenever a change to the architecture has occurred.

Table of Contents

System Overview

The software system consists of two user-facing subsystems, search and classification. Both rely on the “back-end” Neo4j Graph Database subsystem to operate. User authentication and sessions are managed by an external library, OpenAuth. An auxiliary library, BCCLib exists to enforce application level business rules on the data.

At the deployment level, the system is designed to be published to AWS EC2 servers running Windows Server 2012 R2 (though could in principle be published to any version of Windows Server). The deployment leverages an instance-local storage volume to run Neo4j, and uses a Relational Database Service (RDBS) instance to store user accounts.

System Design

Software Subsystems

Fig 1: Component diagram. The system has 4 primary subsystems, Search, Classify, Neo4j and OpenAuth.

Logical Model

Fig 2: Class diagram. This is implemented as BCCLib and enforces data rules at the application level.

Core Dynamic Behaviors


Fig. 3: Deployment diagram. The deployment of this application leverages AWS services, but could be deployed to any system supporting the .NET framework and RDB systems.


Fig. 4: Data flow diagram. Search queries provided by the user are processed by the search engine, then the Neo4jDB is queried, which serves results back to the user.


Fig. 5: Artifact diagram. The system is stored and assembled by Visual Studio as an ASP.NET application.

Clone this wiki locally