Skip to main content

Logo MERISOR

MERISOR

Du modèle métier au script SQL, dans une application de bureau libre.

Dernière release Python 3.10+ PySide6 Qualité Python PyPI Licence MIT

MERISOR est un éditeur graphique MERISE pour Linux, destiné aux étudiants, enseignants, analystes, développeurs et architectes de données. Il permet de concevoir un MCD, contrôler sa cohérence, produire un MLD structuré et générer du SQL PostgreSQL, SQLite ou MariaDB/MySQL.

Le modèle peut aussi être proposé ou analysé avec OpenRouter, mais aucune réponse IA ne modifie le document sans validation, aperçu et confirmation.

🗺️ Du besoin métier aux livrables

flowchart TB
    DESCRIPTION["📝 Description métier"]
    AI["🤖 Assistant IA<br/>facultatif"]
    PREVIEW["👁️ Aperçu et confirmation"]
    MCD["🧩 MCD<br/>SOURCE DE VÉRITÉ"]
    VALIDATION["✅ Validation MERISE"]
    IMPACT["🔎 Analyse d'impact"]
    DOCUMENTATION["📚 Documentation"]
    MLD["🗂️ MLD structuré<br/>tables · colonnes · PK · FK"]
    DOCS["📄 Markdown · HTML · PDF"]
    SQL["🛢️ Génération SQL<br/>aperçu et export uniquement"]
    POSTGRES[(PostgreSQL)]
    SQLITE[(SQLite)]
    MYSQL[(MariaDB / MySQL)]

    DESCRIPTION -->|Conception assistée| AI
    AI --> PREVIEW
    PREVIEW -->|Import confirmé| MCD
    DESCRIPTION -->|Modélisation manuelle| MCD
    MCD --> VALIDATION
    MCD --> IMPACT
    MCD --> DOCUMENTATION
    VALIDATION -->|MCD valide| MLD
    IMPACT -.->|Provenance MCD → MLD| MLD
    DOCUMENTATION --> DOCS
    MLD --> SQL
    SQL --> POSTGRES
    SQL --> SQLITE
    SQL --> MYSQL

    classDef truth fill:#fff4cc,stroke:#a56b00,stroke-width:3px,color:#302400;
    classDef conceptual fill:#e8f1fb,stroke:#315d8a,stroke-width:2px,color:#172b3a;
    classDef output fill:#e9f7ef,stroke:#287a50,stroke-width:2px,color:#173c2b;
    classDef optional fill:#f2eafa,stroke:#7651a8,stroke-width:2px,color:#312044;
    class MCD truth;
    class VALIDATION,IMPACT,MLD conceptual;
    class DOCUMENTATION,DOCS,SQL,POSTGRES,SQLITE,MYSQL output;
    class AI,PREVIEW optional;

📸 Aperçu

Atelier UI/UX 2.0

Atelier MCD MERISOR UI/UX 2.0

Le README conserve volontairement une seule capture représentative et à jour, afin de rester rapide à parcourir et de ne pas montrer d’anciennes interfaces. Le parcours reste visible de bout en bout : Concevoir → Vérifier → Transformer → Produire. Les espaces Validation, MLD, SQL, Assistant IA et Documentation s’ouvrent dans la fenêtre principale. Consultez le rapport UI/UX 2.0 pour les autres captures à jour, les raccourcis et les décisions de conception.

✨ Fonctionnalités principales

  • MCD graphique : entités, associations, attributs complets, identifiants composés, cardinalités, réflexives, n-aires et héritages ISA ;
  • dictionnaire de données : descriptions, fiches d'attributs, définitions métier et synonymes persistés puis repris dans la documentation ;
  • canvas productif : grille, guides, alignement, sélection multiple, copier/coller, domaines, minimap, recherche et disposition automatique ;
  • interface guidée : accueil, workflow permanent, thèmes clair/sombre, validation intégrée, recherche globale Ctrl+Shift+F et palette Ctrl+K ;
  • contrôles : validation MERISE, qualité séparée en erreurs, risques et suggestions, score heuristique explicable, normalisation 1NF/2NF/3NF, scénarios métier fonctionnels, mode étudiant avec barème explicable, comparaison de versions et mode Et si… ? avant suppression avec confirmation explicite ;
  • MLD explicable et traçable : origine MCD, règle de transformation, conséquence MLD et extrait SQL accessibles avec ⓘ Pourquoi ? ;
  • SQL multi-dialecte : PostgreSQL, SQLite, MariaDB/MySQL, aperçu et export ;
  • imports : JSON V1/V2, DDL et schémas statiques PWA/IndexedDB, avec une archive de démonstration prête à tester ;
  • exports : PNG, SVG, PDF, Mermaid, Graphviz, documentation Markdown/HTML/PDF, données de test et requêtes SQL simples ;
  • IA facultative : assistant de modélisation guidé, génération et réparation avec validation locale, normalisation prudente des réponses et confirmation humaine ;
  • historique : opérations importantes annulables avec Annuler/Rétablir.

Le logo MERISOR est utilisé de manière cohérente dans la fenêtre principale, le lanceur desktop, les paquets et cette page.

Le détail se trouve dans le guide utilisateur.

🚀 Installation rapide

AppImage

Téléchargez l'AppImage depuis la dernière release :

chmod +x MERISOR-*.AppImage
./MERISOR-*.AppImage

Debian / Ubuntu

sudo apt install ./merisor_*_amd64.deb

PyPI avec pipx

pipx install merisor
merisor

Avec le trousseau sécurisé OpenRouter :

pipx install "merisor[ai]"

Depuis les sources

git clone https://github.com/nouhailler/merisor.git
cd merisor
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[test,ai]"
python -m merisor

Voir la documentation d'installation développeur.

🖱️ Premier modèle

  1. Créez une entité et ses attributs.
  2. Marquez au moins un attribut comme identifiant.
  3. Créez une association et reliez-la aux entités.
  4. Définissez (0,1), (0,N), (1,1) ou (1,N).
  5. Validez le MCD.
  6. Générez le MLD et utilisez ⓘ Pourquoi ?.
  7. Générez puis exportez le SQL du dialecte choisi.

Le tutoriel détaillé est disponible dans Prise en main. Vous pouvez également ouvrir l'exemple MotoGP ou tester le reverse-engineering avec la PWA IndexedDB de démonstration.

🧱 Architecture simplifiée

MCDModel ──> McdToMldTransformer ──> MLDModel ──> SQLGenerator
   │                                      │             │
   └── JSON + validation                  └── vues       └── dialectes

Le domaine métier ne dépend pas de Qt. Les mutations passent par le contrôleur et les commandes annulables. Consultez Architecture et les ADR.

📚 Documentation

Dans l'application, ouvrez Documentation → Documentation du projet pour la vue transversale, ou appuyez sur F1 pour le portail complet. Le manuel Markdown est inclus dans les paquets et reste également consultable sur GitHub.

⚠️ Limites principales

  • pas de connexion, migration ou exécution automatique sur une base active ;
  • le reverse engineering DDL ne retrouve pas toutes les intentions MERISE ;
  • héritage multiple et cycles ISA refusés ;
  • les stratégies ISA aplaties refusent une association portée par une table supprimée ; utilisez JOINED ;
  • une association 1:1 porteuse d'attributs doit être matérialisée ;
  • les contrôles de normalisation dépendent des règles métier déclarées ;
  • les fonctions IA dépendent des quotas OpenRouter et peuvent se tromper.

La liste expliquée est maintenue dans la FAQ et les guides conceptuels.

🤝 Contribuer

Les contributions sont bienvenues. Avant une pull request :

ruff format --check .
ruff check .
mypy
QT_QPA_PLATFORM=offscreen pytest

La CI exécute en plus les scripts générés sur de véritables moteurs temporaires SQLite, PostgreSQL 16 et MariaDB 11. Elle vérifie les tables, PK/FK, insertions valides et le rejet des références inexistantes. Consultez le guide des tests.

Lisez CONTRIBUTING.md et ouvrez une issue pour discuter d'une évolution importante.

📄 Licence

MERISOR est distribué sous licence MIT.


Conçu pour rendre MERISE accessible sans sacrifier la structure du modèle.

Metadata

Release files for merisor 0.12.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for merisor 0.12.0
File Size Uploaded Provenance Actions
merisor-0.12.0.tar.gz 1.9 MB With provenance Details for merisor-0.12.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for merisor 0.12.0
File Interpreter ABI Platform Actions
merisor-0.12.0-py3-none-any.whl Python 3 none any Details for merisor-0.12.0-py3-none-any.whl

Total release size: 3.9 MB

Release files / merisor-0.12.0.tar.gz

Download URL merisor-0.12.0.tar.gz
Size 1.9 MB
Tags Source
SHA-256 checksum
How to use checksums
21b7f2502aec88d82b513c3e1904424219607e4584b2eab2157124b7b8557dcb
BLAKE2b-256 checksum
How to use checksums
11f5955d5fc723f79e1ce10266ee691642352a7f745edf536f5e58c09dfebf57
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.

Transparency log

Release files / merisor-0.12.0-py3-none-any.whl

Download URL merisor-0.12.0-py3-none-any.whl
Size 2.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
62219f0316b929d2878f6525546fa4af3b2bd3fbad82a0f12c6ab3dfb46e3c5c
BLAKE2b-256 checksum
How to use checksums
680dad87fbcc0c5b0d00cb99f4238fdae18e3b4d12356f180f5b864f35598212
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.

Transparency log

Security for merisor 0.12.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for merisor-0.12.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page