Skip to content

JBEI/DIVA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3,481 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DIVA: Design Implementation Verification Automation Platform

DIVA is a comprehensive web-based platform designed to facilitate the design, implementation, and verification of biological constructs. It serves as a central hub for managing biological designs, DNA assembly tasks, and project collaboration.

Features

  • Biological Design Management: Create, store, and manage complex biological designs.
  • DNA Assembly Integration: Built-in support for j5 DNA assembly protocols, including management of master plasmid, oligo, and synthesis lists.
  • Project Collaboration: Organize designs into projects with granular permissions and team roles (Administrators, Researchers, DIVA Team).
  • Visualization: Integrated visualization tools for DNA sequences and assembly results (using D3.js and Open Vector Editor).
  • Automated Tasks: Background task runner for processing complex assembly designs.
  • Security & Accounts: Robust user management system with role-based access control, account vetting, and email notifications.

Technology Stack

Backend

  • Language: Java 16+
  • Framework: Jersey (JAX-RS) for RESTful services
  • Persistence: Hibernate ORM with PostgreSQL (production) or H2 (development/embedded) support
  • Server: Undertow (embedded for development)
  • Build Tool: Maven

Frontend

  • Framework: Angular 17
  • Styling: Bootstrap 5, Font Awesome
  • Visualization: D3.js, ngx-charts, Open Vector Editor
  • Build Tool: Angular CLI / npm

Getting Started

Prerequisites

  • Java Development Kit (JDK) 16 or higher
  • Maven 3.6+
  • Node.js 18.13+ and npm (required by Angular 17)
  • PostgreSQL 12+ (optional — defaults to an embedded H2 database)

Installation

  1. Clone the repository:

    git clone https://github.com/JBEI/diva.git
    cd diva
  2. Build the backend: The backend uses Maven for dependency management. Skip tests on the first build since they require a configured database.

    mvn clean install -DskipTests
  3. Install frontend dependencies:

    cd src/main/ngapp
    npm install

Configuration

DIVA reads runtime settings from a data directory identified by the DIVA_DATA_HOME environment variable. If unset, it defaults to ~/.DIVAData.

  1. Create the config directory and copy the properties template:

    mkdir -p ~/.DIVAData/config
    cp src/main/resources/diva-server.properties.template ~/.DIVAData/config/diva-server.properties
  2. Edit ~/.DIVAData/config/diva-server.properties to set the database type and any email / LDAP settings your deployment needs. Supported connectionType values are H2DB (default, zero setup) and POSTGRESQL.

  3. PostgreSQL (optional): If you set connectionType=POSTGRESQL, create the database and user first, then fill in connectionUrl, username, password, and dbName in the properties file:

    createuser -P diva            # set password to match diva-server.properties
    createdb -O diva diva_db

Running the Application

Development Mode

  1. Start the backend: Run the DevelopmentServer class (in the default package at src/main/java/DevelopmentServer.java) from your IDE. It listens on http://localhost:8081/ with the REST API mounted at /rest/*.

  2. Start the frontend:

    cd src/main/ngapp
    npm start

    The UI will be available at http://localhost:4200. Because the Angular dev server and the backend run on different ports, configure a proxy.conf.json that forwards /rest to http://localhost:8081 (or enable CORS on the backend) so the UI can reach the API.

Production Build

To build the full WAR file for deployment:

mvn clean package

The resulting WAR file will be in the target/ directory.

License

This project is licensed under the BSD 3-Clause License - see the LICENSE file for details.

Acknowledgments

  • Developed at the Joint BioEnergy Institute (JBEI).
  • Supported by the U.S. Department of Energy.

About

A Design, Implementation, and Verification Automation Software Platform for DNA Construction

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors