All labs

Labs are grouped into tracks and numbered in the order we suggest. Filter by what you have installed; the browser-only labs work on any machine, including a locked-down classroom PC.

12 labs

Modeling foundations

Draw a class diagram in the editor, then build the same model in Python.

  1. 01

    Draw your first class diagram

    A class diagram of an academic research domain in the Web Modeling Editor, checked, turned into Python classes and backed up as a JSON file.

    Time
    40 min
    Level
    Beginner
    Runs with
    Browser
  2. 02

    Model in Python with B-UML

    The research domain written with the B-UML Python API, validated, turned into a SQLite database and a Django admin app, and moved between Python and the editor.

    Time
    1 h
    Level
    Beginner
    Runs with
    Python
  3. 03

    Add behavior to your model

    The research model gains an OCL constraint, method bodies in BAL and Python and a state machine, and you watch them run in a generated FastAPI backend.

    Time
    50 min
    Level
    Intermediate
    Runs with
    Browser, Python

Build with AI

Describe what you want and let the assistant and the Spec-Driven Agent do the modeling and coding.

  1. 04

    Model by conversation with the Modeling Assistant

    A clinic appointment model with a class diagram, an OCL constraint and a state machine, built and checked entirely through the Modeling Assistant chat.

    Time
    35 min
    Level
    Beginner
    Runs with
    Browser
  2. 05

    From a description to a running app with the Spec-Driven Agent

    A generated full-stack web app for a small event-ticketing model, downloaded, run on your machine, and optionally pushed to GitHub and reopened for further changes.

    Time
    1 h
    Level
    Intermediate
    Runs with
    Browser, Docker, GitHub

Data and databases

Turn a model into SQL schemas and ORM code, then run a REST backend on top.

  1. 06

    From a class diagram to a database

    A Library class diagram turned into SQL DDL for two dialects, a SQLite database created with SQLAlchemy, and a running FastAPI backend you fill through Swagger.

    Time
    50 min
    Level
    Intermediate
    Runs with
    Browser, Python

Full applications

Combine class, GUI and agent models into a web app, then put it online.

  1. 07

    Build a full web app from three models

    A Library web application with tables, a bar chart and a chatbot, generated from a class diagram, a GUI model and an agent model, and running locally with Docker Compose.

    Time
    1 h 15 min
    Level
    Intermediate
    Runs with
    Browser, Docker
  2. 08

    Publish your app to Render, then extend it

    Your Library web app published from the editor to a new GitHub repository, deployed on Render's free tier, then extended with a Publisher concept and redeployed.

    Time
    45 min
    Level
    Intermediate
    Runs with
    Browser, GitHub

Conversational agents

Design chatbots as state machines, add LLMs and RAG, and adapt them to their users.

  1. 09

    Build agents with the BESSER Agentic Framework

    You generate a database question-answering agent from the editor without code, then write a RAG and LLM agent in Python with BAF.

    Time
    1 h 15 min
    Level
    Intermediate
    Runs with
    Browser, Python, API key
  2. 10

    Personalize an agent for its users

    You model two user profiles, adapt the Gym Agent to each of them in the editor, and generate one agent that switches behaviour per profile.

    Time
    55 min
    Level
    Intermediate
    Runs with
    Browser, Python, Docker, API key

Extend BESSER

Write your own code generator and add new concepts to the metamodel.

  1. 11

    Write your own code generator

    A working BESSER generator that turns a B-UML class model into Ruby on Rails model classes.

    Time
    1 h
    Level
    Intermediate
    Runs with
    Python
  2. 12

    Extend the B-UML metamodel and a generator

    A BESSER source checkout where Property has a new max_length concept, the SQLAlchemy generator uses it, and a pytest test proves it.

    Time
    1 h 30 min
    Level
    Advanced
    Runs with
    Python