Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.3%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: borkdominik
  • License: mit
  • Language: Xtend
  • Default Branch: main
  • Size: 11.2 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 1
  • Releases: 0
Created 10 months ago · Last pushed 9 months ago
Metadata Files
Readme Contributing License Citation

README.md

Logo

BIGER Modeling Tool

GitHub Build Visual Studio Marketplace Installs Visual Studio Marketplace Version Visual Studio Marketplace Last Updated GitHub contributors

Open-source ER modeling tool for VS Code supporting hybrid, textual- and graphical editing, multiple notations, and SQL code generation!
➜ Download the VS Code Extension

Demo

Main features: - 📝 Textual Language for the specification of ER models in the textual editor. Assistive validation and rich-text editing support, enabled with the Language Server Protocol, allows to quickly get familiar with the available language constructs. - 📊 Diagram View that is fully synchronized with the textual model and automatically updates on changes. Also offers an interactive toolbar with graphical editing actions, layout mechanisms, and multi-notation support. - 🖨️ Code Generation to generate SQL tables out of the specified ER models and integrate with existing databases.



📖 Table of Contents 1. About the Project 2. Usage 3. Build Instructions 4. Issues 5. Contributing 6. License


About the Project

Entity-Relationship (ER) modeling is the de-facto standard for data modeling, offering powerful concepts to visualize data in (relational) databases. Various tools for ER modeling are available, however, often they are inflexible, proprietary, or constrained to specific platforms.

The bigER tool aims to provide an open-source and modern solution for ER by making use of the Language Server Protocol (LSP). The protocol is used for communicating textual language features to the VS Code client and is further extended to also support graphical editing, making it one of the first hybrid modeling tools based on the LSP.

Built With

The Java-based language server is realized with Xtext and Xtend, while the diagramming capabilities are based on Sprotty. Sprotty enhances the server with graphical language features (using sprotty-server) and integrates with VS Code through Sprotty VS Code Extensions.

Usage

Download and install the extension from the VS Code Marketplace, see the Installation page in the Wiki for instructions.

New ER Model

After installation, ER models can be created in .erd files. Use the New Sample ER Model command in the Command Palette or refer to the example below to get started with a basic model.

```java erdiagram Model

notation=default

entity A { id key } entity B { id key } relationship Rel { A -> B } ```

Open the Diagram

The corresponding ER Diagram can be opened by using the button in the editor toolbar, the context menu when right-clicking the file, or by pressing Ctrl/ + O.

Learn More

For more information on how to use the tool, see the bigER Wiki.

Build Instructions

Prerequisites

Download or clone the repository and in the root folder of the project execute the following commands:

bash language-server/gradlew -p language-server/ build yarn --cwd webview yarn --cwd extension

After building the project, the extension can be run in VS Code by pressing F5 or selecting Run ➜ Start Debugging from the menu.

Issues

Project issues are managed on GitHub, see Open Issues for the currently tracked issues. Do not hesitate to report a bug or request a feature through the offered Issue Templates. For questions, simply use a blank issue.

Contributing

Contributions to the project are always welcome! See the Contribution Guidelines for more information.

Contributors: - Philipp-Lorenz Glaser (main developer)
- Georg Hammerschmied (multi-notation support) - Hnatiuk Vladyslav (improved edge router) - Christoph Lauscher (SQL import/export) - Dominik Bork

See All Contributors.

If you like our work, please feel free to buy us a coffee ☕️

Logo

License

The project is distributed under the MIT License. See License for more details.

Owner

  • Login: borkdominik
  • Kind: user
  • Company: TU Wien

Ass. Prof. for Business Systems Engineering at TU Wien

Citation (CITATION.bib)

@inproceedings{bigERTool.21,
  pages={337 -- 340},
  booktitle = { 25th {IEEE} International Enterprise Distributed Object Computing Workshop, {EDOC} Workshops 2021 },
  author = { Philipp-Lorenz Glaser and Dominik Bork },
  title = { The bigER Tool -- Hybrid Textual and Graphical Modeling of Entity Relationships in VS Code },
  year = { 2021 }
  doi={10.1109/EDOCW52865.2021.00066}
}

GitHub Events

Total
  • Delete event: 4
  • Push event: 4
  • Pull request event: 1
  • Create event: 4
Last Year
  • Delete event: 4
  • Push event: 4
  • Pull request event: 1
  • Create event: 4

Dependencies

.github/workflows/build.yml actions
  • actions/checkout v4 composite
  • actions/setup-java v4 composite
  • actions/setup-node v4 composite
  • actions/upload-artifact v4 composite
.github/workflows/release.yml actions
  • actions/checkout v4 composite
  • actions/setup-java v4 composite
  • actions/setup-node v4 composite
  • mindsers/changelog-reader-action v2 composite
  • softprops/action-gh-release v1 composite
orm-reference-implementations/database/docker-compose.yml docker
  • dpage/pgadmin4 latest
  • postgres alpine
language-server/build.gradle maven
language-server/org.big.orm/build.gradle maven
  • org.eclipse.xtext:org.eclipse.xtext ${xtextVersion} api
  • org.eclipse.xtext:org.eclipse.xtext.xbase ${xtextVersion} api
  • org.eclipse.xtext:org.eclipse.xtext.testing ${xtextVersion} testImplementation
  • org.eclipse.xtext:org.eclipse.xtext.xbase.testing ${xtextVersion} testImplementation
  • org.junit.jupiter:junit-jupiter-api * testImplementation
  • org.junit.jupiter:junit-jupiter-engine * testRuntimeOnly
language-server/org.big.orm.ide/build.gradle maven
  • org.eclipse.elk:org.eclipse.elk.alg.layered ${elkVersion} api
  • org.eclipse.elk:org.eclipse.elk.alg.libavoid ${elkVersion} api
  • org.eclipse.sprotty:org.eclipse.sprotty.layout ${sprottyVersion} api
  • org.eclipse.sprotty:org.eclipse.sprotty.server ${sprottyVersion} api
  • org.eclipse.sprotty:org.eclipse.sprotty.xtext ${sprottyVersion} api
  • org.eclipse.xtext:org.eclipse.xtext.ide ${xtextVersion} api
  • org.eclipse.xtext:org.eclipse.xtext.xbase.ide ${xtextVersion} api
  • commons-io:commons-io 2.11.0 implementation
  • org.eclipse.core:org.eclipse.core.resources 3.7.100 implementation
orm-reference-implementations/hibernate/pom.xml maven
  • org.projectlombok:lombok 1.18.30 provided
  • jakarta.persistence:jakarta.persistence-api 3.1.0
  • org.glassfish.jaxb:jaxb-runtime 4.0.3
  • org.hibernate.orm:hibernate-core 6.3.1.Final
  • org.postgresql:postgresql 42.6.0
  • org.junit.jupiter:junit-jupiter-api 5.9.2 test
  • org.junit.jupiter:junit-jupiter-engine 5.9.2 test
extension/package.json npm
  • @types/glob ^8.1.0 development
  • @types/node ^20.14.9 development
  • @types/vscode 1.90.0 development
  • @typescript-eslint/eslint-plugin ^7.15.0 development
  • @typescript-eslint/parser ^7.15.0 development
  • @vscode/vsce ^2.29.0 development
  • eslint ^9.6.0 development
  • rimraf ^5.0.7 development
  • source-map-loader ^5.0.0 development
  • ts-loader ^9.5.1 development
  • typescript ~5.5.3 development
  • webpack ^5.92.1 development
  • webpack-cli ^5.1.4 development
  • @vscode/codicons ^0.0.36
  • @vscode/webview-ui-toolkit ^1.4.0
  • sprotty-vscode ^1.0.0
  • vscode-languageclient ^9.0.1
extension/yarn.lock npm
  • 431 dependencies
package.json npm
webview/package.json npm
  • @typescript-eslint/eslint-plugin ^7.15.0 development
  • @typescript-eslint/parser ^7.15.0 development
  • copy-webpack-plugin ^12.0.2 development
  • css-loader ^7.1.2 development
  • eslint ^9.6.0 development
  • file-loader ^6.2.0 development
  • reflect-metadata ^0.2.2 development
  • rimraf ^5.0.7 development
  • source-map-loader ^5.0.0 development
  • style-loader ^4.0.0 development
  • ts-loader ^9.5.1 development
  • typescript ~5.5.2 development
  • webpack ^5.92.1 development
  • webpack-cli ^5.1.4 development
  • @vscode/webview-ui-toolkit ^1.4.0
  • sprotty ^1.2.1
  • sprotty-vscode-protocol ^1.0.0
  • sprotty-vscode-webview ^1.0.0
webview/yarn.lock npm
  • 305 dependencies
orm-reference-implementations/entity-framework/entity-framework.csproj nuget
  • Microsoft.EntityFrameworkCore.Design 9.0.2 development
  • Microsoft.EntityFrameworkCore.Tools 9.0.2 development
  • EFCore.NamingConventions 9.0.0
  • Npgsql.EntityFrameworkCore.PostgreSQL 9.0.3
orm-reference-implementations/sql-alchemy/requirements.txt pypi
  • psycopg2 *
  • sqlalchemy *