Ce qu'il reste à faire
Roadmap publique : ce qui est fait, en cours et à faire pour Blueprint Modular.
pip install blueprint-modular ; bpm setup puis bpm init / bpm run. IA locale : bpm.ask, bpm.chat. L’app de démo (docs, sandbox, dashboard, authentification, thème clair/sombre) est opérationnelle sur app.blueprint-modular.com. Réactivité granulaire (WebSocket/SSE) reste à faire.Fait
- Dépôt open source : transfert vers l'org Blueprint-Modular sur GitHub.
- PyPI : Trusted Publisher corrigé ; publication automatique via tag
v*(workflow GitHub Actions). - Déploiement VPS : remote corrigé ; vitrine, doc et app déployées via
deploy-vps-remote.ps1. - CLI :
bpm runetbpm initvalidés de bout en bout. Workflow utilisateur :pip install blueprint-modular→bpm setup→bpm init --name mon-app→cd mon-app→bpm run app.py. - IA locale (Ollama) :
bpm.chat(),bpm.ask(),bpm.summarize(),bpm.analyze();bpm setuppour installer Ollama et le modèle en une commande. - Design system et tokens CSS (
bpm.*), thème clair/sombre (bpm.theme) - Registry $ et @ (côté frontend React) et store réactif (reactiveStore.js)
- Package Python installable (
pyproject.toml), publication sur PyPI (version 0.1.52) - Serveur HTTP du runtime : premier chargement + interactions boutons (re-run par requête),
session_state - Catalogue de composants : côté Python, API
bpm(title, metric, table, etc.) documentée dans cette doc ; côté app (React), 94 composants rendus (Next.js) avec sandbox sur app.blueprint-modular.com/components et /docs/components. Parité Python/React en cours d'alignement. - APIs Python (title, write, button, metric, table, panel, etc.) — première vague ; à aligner avec le catalogue React
- App de démo Next.js : dashboard, sandbox (modes Par code, Par composant, Par IA — génération de code
bpm.*via Ollama), docs composants avec aperçu interactif, paramètres, modules (auth, etc.) - Authentification : page de connexion (Google, e-mail), logo, intégration dans l'app
- Wiki IA : page d’édition avec bouton « Aide IA » (mise en forme du contenu, génération d’article depuis des notes via
POST /api/wiki/generate). Module IA : contenu des articles wiki récents inclus dans le contexte pour l’assistant. - Documentation : site statique (docs.blueprint-modular.com), pages composants avec sandbox et exemples
En cours
- Enrichissement de la doc (référence API, tutoriels, exemples)
- Alignement des composants Python et du rendu runtime avec la librairie React
À faire
- Tests automatisés (runtime et app)
- WebSocket ou SSE pour réactivité granulaire (mise à jour ciblée sans re-run complet du script)
- CI/CD : tests, lint (publication PyPI déjà en place)
- Multi-langue : composant
bpm.i18npour les apps BPM (sélecteur langue sur le site retiré pour l’instant) - Modules : pages réutilisables — Wiki, IA, Veille, IBKR, Analyse de document (voir Modules)
Détail technique (référence)
1. Package Python installable
- Configuration du package — Fait.
pyproject.tomlà la racine : métadonnées, point d'entréebpm = bpm.cli:main. Installation en local :pip install -e .(avec un venv sur Linux/macOS). - Module
bpm— Fait. CLI dansbpm/cli.py, APIs composants et session state dansbpm/__init__.py. - Nom sur PyPI — Fait. Le package
blueprint-modularest publié sur PyPI ;pip install blueprint-modularfonctionne. Publication automatique via tagv*(voirPUBLISH_PYPI.md).
2. Commande bpm run
- Point d'entrée CLI — Fait. Sous-commandes
bpm run <script>etbpm init [dir]. bpm run app.py— Fait. Exécution du script, collecte des nœuds de rendu, serveur HTTP (port 8501 par défaut,--host/--port).- Serveur web — Fait. ThreadingHTTPServer qui exécute le script à chaque requête GET et renvoie une page HTML avec rendu (JS minimal côté client). Clics sur boutons → requête avec
?clicked=...→ re-run.
3. Protocole frontend / backend
- Premier chargement — Fait. Le serveur exécute
app.py, collecte les nœuds (title, write, button, metric, table, panel, etc.), renvoie une page HTML avec JSON + script de rendu (titres, texte, boutons, métriques, tableaux, panels). - Interactions (boutons) — Fait. Clic → GET
/?clicked=<key>→ mise à joursession_state→ re-run du script → nouvelle page. Pas encore de réactivité granulaire (re-run complet comme Streamlit). - WebSocket ou SSE — À faire. Pour l'instant : re-run par requête HTTP. Plus tard : WebSocket ou SSE pour pousser les mises à jour sans rechargement complet (réactivité granulaire).
4. APIs Python côté app (bpm.title, bpm.button, etc.)
- Implémentation des composants — Côté React (app de démo) : catalogue étendu (title, metric, table, badge, progress, skeleton, panel, tabs, expander, accordion, card, grid, button, toggle, theme, selectbox, input, textarea, checkbox, radiogroup, slider, numberinput, dateinput, colorpicker, chip, message, spinner, tooltip, breadcrumb, stepper, sidebar, avatar, modal, codeblock, highlight-box, etc.). Côté Python/runtime : première vague (title, write, button, metric, table, panel, etc.) ; à étendre pour aligner avec le catalogue React.
- Session state — Fait.
bpm.session_state(dict-like) pour persister entre les runs. Utilisé pour les clics boutons (_clicked_<key>). - Rerun — Partiel. Re-run déclenché par une requête (clic).
bpm.rerun()existe ; en mode HTTP actuel le re-run est déclenché par le prochain GET.
5. bpm init
- Fait. Sous-commande
bpm init [dir]qui génère un fichierapp.pyavec titre, write, metric, button.
Résumé
En place : dépôt open source (Blueprint-Modular), package sur PyPI, CLI bpm run / bpm init / bpm setup, serveur HTTP, APIs composants, session_state, IA locale (Ollama) : bpm.ask(), bpm.chat(), bpm.summarize(), bpm.analyze(). Workflow : pip install blueprint-modular → bpm setup → bpm init --name mon-app → cd mon-app → bpm run app.py.
À faire / à améliorer : WebSocket ou SSE pour réactivité granulaire ; aligner les composants Python et le rendu runtime avec le catalogue React. Le package est publié sur PyPI (voir PyPI). L’app de démo (docs, sandbox, auth, thème) est disponible sur app.blueprint-modular.com.
Voir aussi : Installation, FAQ.
Une question ? Consultez la FAQ et la roadmap ci-dessus.