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.
- 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.
- 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
- Framework: Angular 17
- Styling: Bootstrap 5, Font Awesome
- Visualization: D3.js, ngx-charts, Open Vector Editor
- Build Tool: Angular CLI / npm
- Java Development Kit (JDK) 16 or higher
- Maven 3.6+
- Node.js and npm (for frontend development)
- PostgreSQL (optional, defaults to H2)
-
Clone the repository:
git clone https://github.com/JBEI/diva.git cd diva -
Backend Setup: The backend uses Maven for dependency management.
mvn clean install
-
Frontend Setup: Navigate to the Angular application directory and install dependencies.
cd src/main/ngapp npm install
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 insrc/main/resources).
-
Start the Backend: You can run the
DevelopmentServerclass in your IDE or via Maven:mvn exec:java -Dexec.mainClass="DevelopmentServer"The backend API will be available at
http://localhost:8081/rest. -
Start the Frontend:
cd src/main/ngapp npm startThe UI will be available at
http://localhost:4200.
To build the full WAR file for deployment:
mvn clean packageThe resulting WAR file will be in the target/ directory.
This project is licensed under the BSD 3-Clause License - see the LICENSE file for details.
- Developed at the Joint BioEnergy Institute (JBEI).
- Supported by the U.S. Department of Energy.