docs: ROADMAP restructuré pour focus MVP + stratégie de branches Gitea
- ROADMAP.md: réorganisé avec priorités claires (v4.0.0=complété, v4.0.1=onboarding PRIO MAX) - Ajout BRANCHING.md: convention main/develop/feat/*, workflow complet - Branche develop créée et poussée sur Gitea - Sections Parité Notion réparties en v4.1–v4.10 ordonnées par priorité - Résumé des phases mis à jour
This commit is contained in:
+108
@@ -0,0 +1,108 @@
|
|||||||
|
# Stratégie de branches — FlowDeck
|
||||||
|
|
||||||
|
## Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
main ──●────────────●────── production (tags vX.Y.Z)
|
||||||
|
\ /
|
||||||
|
develop ●──●──●──●────── intégration continue
|
||||||
|
\ \ \
|
||||||
|
feat/xxx ● ● ●──── feature branches
|
||||||
|
fix/xxx ●─────────── hotfix branches
|
||||||
|
```
|
||||||
|
|
||||||
|
## Branches
|
||||||
|
|
||||||
|
| Branche | Rôle | Déploiement | Protection |
|
||||||
|
|---------|------|-------------|------------|
|
||||||
|
| `main` | Production | Docker auto sur :8080 | Push direct interdit, PR only |
|
||||||
|
| `develop` | Intégration | Staging (optionnel) | Push direct interdit, PR only |
|
||||||
|
| `feat/<nom>` | Nouvelle feature | Aucun | Libre |
|
||||||
|
| `fix/<nom>` | Correctif urgent | Aucun | Libre |
|
||||||
|
|
||||||
|
## Workflow quotidien
|
||||||
|
|
||||||
|
### 1. Démarrer une feature
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git checkout develop
|
||||||
|
git pull origin develop
|
||||||
|
git checkout -b feat/ma-feature
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Travailler
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Coder, commit souvent
|
||||||
|
git add -A
|
||||||
|
git commit -m "feat: description claire de ce qui est fait"
|
||||||
|
git push origin feat/ma-feature
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Créer une Pull Request
|
||||||
|
|
||||||
|
Aller sur https://git.dracodev.net/bruno/flowdeck/pulls
|
||||||
|
- **Base** : `develop`
|
||||||
|
- **Head** : `feat/ma-feature`
|
||||||
|
- Titre : descriptif
|
||||||
|
- Assigner un reviewer si applicable
|
||||||
|
|
||||||
|
### 4. Après merge
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git checkout develop
|
||||||
|
git pull origin develop
|
||||||
|
git branch -d feat/ma-feature # supprimer la branche locale
|
||||||
|
```
|
||||||
|
|
||||||
|
## Release (develop → main)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. S'assurer que develop est prêt
|
||||||
|
git checkout develop
|
||||||
|
git pull origin develop
|
||||||
|
|
||||||
|
# 2. Créer une PR develop → main sur Gitea
|
||||||
|
# (ou merger localement si admin)
|
||||||
|
git checkout main
|
||||||
|
git merge develop
|
||||||
|
git tag v4.0.1
|
||||||
|
git push origin main --tags
|
||||||
|
```
|
||||||
|
|
||||||
|
## Hotfix urgent
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git checkout main
|
||||||
|
git checkout -b fix/urgence
|
||||||
|
# ... corriger ...
|
||||||
|
git commit -m "fix: description"
|
||||||
|
git push origin fix/urgence
|
||||||
|
# PR fix/urgence → main
|
||||||
|
# PUIS merger main → develop pour synchroniser
|
||||||
|
git checkout develop
|
||||||
|
git merge main
|
||||||
|
git push origin develop
|
||||||
|
```
|
||||||
|
|
||||||
|
## Conventions de commits
|
||||||
|
|
||||||
|
| Préfixe | Usage | Exemple |
|
||||||
|
|---------|-------|---------|
|
||||||
|
| `feat:` | Nouvelle fonctionnalité | `feat: landing page for visitors` |
|
||||||
|
| `fix:` | Correction de bug | `fix: redirect loop on /` |
|
||||||
|
| `refactor:` | Restructuration sans changement fonctionnel | `refactor: extract sidebar_data` |
|
||||||
|
| `test:` | Ajout/modification de tests | `test: onboarding flow e2e` |
|
||||||
|
| `docs:` | Documentation | `docs: update ROADMAP.md` |
|
||||||
|
| `style:` | Formatage, CSS | `style: mobile sidebar fixes` |
|
||||||
|
| `chore:` | Tâches de maintenance | `chore: bump version to 4.0.1` |
|
||||||
|
|
||||||
|
## Règles
|
||||||
|
|
||||||
|
1. **Jamais de push direct sur `main`** — toujours via PR depuis `develop` ou `fix/*`
|
||||||
|
2. **Jamais de push direct sur `develop`** — toujours via PR depuis `feat/*` ou `fix/*`
|
||||||
|
3. **Une branche = une feature / un fix** — éviter les branches fourre-tout
|
||||||
|
4. **Tests passent avant merge** — CI Gitea Actions doit être verte
|
||||||
|
5. **Commit + push après chaque modification significative**
|
||||||
|
6. **Nom de branche en kebab-case** : `feat/landing-page`, `fix/login-redirect`
|
||||||
|
7. **Supprimer la branche après merge** (sauf `main` et `develop`)
|
||||||
+133
-179
@@ -1,7 +1,40 @@
|
|||||||
# Roadmap FlowDeck — Notion Clone
|
# Roadmap FlowDeck — Notion Clone
|
||||||
|
|
||||||
> **Vision**: Copie conforme de l'UI/UX Notion, intégrée à Gitea.
|
> **Vision**: Copie conforme de l'UI/UX Notion, intégrée à Gitea/GitHub.
|
||||||
> **19 images de référence** dans `images/` — analysées le 2026-07-08.
|
> **MVP en production** : v4.0.0 — authentification locale/OAuth, pages blocs, sidebar, library, share/publish, intégrations.
|
||||||
|
> **Branche principale** : `main` (production) · `develop` (intégration) · `feat/*` (features).
|
||||||
|
|
||||||
|
## 🏗️ Stratégie de branches
|
||||||
|
|
||||||
|
```
|
||||||
|
main ──●────────────●────── production (tags vX.Y.Z)
|
||||||
|
\ /
|
||||||
|
develop ●──●──●──●────── intégration continue
|
||||||
|
\ \ \
|
||||||
|
feat/xxx ● ● ●──── feature branches
|
||||||
|
```
|
||||||
|
|
||||||
|
- **`main`** : code en production, déploiement Docker automatique
|
||||||
|
- **`develop`** : branche d'intégration, merges des `feat/*`
|
||||||
|
- **`feat/<nom>`** : une branche par feature/fix, PR → code review → merge dans `develop`
|
||||||
|
- **Tags** `vX.Y.Z` sur `main` pour chaque release
|
||||||
|
|
||||||
|
**Workflow** :
|
||||||
|
```bash
|
||||||
|
git checkout -b feat/mon-truc develop
|
||||||
|
# ... coder, commit, push ...
|
||||||
|
# Créer une PR feat/mon-truc → develop sur Gitea
|
||||||
|
# Après review + CI verte → merge
|
||||||
|
# Pour release: PR develop → main + tag vX.Y.Z
|
||||||
|
```
|
||||||
|
|
||||||
|
**Règles** :
|
||||||
|
- Ne jamais commiter directement sur `main`
|
||||||
|
- Une branche = une feature / un fix
|
||||||
|
- Tests passent avant merge (CI Gitea Actions)
|
||||||
|
- Commit + push après chaque modification significative
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Completed
|
## Completed
|
||||||
|
|
||||||
@@ -54,13 +87,13 @@ Propriétés custom, AI keywords, sync API, 12 tables DB
|
|||||||
- [x] Heading 4 support
|
- [x] Heading 4 support
|
||||||
- [x] Breadcrumbs contextuels (workspace > projet > page)
|
- [x] Breadcrumbs contextuels (workspace > projet > page)
|
||||||
|
|
||||||
### v1.3.0 ✅ — Database Concept (Bloc 1 du gap analysis)
|
### v1.3.0 ✅ — Database Concept
|
||||||
- [x] Tables `collections`, `collection_pages`, `collection_views`
|
- [x] Tables `collections`, `collection_pages`, `collection_views`
|
||||||
- [x] Rétrocompatibilité Gitea via `GiteaBoardCompat`
|
- [x] Rétrocompatibilité Gitea via `GiteaBoardCompat`
|
||||||
- [x] Router `/db` — API CRUD collections + pages (12 endpoints)
|
- [x] Router `/db` — API CRUD collections + pages (12 endpoints)
|
||||||
- [x] 34/34 tests passent
|
- [x] 34/34 tests passent
|
||||||
|
|
||||||
### v1.4.0 ✅ — Propriétés Avancées (Bloc 2)
|
### v1.4.0 ✅ — Propriétés Avancées
|
||||||
- [x] Table `collection_properties` — 21 types Notion
|
- [x] Table `collection_properties` — 21 types Notion
|
||||||
- [x] Service `property_types.py` — validation, formatage, auto-values
|
- [x] Service `property_types.py` — validation, formatage, auto-values
|
||||||
- [x] 38/38 tests passent
|
- [x] 38/38 tests passent
|
||||||
@@ -72,7 +105,7 @@ Propriétés custom, AI keywords, sync API, 12 tables DB
|
|||||||
- [x] Formula engine + Rollup engine
|
- [x] Formula engine + Rollup engine
|
||||||
- [x] 43/43 tests passent
|
- [x] 43/43 tests passent
|
||||||
|
|
||||||
### v1.6.0 ✅ — Vues Manquantes (Bloc 3)
|
### v1.6.0 ✅ — Vues Manquantes
|
||||||
- [x] Calendar, Gallery, List, Timeline, Table views
|
- [x] Calendar, Gallery, List, Timeline, Table views
|
||||||
- [x] View tabs navigation
|
- [x] View tabs navigation
|
||||||
- [x] 49/49 tests passent
|
- [x] 49/49 tests passent
|
||||||
@@ -84,12 +117,12 @@ Propriétés custom, AI keywords, sync API, 12 tables DB
|
|||||||
- [x] Status aggregate, Dependencies (blocking constraint)
|
- [x] Status aggregate, Dependencies (blocking constraint)
|
||||||
- [x] 56/56 tests passent
|
- [x] 56/56 tests passent
|
||||||
|
|
||||||
### v1.9.0 ✅ — My Tasks & Dashboard Unifié (Bloc 5)
|
### v1.9.0 ✅ — My Tasks & Dashboard Unifié
|
||||||
- [x] Vue `/my-tasks` — agrège pages assignées à l'utilisateur
|
- [x] Vue `/my-tasks` — agrège pages assignées à l'utilisateur
|
||||||
- [x] Groupement par collection, filtres globaux
|
- [x] Groupement par collection, filtres globaux
|
||||||
- [x] 60/60 tests passent
|
- [x] 60/60 tests passent
|
||||||
|
|
||||||
### v2.0.0 ✅ — Éditeur Complet & Multi-Utilisateurs (Blocs 6-7)
|
### v2.0.0 ✅ — Éditeur Complet & Multi-Utilisateurs
|
||||||
- [x] Workspaces, Comments, Page History, Favorites
|
- [x] Workspaces, Comments, Page History, Favorites
|
||||||
- [x] Database Templates, Page Templates, CSV Import/Export
|
- [x] Database Templates, Page Templates, CSV Import/Export
|
||||||
- [x] Public Sharing
|
- [x] Public Sharing
|
||||||
@@ -104,232 +137,153 @@ Propriétés custom, AI keywords, sync API, 12 tables DB
|
|||||||
### v2.7.0 ✅ — Intégration Gitea Phase 1
|
### v2.7.0 ✅ — Intégration Gitea Phase 1
|
||||||
### v2.7.1 ✅ — Private Pages Gitea
|
### v2.7.1 ✅ — Private Pages Gitea
|
||||||
|
|
||||||
### v2.8.0 ✅ — Gitea Phase 2 (2026-07-14)
|
### v2.8.0 ✅ — Gitea Phase 2
|
||||||
- [x] Créer fichiers dans le repo (New file UI + API PUT)
|
- [x] Créer fichiers dans le repo (New file UI + API PUT)
|
||||||
- [x] Upload fichiers binaires (POST /upload, drag-drop)
|
- [x] Upload fichiers binaires (POST /upload, drag-drop)
|
||||||
- [x] Syntax highlighting via Prism.js CDN
|
- [x] Syntax highlighting via Prism.js CDN
|
||||||
- [x] Labels Gitea → tags FlowDeck (POST /sync-labels, 16 labels importés)
|
- [x] Labels Gitea → tags FlowDeck (POST /sync-labels, 16 labels importés)
|
||||||
- [x] Historique commits par fichier (GET /commits?path=)
|
- [x] Historique commits par fichier (GET /commits?path=)
|
||||||
|
|
||||||
### v2.9.0 ✅ — GitHub OAuth Provider (2026-07-14)
|
### v2.9.0 ✅ — GitHub OAuth Provider
|
||||||
- [x] GitHubProvider dans `app/auth/providers.py`
|
- [x] GitHubProvider dans `app/auth/providers.py`
|
||||||
- [x] GitHubAdapter dans `app/services/github_adapter.py`
|
- [x] GitHubAdapter dans `app/services/github_adapter.py`
|
||||||
- [x] Config GitHub dans `.env.example` (GITHUB_OAUTH_CLIENT_ID/SECRET)
|
- [x] Config GitHub dans `.env.example`
|
||||||
|
|
||||||
### v3.0.0 ✅ — UX Professionnelle (2026-07-14)
|
### v3.0.0 ✅ — UX Professionnelle
|
||||||
- [x] Multi-sélection (checkboxes + Shift/Ctrl-click dans le sidebar)
|
- [x] Multi-sélection (checkboxes + Shift/Ctrl-click dans le sidebar)
|
||||||
- [x] Raccourcis clavier (Ctrl+N, F2, Delete, Escape, Ctrl+S)
|
- [x] Raccourcis clavier (Ctrl+N, F2, Delete, Escape, Ctrl+S)
|
||||||
- [x] Inline rename (double-clic → champ inline)
|
- [x] Inline rename (double-clic → champ inline)
|
||||||
- [x] Loading skeletons (animations pulse dans workspaces + file viewer
|
- [x] Loading skeletons (animations pulse dans workspaces + file viewer)
|
||||||
- [x] Grid/card view (mode grille/vignettes)
|
- [x] Grid/card view (mode grille/vignettes)
|
||||||
- [x] Table sorting (tri par colonnes)
|
- [x] Table sorting (tri par colonnes)
|
||||||
- [x] Sélecteur de vue: Tree, List, Details, Title, Content (5 modes)
|
- [x] Sélecteur de vue: Tree, List, Details, Title, Content (5 modes)
|
||||||
- [x] Preview Panel latéral (contenu, métadonnées, tags, actions)
|
- [x] Preview Panel latéral (contenu, métadonnées, tags, actions)
|
||||||
- [x] Tri par date (Oldest/Newest)
|
- [x] Tri par date (Oldest/Newest)
|
||||||
|
|
||||||
### v2.4.0 ✅ — Tags Personnalisés par Utilisateur (2026-07-13)
|
### v4.0.0 ✅ — Accounts, Integrations & Sharing (MVP)
|
||||||
- [x] Tags isolés par `user_id` — chaque utilisateur voit ses propres tags
|
- [x] `auth_method` sur users (local/gitea/github)
|
||||||
- [x] `UNIQUE(name, user_id)`, migration des tags existants
|
- [x] Badge OAuth dans sidebar
|
||||||
- [x] API filtrage transparent (session cookie)
|
- [x] Settings page avec Connect/Disconnect Gitea + GitHub
|
||||||
|
- [x] Sidebar rules (Private = distant seulement, Trash local-only)
|
||||||
### v2.5.0 ✅ — Administration Avancée (2026-07-13)
|
- [x] Library page avec tabs + filtres source (All/Local/Gitea/GitHub)
|
||||||
- [x] Premier compte créé = admin automatique
|
- [x] Modale Share (2 tabs: Share + Publish)
|
||||||
- [x] Panneau Admin dans Settings (Users & Roles, Audit)
|
- [x] Page publique `/p/<slug>` (no auth, rendu HTML)
|
||||||
- [x] Table `login_history` (IP, user_agent, timestamp)
|
- [x] Table `page_shares`, colonnes `is_published`, `is_shared`, `share_mode`
|
||||||
- [x] CRUD utilisateurs (créer, modifier rôle/password, supprimer)
|
- [x] Table `recents` — tracking automatique
|
||||||
- [x] Statistiques par utilisateur (workspaces, pages, utilisation)
|
- [x] Édition unifiée local/distant (même UI, bouton Commit pour Gitea)
|
||||||
- [x] CSRF fix sur les appels admin
|
- [x] 133 tests passent
|
||||||
|
|
||||||
### v2.6.0 ✅ — My Account & Auth Locale (2026-07-13)
|
|
||||||
- [x] Section My Account: modifier username, nom, email, mot de passe
|
|
||||||
- [x] Toggle voir/cacher mot de passe (oeil/barré)
|
|
||||||
- [x] Label "Email or username" dans login
|
|
||||||
- [x] Refresh cookie session après modification compte
|
|
||||||
- [x] Register avec Gitea (OAuth crée compte + active intégration)
|
|
||||||
|
|
||||||
### v2.7.0 ✅ — Intégration Gitea Phase 1 (2026-07-13)
|
|
||||||
- [x] **OAuth2 Provider** — Gitea comme fournisseur OAuth2 (Client ID/Secret dans `.env`)
|
|
||||||
- [x] **Redirect URI dynamique** — basé sur le header `Host` (localhost + IP réseau)
|
|
||||||
- [x] **Workspace listing** — 2 sections: My Workspaces + Gitea Projects
|
|
||||||
- [x] **Tabs par organisation** — All | user | org1 | org2 avec compteurs
|
|
||||||
- [x] **Barre de recherche** — filtrage live par nom/description
|
|
||||||
- [x] **Lazy tree** — arborescence chargée un dossier à la fois
|
|
||||||
- [x] **File viewer** — lecture fichiers Gitea (décodé base64)
|
|
||||||
- [x] **Éditeur + commit** — modifier et commiter dans Gitea
|
|
||||||
- [x] **Delete fichier** — suppression avec confirmation + commit
|
|
||||||
- [x] **Arborescence dans le sidebar** — comme un workspace local
|
|
||||||
- [x] **Settings › Integrations** — connecter/déconnecter Gitea
|
|
||||||
- [x] **Fallback token admin** — GET sans token utilisateur (read-only)
|
|
||||||
- [x] **Write ops** — exigent token OAuth utilisateur (commit, delete)
|
|
||||||
- [x] **Limit=100** — tous les repos visibles (pas de pagination tronquée)
|
|
||||||
|
|
||||||
### v2.7.1 ✅ — Private Pages Gitea (2026-07-13)
|
|
||||||
- [x] Table `gitea_private_pages` — liée par (user_id, owner, repo)
|
|
||||||
- [x] API CRUD: GET/POST/PUT/DELETE private-pages
|
|
||||||
- [x] UI dans le workspace Gitea: liste + éditeur titre/contenu
|
|
||||||
- [x] Lien Private Pages dans le sidebar
|
|
||||||
- [x] Persistant entre sessions — survit au changement de workspace
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## v4.0.0 — Accounts, Integrations & Sidebar (priorité haute) ✅ COMPLETED
|
## 🔜 Prochaines versions
|
||||||
|
|
||||||
> **Rappel** : Section 6.5 de ARCHITECTURE.md documente le design complet.
|
### v4.0.1 — Onboarding & Polish 🎯 (priorité MAX)
|
||||||
> **Complété** : 2026-07-14 (v2.7.1–v3.0.0) + route publique 2026-07-18.
|
> **Objectif** : rendre l'app utilisable dès la première visite, sans friction.
|
||||||
|
|
||||||
### 4.0 Account Model ✅
|
- [ ] **Landing page `/` pour visiteurs non-auth** — page d'accueil (pas de redirect loop)
|
||||||
- [x] **`auth_method`** — colonne `users.auth_method ∈ {local, gitea, github}`
|
- [ ] **Page `/auth/register` GET** — formulaire d'inscription dédié (pas juste un tab)
|
||||||
- [x] **Auto-détection** — migrer les comptes existants (gitea_token → gitea, sinon local)
|
- [ ] **Redirection `/` intelligente** — si pas connecté → login, si connecté sans Gitea → local workspace
|
||||||
- [x] **Badge OAuth** — 🦎/🐙 dans sidebar SI `auth_method` = provider
|
- [ ] **Empty states cohérents** — onboarding dans le local workspace vide
|
||||||
- [x] **Pas de badge** — un compte local avec intégration ne montre PAS de badge
|
- [ ] **Page 404 stylisée** — thème Notion sombre (actuellement HTML brut)
|
||||||
|
- [ ] **Unifier les routes API** — `/board/api/pages` ↔ `/api/pages` (cohérence)
|
||||||
|
- [ ] **Page Settings accessible** → lien dans le menu utilisateur déjà présent, vérifier fonctionnel
|
||||||
|
|
||||||
### 4.0a Intégrations & Déconnexion ✅
|
**Effort estimé** : 2-3 sessions | **Impact** : 🔴 Critique pour adoption
|
||||||
- [x] **Settings page** — montre toutes les intégrations avec bouton Connect/Disconnect
|
|
||||||
- [x] **Matrice déconnexion** : local→déco ok · gitea→déco github ok · github→déco gitea ok
|
|
||||||
- [x] **Provider principal** — pas de bouton Disconnect sur auth_method
|
|
||||||
- [x] **Compte local** — peut connecter Gitea + GitHub simultanément
|
|
||||||
|
|
||||||
### 4.0b Sidebar — règles par type de compte ✅
|
### v4.0.2 — Qualité & Robustesse
|
||||||
- [x] **Private visible** UNIQUEMENT si workspace actif est distant (Gitea/GitHub)
|
> **Objectif** : zéro crash, zéro regression, DX impeccable.
|
||||||
- [x] **Private caché** pour Scénario A (local pur)
|
|
||||||
- [x] **Trash local-only** — caché pour compte OAuth pur, restreint au contenu local
|
|
||||||
- [x] **Boutons → Library** sur chaque section (recents, favorites, shared, published…)
|
|
||||||
|
|
||||||
### 4.0c Share & Publish ✅
|
- [ ] **Gestion d'erreurs** — try/catch manquants, messages user-friendly
|
||||||
- [x] **Modale Share** — 2 tabs (Share + Publish) fonctionnels
|
- [ ] **Validation inputs** — formulaires login/register, titre de page vide
|
||||||
- [x] **Share tab** — inviter email/user, général access lien
|
- [ ] **Rate limiting effectif** — tester + ajuster les seuils
|
||||||
- [x] **Publish tab** — activer/désactiver, slug généré
|
- [ ] **Session expiry UX** — message clair au lieu de redirect silencieux
|
||||||
- [x] **Page publique** — `/p/<slug>` sert le contenu publié (no auth)
|
- [ ] **CSRF token refresh** — après expiration session
|
||||||
- [x] **Tables DB** — `page_shares`, colonnes `is_published`, `is_shared`, `share_mode`
|
- [ ] **Mobile responsive** — sidebar, editor, modals sur petit écran
|
||||||
|
- [ ] **Tests de non-régression** — scénarios critiques (login, create page, publish)
|
||||||
|
|
||||||
### 4.0d Library ✅
|
**Effort estimé** : 2-3 sessions | **Impact** : 🟡 Élevé
|
||||||
- [x] **Page `/library?tab=`** — tabs Recents, Favorites, Shared, Published, Private, Workspace
|
|
||||||
- [x] **Filtres source** — All | Local | Gitea | GitHub
|
|
||||||
- [x] **Table `recents`** — tracking automatique des documents consultés
|
|
||||||
|
|
||||||
### 4.0e Édition unifiée ✅
|
|
||||||
- [x] **Même UI** pour fichiers locaux ET distants
|
|
||||||
- [x] **Bouton Commit** — visible uniquement pour fichiers distants
|
|
||||||
- [x] **Champ message** — pour les commits Gitea/GitHub
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## v4.0.0 — Parité Notion (Delta Analysis)
|
### v4.1.0 — Content Blocks enrichis (Notion Parity Tier 2)
|
||||||
|
> **Objectif** : parité d'édition avec Notion.
|
||||||
|
|
||||||
> **Méthodologie**: Comparaison exhaustive de FlowDeck v3.0.1 vs Notion (2025) — 60+ fonctionnalités analysées, 45 manquantes identifiées, 30 retenues pour v4.0.0.
|
|
||||||
|
|
||||||
### 🟢 Tier 1 — Critique (16 features)
|
|
||||||
|
|
||||||
#### 4.1 AI Assistant
|
|
||||||
- [ ] **Notion AI-style** — intégration LLM locale/nuage pour: écriture, résumé, traduction, brainstorming
|
|
||||||
- [ ] **Auto-complétion** — suggestions de contenu pendant la frappe
|
|
||||||
- [ ] **AI properties** — auto-remplissage de propriétés (résumé auto, catégorisation)
|
|
||||||
- [ ] **Slash AI commands** — `/ai write`, `/ai summarize`, `/ai translate`
|
|
||||||
|
|
||||||
#### 4.2 Embeds & Rich Media
|
|
||||||
- [ ] **60+ embeds** — YouTube, Figma, Google Maps, Loom, Twitter, CodePen, Miro, etc.
|
|
||||||
- [ ] **Image lightbox** — clic pour agrandir, navigation entre images
|
|
||||||
- [ ] **Inline file previews** — PDF, vidéo, audio directement dans la page
|
|
||||||
- [ ] **Bookmark cards** — aperçu riche des liens (OG metadata)
|
|
||||||
|
|
||||||
#### 4.3 Export & Import
|
|
||||||
- [ ] **Export PDF** — mise en page fidèle, table des matières
|
|
||||||
- [ ] **Export Markdown** — avec images et sous-pages
|
|
||||||
- [ ] **Export HTML** — site statique
|
|
||||||
- [ ] **Import Confluence/Evernote/Asana** — migration depuis autres outils
|
|
||||||
|
|
||||||
### 🟡 Tier 2 — Important (8 features)
|
|
||||||
|
|
||||||
#### 4.4 Collaboration & Notifications
|
|
||||||
- [ ] **Realtime editing** — WebSocket, curseurs multi-utilisateurs
|
|
||||||
- [ ] **Inline comments** — commentaires sur sélection de texte
|
|
||||||
- [ ] **@mentions** — notifier un utilisateur → page/commentaire
|
|
||||||
- [ ] **Email notifications** — changements, mentions, rappels
|
|
||||||
|
|
||||||
#### 4.5 Content Blocks
|
|
||||||
- [ ] **Callout blocks** — boîtes colorées (info, warning, tip, success)
|
- [ ] **Callout blocks** — boîtes colorées (info, warning, tip, success)
|
||||||
- [ ] **Table of contents** — auto-généré depuis les headings
|
- [ ] **Table of contents** — auto-généré depuis les headings
|
||||||
- [ ] **Math equations** — LaTeX / KaTeX inline + block
|
- [ ] **Math equations** — LaTeX / KaTeX inline + block
|
||||||
- [ ] **Toggle lists** — contenu expandable/collapsible
|
- [ ] **Toggle lists** — contenu expandable/collapsible (déjà partiel)
|
||||||
|
- [ ] **Multi-colonnes** — layout flexible (2, 3 colonnes)
|
||||||
|
|
||||||
### 🟠 Tier 3 — Avancé (6 features)
|
### v4.2.0 — Export
|
||||||
|
- [ ] **Export Markdown** — avec images et sous-pages (déjà partiel dans editor)
|
||||||
|
- [ ] **Export PDF** — mise en page fidèle, table des matières
|
||||||
|
- [ ] **Export HTML** — site statique standalone
|
||||||
|
|
||||||
#### 4.6 Views & Layout
|
### v4.3.0 — Collaboration
|
||||||
- [ ] **Linked databases** — vue d'une DB dans plusieurs pages
|
- [ ] **Inline comments** — commentaires sur sélection de texte
|
||||||
- [ ] **Charts & dashboards** — graphiques depuis données DB (bar, line, donut)
|
- [ ] **@mentions** — notifier un utilisateur → page/commentaire
|
||||||
- [ ] **Multi-colonnes** — layout flexible (2, 3, 4 colonnes)
|
- [ ] **Email notifications** — changements, mentions
|
||||||
- [ ] **Command palette** — Ctrl+P / Cmd+K recherche universelle
|
|
||||||
|
|
||||||
#### 4.7 Automations
|
### v4.4.0 — Embeds & Rich Media
|
||||||
- [ ] **Database automations** — if-this-then-that (ex: statut=done → assign next)
|
- [ ] **Embeds** — YouTube, Figma, Google Maps, Twitter, etc.
|
||||||
- [ ] **Buttons** — boutons cliquables déclenchant des actions (créer page, modifier propriété…)
|
- [ ] **Image lightbox** — clic pour agrandir, navigation
|
||||||
|
- [ ] **Bookmark cards** — aperçu riche des liens (OG metadata)
|
||||||
|
|
||||||
#### 4.8 Database Avancée
|
### v4.5.0 — Kanban Adaptable
|
||||||
- [ ] **Database unifiée** — refonte complète du système de database Notion-style
|
- [ ] Colonnes configurables par utilisateur
|
||||||
- Inline databases dans n'importe quelle page
|
- [ ] Cartes configurables (choisir propriétés affichées)
|
||||||
- Full-page databases avec vues multiples
|
- [ ] Couverture de carte (image, icône, couleur)
|
||||||
- Templates de database (Project tracker, CRM, Inventory…)
|
- [ ] WIP limits par colonne
|
||||||
- Champs calculés avec formules complexes
|
|
||||||
- Groupes de propriétés pliables
|
|
||||||
- Validation des propriétés (required, unique, min/max)
|
|
||||||
- Types de propriétés manquants: Person (multi-select users), Last edited time, Created by
|
|
||||||
- [ ] **Vues Notion complètes**
|
|
||||||
- Vue Timeline/Gantt avec dépendances visuelles
|
|
||||||
- Vue Board (Kanban) avec swimlanes et WIP limits
|
|
||||||
- Vue Calendar avec drag & drop reschedule
|
|
||||||
- Vue Gallery avec images de couverture
|
|
||||||
|
|
||||||
#### 4.9 Kanban Adaptable
|
### v4.6.0 — Calendar & Meetings
|
||||||
- [ ] **Kanban personnalisable par utilisateur**
|
- [ ] Vue Calendrier drag & drop
|
||||||
- Colonnes configurables (propriété Select/Status)
|
- [ ] Récurrence d'événements
|
||||||
- Cartes configurables (choisir quelles propriétés afficher)
|
- [ ] Template Meeting Notes
|
||||||
- Couverture de carte (image, icône, couleur)
|
|
||||||
- Sous-tâches visibles directement sur la carte
|
|
||||||
- WIP limits par colonne avec alertes visuelles
|
|
||||||
- Vues sauvegardées par utilisateur (nom, filtres, tri, colonnes)
|
|
||||||
- Mode compact / mode détaillé
|
|
||||||
|
|
||||||
#### 4.10 Calendar & Meetings
|
### v4.7.0 — AI Assistant
|
||||||
- [ ] **Calendrier intégré**
|
- [ ] Intégration LLM pour écriture/résumé/traduction
|
||||||
- Vue Calendrier avec drag & drop pour reschedule
|
- [ ] Slash AI commands (`/ai write`, `/ai summarize`)
|
||||||
- Vue Jour/Semaine/Mois (comme Notion Calendar)
|
- [ ] Auto-complétion
|
||||||
- Récurrence d'événements (daily, weekly, monthly, custom)
|
|
||||||
- Timezone support
|
### v4.8.0 — Command Palette & Recherche
|
||||||
- Rappels (in-app, email)
|
- [ ] **Command palette** — Ctrl+K / Ctrl+P recherche universelle
|
||||||
- [ ] **Meeting Notes**
|
- [ ] **Quick actions** — navigation, création, commandes
|
||||||
- Template Meeting Notes avec sections: Attendees, Agenda, Notes, Action Items
|
|
||||||
- Lien automatique avec le calendrier
|
### v4.9.0 — Automations
|
||||||
- Action items → création automatique de tâches
|
- [ ] **Database automations** — if-this-then-that
|
||||||
|
- [ ] **Buttons** — cliquables déclenchant actions
|
||||||
|
|
||||||
|
### v4.10.0 — Database Avancée
|
||||||
|
- [ ] Inline databases dans n'importe quelle page
|
||||||
|
- [ ] Templates de database (Project tracker, CRM…)
|
||||||
|
- [ ] Validation des propriétés (required, unique, min/max)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## v4.1.0 — Pro (futur)
|
## v5.0.0 — Pro (futur)
|
||||||
|
|
||||||
- [ ] **PWA** — Progressive Web App, offline support
|
- [ ] **PWA** — Progressive Web App, offline support
|
||||||
- [ ] **SSO/SAML** — enterprise authentication
|
- [ ] **SSO/SAML** — enterprise authentication
|
||||||
- [ ] **Granular permissions** — page-level, property-level access control
|
- [ ] **Granular permissions** — page-level, property-level access control
|
||||||
- [ ] **Web Clipper** — extension navigateur sauvegarder vers FlowDeck
|
- [ ] **Web Clipper** — extension navigateur
|
||||||
- [ ] **API publique** — REST API + webhooks
|
- [ ] **API publique** — REST API + webhooks documentés
|
||||||
|
- [ ] **Realtime editing** — WebSocket, curseurs multi-utilisateurs
|
||||||
- [ ] **Synced blocks** — bloc synchronisé entre plusieurs pages
|
- [ ] **Synced blocks** — bloc synchronisé entre plusieurs pages
|
||||||
- [ ] **Conditional formatting** — couleur cellule basée sur valeur
|
|
||||||
- [ ] **Pivot tables** — vues agrégées
|
|
||||||
- [ ] **Database containers** — sous-DBs imbriquées
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Résumé des phases
|
## Résumé des phases
|
||||||
|
|
||||||
```
|
```
|
||||||
v1.0.0 ✅ v1.1.0 ✅ v1.2.0 ✅ v1.3.0 ✅ v1.4.0 ✅ v1.5.0 ✅ v1.6.0 ✅ v1.7.0 ✅
|
v0.x–v1.x ✅ v2.x ✅ v3.0.0 ✅ v4.0.0 ✅ v4.0.1 ⬜
|
||||||
Production Pages Editor DB Concept Properties Relations Views View+
|
Base + Kanban Éditeur + Gitea UX Pro MVP Onboarding
|
||||||
|
+ DB + Auth + Workspaces + Multi-select Accounts & Polish
|
||||||
|
+ UI Notion + Tags + Admin + Sharing PRIORITÉ
|
||||||
|
+ GitHub OAuth + Library MAX
|
||||||
|
|
||||||
v2.0.0 ✅ v2.1.0 ✅ v2.2.0 ✅ v2.3.0 ✅ v2.4.0 ✅ v2.5.0 ✅ v2.6.0 ✅ v2.7.0 ✅
|
v4.0.2 ⬜ v4.1.0 ⬜ v4.2.0 ⬜ v4.3.0 ⬜ v4.4–4.10 ⬜ v5.0.0 ⬜
|
||||||
Editor+ Workspace Tags Views5 Tags/user Admin Account Gitea P1
|
Quality Blocks Export Collab Notion Pro
|
||||||
Local Panel
|
& Tests enrichis PDF/MD @mentions Parity (futur)
|
||||||
|
|
||||||
v2.7.1 ✅ v2.8.0 ✅ v2.9.0 ✅ v3.0.0 ✅ v3.0.1 ✅ v4.0.0 ✅ v4.1.0 ⬜
|
|
||||||
Private Gitea P2 GitHub Pro UX Quality Accounts+ Pro
|
|
||||||
Pages Parité
|
|
||||||
```
|
```
|
||||||
|
|
||||||
*Dernière mise à jour: 2026-07-18 — v4.0.0 Accounts/Integrations complété, route publique /p/<slug> ajoutée*
|
*Dernière mise à jour: 2026-07-18 — Roadmap restructuré, focus MVP, stratégie de branches Gitea*
|
||||||
|
|||||||
Reference in New Issue
Block a user