besser

A Python-based low-modeling low-code platform for smart and AI-enhanced software

https://github.com/besser-pearl/besser

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 (15.4%) to scientific vocabulary

Keywords

ai class-diagrams code-generation dsl language-modeling low-code low-code-platform lowcode mde metamodel modeling ocl python state-machine uml
Last synced: 4 months ago · JSON representation ·

Repository

A Python-based low-modeling low-code platform for smart and AI-enhanced software

Basic Info
Statistics
  • Stars: 106
  • Watchers: 9
  • Forks: 20
  • Open Issues: 38
  • Releases: 29
Topics
ai class-diagrams code-generation dsl language-modeling low-code low-code-platform lowcode mde metamodel modeling ocl python state-machine uml
Created over 3 years ago · Last pushed 4 months ago
Metadata Files
Readme Contributing License Code of conduct Citation Governance

README.md

BESSER platform

Python PyPI version PyPI - Downloads Documentation Status PyPI - License LinkedIn GitHub Repo stars

BESSER is a low-modeling low-code open-source platform. BESSER (Building bEtter Smart Software fastER) is funded thanks to an FNR Pearl grant led by the Luxembourg Institute of Science and Technology with the participation of the Snt/University of Luxembourg and open to all your contributions!

The BESSER low-code platform is built on top of B-UML our Python-based personal interpretation of a "Universal Modeling Language" (yes, heavily inspired and a simplified version of the better known UML, the Unified Modeling Language). With B-UML you can specify your software application and then use any of the code-generators available to translate your model into executable code suitable for various applications, such as Django web apps or database structures compatible with SQLAlchemy.

Check out the BESSER Web Modeling Editor online BESSER Web Modeling Editor Demo

Check out the official documentation

Basic Installation

BESSER works with Python 3.10+. We recommend creating a virtual environment (e.g. venv, conda).

The latest stable version of BESSER is available in the Python Package Index (PyPi) and can be installed using

$ pip install besser

BESSER can be used with any of the popular IDEs for Python development such as VScode, PyCharm, Sublime Text, etc.

Running BESSER Locally

If you are interested in developing new code generators or designing BESSER extensions, you can download and modify the full codebase, including tests and examples.

Step 1: Clone the repository

$ git clone https://github.com/BESSER-PEARL/BESSER.git
$ cd BESSER

Step 2: Create a virtual environment

Run the setup script to create a virtual environment (if not already created), install the requirements, and configure the PYTHONPATH. This ensures compatibility with IDEs (like VSCode) that may not automatically set the PYTHONPATH for recognizing besser as an importable module.

$ python setup_environment.py

Note: Each time you start your IDE, run the setup_environment.py script to ensure the environment is properly configured.

Step 3: Run an example

To verify the setup, you can run a basic example.

$ cd tests/BUML/metamodel/structural/library
$ python library.py

Examples

If you want to try examples, check out the BESSER-examples repository!

Contributing

We encourage contributions from the community and any comment is welcome!

If you are interested in contributing to this project, please read the CONTRIBUTING.md file.

How to cite BESSER

This repository has the CITATION.cff file, which activates the "Cite this repository" button in the About section (right side of the repository). The citation is in APA and BibTex format.

Code of Conduct

At BESSER, our commitment is centered on establishing and maintaining development environments that are welcoming, inclusive, safe and free from all forms of harassment. All participants are expected to voluntarily respect and support our Code of Conduct.

Governance

The development of this project follows the governance rules described in the GOVERNANCE.md document.

Contact

You can reach us at: info@besser-pearl.org

Website: https://besser-pearl.org

License

This project is licensed under the MIT license.

Owner

  • Name: BESSER-PEARL
  • Login: BESSER-PEARL
  • Kind: organization
  • Email: jordi.cabot@list.lu
  • Location: Luxembourg

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: >-
  BESSER: A Python-based low-modeling low-code platform for
  smart software
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Iván
    family-names: Alfonso
    email: ivan.alfonso@list.lu
    affiliation: Luxembourg Institute of Science and Technology
    orcid: 'https://orcid.org/0000-0003-3940-0629'
  - given-names: Armen
    family-names: Sulejmani
    affiliation: Luxembourg Institute of Science and Technology
    email: armen.sulejmani@list.lu
    orcid: 'https://orcid.org/0009-0005-9571-8780'
  - given-names: Fitash
    family-names: Ul-Haq
    email: fitash.ulhaq@list.lu
    affiliation: Luxembourg Institute of Science and Technology
    orcid: 'https://orcid.org/0000-0003-2253-9085'
  - email: aaron.conrardy@list.lu
    given-names: Aaron
    family-names: Conrardy
    affiliation: Luxembourg Institute of Science and Technology
    orcid: 'https://orcid.org/0000-0002-3030-4529'
  - given-names: Jordi
    family-names: Cabot
    email: jordi.cabot@list.lu
    affiliation: >-
      Luxembourg Institute of Science and Technology -
      University of Luxembourg
    orcid: 'https://orcid.org/0000-0003-2418-2489'
  - given-names: Atefeh
    family-names: Nirumand
    email: atefeh.nirumand@list.lu
    orcid: 'https://orcid.org/0009-0003-7677-5013'
    affiliation: Luxembourg Institute of Science and Technology
  - given-names: Marcos
    family-names: Gomez-Vazquez
    email: marcos.gomez@list.lu
    affiliation: Luxembourg Institute of Science and Technology
    orcid: 'https://orcid.org/0000-0001-7176-0793'
  - given-names: Nadia
    family-names: Daoudi
    email: nadia.daoudi@list.lu
    affiliation: Luxembourg Institute of Science and Technology
    orcid: 'https://orcid.org/0000-0002-1437-667X'
identifiers:
  - type: doi
    value: 10.1007/978-3-031-61007-3_16
    description: The paper presenting the BESSER platform.
repository-code: 'https://github.com/BESSER-PEARL/BESSER'
url: 'https://besser.readthedocs.io/en/latest/'
abstract: >-
  BESSER (Building bEtter Smart Software fastER) is a
  low-modeling low-code open-source platform.
keywords:
  - Low-code platform
  - Model-driven engineering
  - Language modeling
  - Smart software
license: MIT
version: 1.3.1
date-released: '2024-08-22'
preferred-citation:
  type: conference-paper
  authors:
  - family-names: "Alfonso"
    given-names: "Iván"
    orcid: "https://orcid.org/0000-0003-3940-0629"
  - family-names: "Conrardy"
    given-names: "Aaron"
    orcid: 'https://orcid.org/0000-0002-3030-4529'
  - family-names: "Sulejmani"
    given-names: "Armen"
    orcid: "https://orcid.org/0009-0005-9571-8780"
  - family-names: "Nirumand"
    given-names: "Atefeh"
    orcid: "https://orcid.org/0009-0003-7677-5013"
  - family-names: "Ul-Haq"
    given-names: "Fitash"
    orcid: "https://orcid.org/0000-0003-2253-9085"
  - family-names: "Gomez-Vazquez"
    given-names: "Marcos"
    orcid: "https://orcid.org/0000-0001-7176-0793"
  - family-names: "Sottet"
    given-names: "Jean-Sébastien"
    orcid: "https://orcid.org/0000-0002-3071-6371"
  - family-names: "Cabot"
    given-names: "Jordi"
    orcid: "https://orcid.org/0000-0003-2418-2489"
  title: "Building BESSER: An Open-Source Low-Code Platform"
  conference: 
    name: "International Conference on Evaluation and Modeling Methods for Systems Analysis and Development, EMMSAD 2024, Limassol, Cyprus, June 3-4, 2024"
  start: 203 
  end: 212 
  year: 2024
  publisher:
    name: Springer
  url: "https://doi.org/10.1007/978-3-031-61007-3_16"
  doi: "10.1007/978-3-031-61007-3_16"

GitHub Events

Total
  • Create event: 52
  • Release event: 13
  • Issues event: 200
  • Watch event: 51
  • Delete event: 42
  • Issue comment event: 134
  • Push event: 509
  • Pull request review event: 18
  • Pull request review comment event: 15
  • Pull request event: 126
  • Fork event: 10
Last Year
  • Create event: 52
  • Release event: 13
  • Issues event: 200
  • Watch event: 51
  • Delete event: 42
  • Issue comment event: 134
  • Push event: 509
  • Pull request review event: 18
  • Pull request review comment event: 15
  • Pull request event: 126
  • Fork event: 10

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 135
  • Total pull requests: 114
  • Average time to close issues: about 1 month
  • Average time to close pull requests: 4 days
  • Total issue authors: 19
  • Total pull request authors: 10
  • Average comments per issue: 0.68
  • Average comments per pull request: 0.03
  • Merged pull requests: 82
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 121
  • Pull requests: 67
  • Average time to close issues: 27 days
  • Average time to close pull requests: 5 days
  • Issue authors: 18
  • Pull request authors: 9
  • Average comments per issue: 0.69
  • Average comments per pull request: 0.04
  • Merged pull requests: 49
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jcabot (35)
  • FitashUlHaq (19)
  • gp2000 (18)
  • Aran30 (9)
  • ivan-alfonso (8)
  • AtefehNirumandJazi (8)
  • mgv99 (7)
  • ArmenSl (6)
  • ademait (6)
  • EmidioStani (4)
  • maurodlt (3)
  • gwendal-jouneaux (3)
  • DerAndereJohannes (2)
  • jssottet (2)
  • dandelion-lowcode (1)
Pull Request Authors
  • ivan-alfonso (43)
  • ArmenSl (23)
  • FitashUlHaq (12)
  • Aran30 (10)
  • AtefehNirumandJazi (7)
  • mgv99 (5)
  • jcabot (5)
  • Arm-Sl (5)
  • DaoudiNadia (3)
  • StephanEggermont (1)
Top Labels
Issue Labels
bug (44) enhancement (44) web modeling editor (26) good first issue (23) documentation (20) code generator (10) OCL (6) state machine (1) django (1) duplicate (1) question (1)
Pull Request Labels
web modeling editor (1) documentation (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 519 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 29
  • Total maintainers: 1
pypi.org: besser

BESSER

  • Versions: 29
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 519 Last month
Rankings
Dependent packages count: 10.0%
Average: 38.1%
Dependent repos count: 66.1%
Maintainers (1)
Last synced: 4 months ago