Skip to content

JBEI/DIVA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3,479 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 and npm (for frontend development)
  • PostgreSQL (optional, defaults to H2)

Installation

  1. Clone the repository:

    git clone https://github.com/JBEI/diva.git
    cd diva
  2. Backend Setup: The backend uses Maven for dependency management.

    mvn clean install
  3. Frontend Setup: Navigate to the Angular application directory and install dependencies.

    cd src/main/ngapp
    npm install

Configuration

DIVA looks for a data directory specified by the DIVA_DATA_HOME environment variable. If not set, it defaults to ~/.DIVAData.

Key configuration files (located in $DIVA_DATA_HOME/config):

  • diva-server.properties: Database connection details and system settings.
  • hibernate.cfg.xml: Hibernate configuration (located in src/main/resources).

Running the Application

Development Mode

  1. Start the Backend: You can run the DevelopmentServer class in your IDE or via Maven:

    mvn exec:java -Dexec.mainClass="DevelopmentServer"

    The backend API will be available at http://localhost:8081/rest.

  2. Start the Frontend:

    cd src/main/ngapp
    npm start

    The UI will be available at http://localhost:4200.

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