@ls1intum/apollon

UML Modeling Editor written in React

https://github.com/ls1intum/apollon

Science Score: 62.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
  • Committers with academic emails
    10 of 36 committers (27.8%) from academic institutions
  • Institutional organization owner
    Organization ls1intum has institutional domain (ase.cit.tum.de)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.6%) to scientific vocabulary

Keywords

artemis modeling-exercises uml

Keywords from Contributors

research university text-exercises software-engineering programming-exercises learning interactive-learning gen-ai feedback exercises
Last synced: 6 months ago · JSON representation ·

Repository

UML Modeling Editor written in React

Basic Info
Statistics
  • Stars: 85
  • Watchers: 7
  • Forks: 32
  • Open Issues: 79
  • Releases: 71
Topics
artemis modeling-exercises uml
Created about 8 years ago · Last pushed 7 months ago
Metadata Files
Readme License Citation

README.md

Apollon

GitHub Actions Status Dependencies status DevDependencies status Documentation Status Codacy Badge Codacy Badge

Latest version)

A UML modeling editor written in React and TypeScript.

Main Features

Easy to use editor

The user interface of Apollon is simple to use. It works just like any other office and drawing tool that most users are familiar with.

  • Select the diagram type you want to draw from the Diagram Type menu. This selection determines the availability of elements that the user can use while drawing their diagram, making it easier for users who are newly introduced to modeling.
  • Adding the element is as easy as dragging it from the elements menu and dropping it to the canvas. So is drawing the connection between them, simply drag and connect two or multiple elements.
  • Edit the text of any element by double-clicking on it. An easy-to-use menu will allow you to do so.
  • Supports dark/light themes for the editor.
  • Supports two languages: German and English.
  • Supports exporting the entire diagram or just selected elements of it.

Apollon features

Flexible layout features while drawing

Apollon allows user to draw their diagram more flexibly. You can use keyboard shortcuts to copy, paste, delete and move the elements throughout the canvas. The layout of the connection is drawn automatically by the editor. However, if you want to manually layout the relationship path, use the existing waypoints feature to do so. All you have to do is to hover over the relationship, and simply drag the displayed waypoint as required. Elements of diagram can also be resized from all of its four corner.

Infinite Canvas

Apollon provides an infinite canvas. With the availability of this canvas, you will never feel you're out of space while drawing your diagram. It also provides positioning rulers (grid) which can be used as a guideline to place your elements. All the elements are snapped perfectly to the grid.

Wide range of UML diagrams

Apollon allows you to create a wide range of UML diagrams. Currently, it supports creating 11 different UML diagrams. The list of UML diagrams includes: - Class Diagram - Object Diagram - Activity Diagram - Use Case Diagram - Communication Diagram - Component Diagram - Deployment Diagram - Petri Net Diagram - Reachability Graph - Syntax Tree - Flowchart

Integrate Apollon with other software

Apollon can be integrated to any other Javascript application. It serves as the modeling editor for the widely used interactive learning platform called Artemis.
It also provides the standalone version of the editor. You can try the standalone version of Apollon completey free and without the necessity of creating any account. It is a web application that allows users to use Apollon editor directly from their browser with additional features, including but not limited to, sharing and exporting the diagram. It can be accessed via https://apollon.ase.in.tum.de.

The GitHub repository of its Standalone version is https://github.com/ls1intum/Apollon_standalone

Usage

Install the @ls1intum/apollon npm package using either yarn or npm:

sh yarn add @ls1intum/apollon

sh npm install @ls1intum/apollon

Import the ApollonEditor class, which is the default export of the npm package:

js import ApollonEditor from '@ls1intum/apollon';

Get hold of a DOM node and mount a new instance of the Apollon editor into it:

js const container = document.getElementById("..."); const editor = new ApollonEditor(container);

To unmount the editor instance, call its destroy() method:

js editor.destroy();

For a complete overview of the API, please refer to the [lib/es6/index.d.ts] file.

ESModules and CommonJs

Apollon provides both an ESModules, as well as CommonJS version to be included. They lay in lib/es6 and lib/es5 and the correct version should be resolved automatically.

Development Setup

Clone the repository and change into the Apollon directory:

git clone https://github.com/ls1intum/Apollon.git cd Apollon

Install all node dependencies:

npm install

Launch the webpack-dev-server:

npm run start

The webpack-dev-server is now listening on http://localhost:8888. If you change a TypeScript file, webpack will automatically compile the code, bundle the application, and refresh the page in your browser.

Update dependencies

npm install -g npm-check-updates npm run update

Building the Docs

To build the docs, you need pip installed. You neeed to build Apollon's type definitions before you can build the docs:

bash npm run prepare

Then install necessary dependencies for the docs:

bash npm run docs:prepare

You can now build the docs:

bash npm run docs:build

The docs will be built and put into docs/build/html.

You can also serve the docs locally:

bash npm run docs:watch

The docs will be served on localhost:8088. This script will also watch for changes in the docs and rebuild them automatically.

Owner

  • Name: TUM Applied Software Engineering
  • Login: ls1intum
  • Kind: organization
  • Location: Munich, Germany

Technical University of Munich - School of Computation, Information and Technology

Citation (CITATION.cff)

authors:
  -
    affiliation: "Technische Universität München"
    family-names: Krusche
    given-names: Stephan
cff-version: 1.2.0
license: MIT
message: "If you want to reference Apollon in your work, please cite this paper."
repository-code: "https://github.com/ls1intum/Apollon/"
title: "Apollon"
preferred-citation:
  type: conference-paper
  authors:
    -
      affiliation: "Technische Universität München"
      family-names: Krusche
      given-names: Stephan
    -
      affiliation: "Technische Universität München"
      family-names: von Frankenberg
      given-names: Nadine
    -
      affiliation: "Technische Universität München"
      family-names: Reimer
      given-names: Lara Marie
    -
      affiliation: "Technische Universität München"
      family-names: Bruegge
      given-names: Bernd            
  title: "An Interactive Learning Method to Engage Students in Modeling"
  doi: "10.1145/3377814.3381701"
  year: 2020
  conference: "42nd International Conference on Software Engineering, Software Engineering Education and Training"
  publisher: ACM
  pages: 10
  start: 12
  end: 22

GitHub Events

Total
  • Create event: 21
  • Release event: 4
  • Issues event: 37
  • Watch event: 16
  • Delete event: 16
  • Issue comment event: 14
  • Push event: 25
  • Pull request review event: 9
  • Pull request event: 32
  • Fork event: 13
Last Year
  • Create event: 21
  • Release event: 4
  • Issues event: 37
  • Watch event: 16
  • Delete event: 16
  • Issue comment event: 14
  • Push event: 25
  • Pull request review event: 9
  • Pull request event: 32
  • Fork event: 13

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 1,403
  • Total Committers: 36
  • Avg Commits per committer: 38.972
  • Development Distribution Score (DDS): 0.629
Past Year
  • Commits: 12
  • Committers: 8
  • Avg Commits per committer: 1.5
  • Development Distribution Score (DDS): 0.833
Top Committers
Name Email Commits
Julian Willand w****d@i****e 521
Tobias Priesching t****g@g****m 305
Julian Willand j****n@w****e 113
Marius Schulz m****z@m****m 86
Swornim Shrestha m****5@g****m 59
Matthias Lehner g****p@t****e 58
Stephan Krusche k****e@i****e 54
Melih Oezbeyli m****i@t****e 34
Stephan Krusche s****e@t****e 32
Mai Ton Nu Cam m****m@g****m 32
dependabot[bot] 4****] 26
Eugene Ghanizadeh g****e@g****m 18
Stephan Krusche k****e@t****e 16
Christian Femers c****s@t****e 8
Mert Yıldırır m****4@g****m 6
Merve Pınar i****t 5
Mathias Wendrich m****h@t****e 3
Martin Achenbach 6****m 3
Alexander Görtzen 4****7 2
Ege Nerse 5****e 2
Faris Demirovic 6****6 2
Felix T.J. Dietrich f****h@g****e 2
Olimbia Qirjaqi 5****3 2
Paul Schwind p****7 2
Armin 2****s 1
David Dejori 4****v 1
Jan Philip Bernius j****s@t****e 1
Nicolas Ruscher 4****r 1
Julian Willand j****i@j****0 1
NotSomeBot 4****m 1
and 6 more...
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 82
  • Total pull requests: 160
  • Average time to close issues: 5 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 41
  • Total pull request authors: 22
  • Average comments per issue: 0.46
  • Average comments per pull request: 0.59
  • Merged pull requests: 120
  • Bot issues: 9
  • Bot pull requests: 42
Past Year
  • Issues: 33
  • Pull requests: 26
  • Average time to close issues: about 1 month
  • Average time to close pull requests: about 1 month
  • Issue authors: 13
  • Pull request authors: 7
  • Average comments per issue: 0.24
  • Average comments per pull request: 0.12
  • Merged pull requests: 10
  • Bot issues: 9
  • Bot pull requests: 17
Top Authors
Issue Authors
  • egenerse (13)
  • mend-bolt-for-github[bot] (11)
  • minrows (7)
  • loreanvictor (6)
  • farisd16 (3)
  • BaumiCoder (2)
  • magaupp (2)
  • fh314 (2)
  • TobiasPr (2)
  • akesfeden (2)
  • b-fein (2)
  • Johnypier (2)
  • MSchreber (2)
  • cod-eric (1)
  • krusche (1)
Pull Request Authors
  • minrows (41)
  • dependabot[bot] (41)
  • matthiaslehnertum (29)
  • loreanvictor (28)
  • renovate[bot] (9)
  • mertyldrr (7)
  • egenerse (6)
  • FelixTJDietrich (5)
  • farisd16 (4)
  • martindevtum (3)
  • Hialus (2)
  • AlexanderG2207 (2)
  • pal03377 (2)
  • niklaskerkhoff (2)
  • ArmenSl (2)
Top Labels
Issue Labels
bug (43) Mend: dependency security vulnerability (11) enhancement (6) security (1) duplicate (1) ready for merge (1) good first issue (1) assessment (1)
Pull Request Labels
dependencies (44) ready for merge (41) javascript (22) bug (13) enhancement (10) priority:critical (2) python (2) security (1)

Packages

  • Total packages: 5
  • Total downloads:
    • npm 7,332 last-month
  • Total dependent packages: 1
    (may contain duplicates)
  • Total dependent repositories: 5
    (may contain duplicates)
  • Total versions: 278
  • Total maintainers: 5
npmjs.org: @ls1intum/apollon

A UML diagram editor.

  • Versions: 259
  • Dependent Packages: 1
  • Dependent Repositories: 5
  • Downloads: 7,173 Last month
Rankings
Downloads: 2.0%
Dependent repos count: 5.0%
Forks count: 5.2%
Stargazers count: 5.9%
Average: 7.8%
Dependent packages count: 20.9%
Maintainers (2)
Last synced: 7 months ago
npmjs.org: aaaarmen

A UML diagram editor.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 4 Last month
Rankings
Forks count: 4.4%
Stargazers count: 4.9%
Average: 17.6%
Dependent repos count: 25.1%
Dependent packages count: 36.3%
Maintainers (1)
Last synced: 7 months ago
npmjs.org: @palsch/apollon

A UML diagram editor.

  • Versions: 15
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 14 Last month
Rankings
Forks count: 5.2%
Stargazers count: 6.8%
Average: 20.0%
Dependent repos count: 20.7%
Dependent packages count: 47.2%
Maintainers (1)
Last synced: 7 months ago
npmjs.org: apollon-collab

A UML diagram editor.

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 141 Last month
Rankings
Dependent repos count: 24.2%
Average: 29.6%
Dependent packages count: 34.9%
Maintainers (1)
Last synced: 7 months ago
npmjs.org: @sqx717/apollon

A UML diagram editor.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 24.7%
Average: 30.2%
Dependent packages count: 35.6%
Last synced: 7 months ago

Dependencies

.github/workflows/build.yml actions
  • actions/cache v2 composite
  • actions/checkout v2 composite
  • actions/setup-node v1 composite
  • codacy/codacy-coverage-reporter-action master composite
.github/workflows/e2e.yml actions
  • actions/checkout v2 composite
  • cypress-io/github-action v4.1.0 composite
package.json npm
  • @babel/core 7.20.2 development
  • @storybook/addon-actions 6.5.13 development
  • @storybook/addon-essentials 6.5.13 development
  • @storybook/addon-links 6.5.13 development
  • @storybook/react 6.5.13 development
  • @stylelint/postcss-css-in-js 0.38.0 development
  • @testing-library/jest-dom 5.16.5 development
  • @testing-library/react 12.1.3 development
  • @types/chai 4.3.4 development
  • @types/jest 29.2.3 development
  • @types/react 17.0.39 development
  • @types/react-color 3.0.6 development
  • @types/react-dom 17.0.11 development
  • @types/react-redux 7.1.24 development
  • @types/redux-mock-store 1.0.3 development
  • @types/styled-components 5.1.26 development
  • @types/uuid 8.3.4 development
  • babel-loader 9.1.0 development
  • babel-plugin-const-enum 1.2.0 development
  • chai 4.3.7 development
  • circular-dependency-plugin 5.2.2 development
  • copy-webpack-plugin 11.0.0 development
  • css-loader 6.7.2 development
  • cypress 11.1.0 development
  • cypress-real-events 1.7.4 development
  • ejs-loader 0.5.0 development
  • fork-ts-checker-notifier-webpack-plugin 6.0.0 development
  • fork-ts-checker-webpack-plugin 7.2.13 development
  • html-webpack-plugin 5.5.0 development
  • husky 8.0.2 development
  • jest 29.3.1 development
  • jest-environment-jsdom 29.3.1 development
  • jest-styled-components 7.1.1 development
  • lint-staged 13.0.3 development
  • pinst 3.0.0 development
  • postcss 8.4.19 development
  • postcss-syntax 0.36.2 development
  • prettier 2.7.1 development
  • redux-mock-store 1.5.4 development
  • start-server-and-test 1.14.0 development
  • style-loader 3.3.1 development
  • stylelint 14.15.0 development
  • stylelint-config-recommended 9.0.0 development
  • stylelint-config-styled-components 0.1.1 development
  • stylelint-custom-processor-loader 0.6.0 development
  • stylelint-processor-styled-components 1.10.0 development
  • ts-jest 29.0.3 development
  • ts-loader 9.4.1 development
  • tslint 6.1.3 development
  • tslint-config-prettier 1.18.0 development
  • tslint-loader 3.5.4 development
  • tslint-react 5.0.0 development
  • typescript 4.9.3 development
  • webpack 5.75.0 development
  • webpack-cli 4.10.0 development
  • webpack-dev-server 4.11.1 development
  • webpack-merge 5.8.0 development
  • yarn 1.22.19 development
  • is-mobile 3.1.1
  • pepjs 0.5.3
  • react 17.0.2
  • react-color 2.19.3
  • react-dom 17.0.2
  • react-redux 7.2.6
  • react-tooltip 4.5.0
  • redux 4.2.0
  • redux-saga 1.2.1
  • redux-thunk 2.4.2
  • styled-components 5.3.6
  • tslib 2.4.1
  • uuid 9.0.0
yarn.lock npm
  • 1865 dependencies
docs/requirements.txt pypi
  • Sphinx ==3.0.3
  • sphinx-copybutton ==0.3.0
  • sphinx-rtd-theme ==0.4.3