biger2orm
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
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
Metadata Files
README.md
BIGER Modeling Tool
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
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 ☕️
License
The project is distributed under the MIT License. See License for more details.
Owner
- Login: borkdominik
- Kind: user
- Company: TU Wien
- Website: http://model-engineering.info/
- Twitter: borkdominik
- Repositories: 2
- Profile: https://github.com/borkdominik
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
- actions/checkout v4 composite
- actions/setup-java v4 composite
- actions/setup-node v4 composite
- actions/upload-artifact v4 composite
- 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
- dpage/pgadmin4 latest
- postgres alpine
- 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
- 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
- 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
- @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
- 431 dependencies
- @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
- 305 dependencies
- 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
- psycopg2 *
- sqlalchemy *