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, onboarding de première visite, infobulles accessibles, aide contextuelle Maj+F1, validation intégrée, recherche globale Ctrl+Shift+F et palette Ctrl+K ;
  • navigation compacte : menu hamburger classé par catégories Projet, Concevoir, Vérifier, Produire, IA, Affichage, Paramètres et Documentation ;
  • maintenance intégrée : panneau Paramètres système affichant version, date de sortie, dernière vérification, thème et état des mises à jour, avec vérification manuelle, réinstallation forcée et contrôle automatique quotidien en arrière-plan ;
  • 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.

🧭 Aide aux nouveaux utilisateurs

Au premier lancement, MERISOR présente ses mentions légales et rappelle que l'utilisateur demeure responsable des données saisies, importées ou envoyées à un service tiers. Chaque espace possède ensuite un guide contextuel de première visite. Les champs, listes et boutons reçoivent une infobulle accessible ; les guides restent consultables avec Maj+F1 et peuvent être réinitialisés depuis le menu Documentation.

Le bouton Installer l'application explique l'installation Linux et ouvre les téléchargements publics. MERISOR étant actuellement une application de bureau Linux et non une PWA mobile, ce bouton ne prétend pas installer une version mobile inexistante.

🔄 Mises à jour sûres

Le panneau Paramètres → Paramètres système… permet de :

  • consulter la version et sa date de sortie ;
  • connaître la date et le résultat de la dernière vérification ;
  • vérifier immédiatement ou forcer la réinstallation de la dernière release ;
  • choisir le thème système, clair ou sombre ;
  • activer ou désactiver la vérification automatique quotidienne.

Les opérations réseau et téléchargements s'effectuent hors du thread graphique. Une AppImage installée par l'installateur universel peut être remplacée de façon atomique après validation SHA-256 ; un redémarrage applique alors la version. Les paquets Debian, qui relèvent de l'administrateur système, ne sont jamais remplacés silencieusement.

Le détail se trouve dans le guide utilisateur. Pour découvrir le vocabulaire et l'histoire de la modélisation, consultez le glossaire et la mini-encyclopédie entité-association. Les responsabilités liées aux données, au stockage local et aux services IA sont expliquées dans les mentions légales et règles de confidentialité, également présentées au premier lancement.

🚀 Installation rapide

Linux universel — installation dans le profil utilisateur

L'installateur détecte la dernière AppImage, vérifie sa somme SHA-256 puis crée la commande merisor et un lanceur desktop, sans utiliser sudo :

curl -fsSL https://raw.githubusercontent.com/nouhailler/merisor-downloads/main/install.sh | bash

Pour inspecter le script avant son exécution :

curl -fsSL https://raw.githubusercontent.com/nouhailler/merisor-downloads/main/install.sh -o /tmp/install-merisor.sh
less /tmp/install-merisor.sh
bash /tmp/install-merisor.sh

La désinstallation utilise le même script :

curl -fsSL https://raw.githubusercontent.com/nouhailler/merisor-downloads/main/install.sh | bash -s -- --uninstall

Les binaires et l'installateur sont publiés séparément dans le dépôt public nouhailler/merisor-downloads, afin que le dépôt de développement puisse rester privé.

AppImage

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

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.15.1

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.15.1
File Size Uploaded Provenance Actions
merisor-0.15.1.tar.gz 2.4 MB With provenance Details for merisor-0.15.1.tar.gz

Built distribution (wheel)

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

Total release size: 4.8 MB

Release files / merisor-0.15.1.tar.gz

Download URL merisor-0.15.1.tar.gz
Size 2.4 MB
Tags Source
SHA-256 checksum
How to use checksums
4dcea98c0048a6f8ca6c1052d7d743b38cec1b3a570bec9758d896aa7fd76fb8
BLAKE2b-256 checksum
How to use checksums
baef82ac700a79561ea64cc02bc21d9b87980b41274985bfe9e1c066cf4a3a64
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 2, 2026.

Transparency log

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

Download URL merisor-0.15.1-py3-none-any.whl
Size 2.4 MB
Tags Python 3
SHA-256 checksum
How to use checksums
05c020dd1784db7a1adb9c7fd2c171d1fb743992feedf3102aded48fb267dd72
BLAKE2b-256 checksum
How to use checksums
f2d27793fdd5e94403c07770630f646bc2964de1b0f2fd78be451df43ecdde0e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 2, 2026.

Transparency log

Security for merisor 0.15.1

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.15.1.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 Nov 2, 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