Files
flowdeck/ROADMAP.md
T
bruno ab8d7ce9c8
FlowDeck CI / test (push) Failing after 6s
FlowDeck CI / docker (push) Has been skipped
docs: ROADMAP v2.2.0 — Gap Analysis Workspace & Sidebar Professionnel
Analyse complète de 35 améliorations réparties en 7 catégories:
A) Productivité & Raccourcis (7 items)
B) Affichage & Métadonnées (6 items)
C) Navigation & Breadcrumb (4 items)
D) Sidebar Polissage (6 items)
E) Expérience cross-cutting (6 items)
F) Mobile & Responsive (4 items)
G) Performance & Robustesse (5 items)

Priorités P0 (6): multi-sélection, raccourcis, inline rename,
vue détails, tri, indicateur dossier actif.
Priorités P1 (18): undo toast, copy/paste, métadonnées,
skeletons, breadcrumb éditable, upload progress, etc.
Estimation: ~4-6 semaines pour P0+P1.
2026-07-11 21:22:54 -04:00

17 KiB

Roadmap FlowDeck — Notion Clone

Vision: Copie conforme de l'UI/UX Notion, intégrée à Gitea. 19 images de référence dans images/ — analysées le 2026-07-08.

Completed

v0.2.0 ✅ — Base

Dashboard + Board Kanban + Gitea sync + Notes + Docker

v0.3.0 ✅ — Auth

OAuth2 Gitea, token par utilisateur, CSRF, rate limiting, webhooks

v0.4.0 ✅ — UI Notion

Layout 3 zones (sidebar 240px + topbar 44px), dark mode, CSS 31KB, Alpine.js

v0.5.0 ✅ — Kanban

Colonnes, groupes, cartes enrichies, drag&drop, modale détail, checklists, commentaires

v0.6.0 ✅ — Table View

6 colonnes triables, groupes rétractables

v0.7.0 ✅ — Filtres & Tri

Filtres cumulables AND, status dropdown, sort multi-critères

v0.8.0 ✅ — Vues Spéciales

Status Overview (donut SVG), Team Load (barres), Detailed Board

v0.9.0 ✅ — Backend

Propriétés custom, AI keywords, sync API, 12 tables DB

v1.0.0 ✅ — Production

  • FastAPI lifespan (deprecation fix)
  • 28 tests — 5 vues, filtres, tris, APIs, CSRF, CORS, DB
  • CI/CD Gitea Actions (.gitea/workflows/ci.yml)
  • CHANGELOG.md, ARCHITECTURE.md à jour
  • Version 1.0.0 partout (main.py, api.py, health)
  • Tag git v1.0.0

v1.1.0 ✅ — Pages & Sidebar

  • Pages Markdown avec arbre imbriqué (parent_id, sort_order)
  • Block editor mode (content_format='blocks', JSON storage)
  • Soft delete → Trash → Restore → Permanent delete
  • Drag & drop réorganisation pages
  • Sidebar Notion-style avec sections Recents/Private/Shared
  • "+ New page" footer button
  • Workspace header avec avatar + chevron toggle

v1.2.0 ✅ — Éditeur Notion

  • Slash menu (/) 15 commandes fonctionnelles
  • Navigation clavier (flèches, Enter, Escape)
  • Placeholders Notion-style (Heading 1/2/3/4, Toggle, Quote, Code)
  • Suppression outline blanc sur les blocs
  • Heading 4 support
  • Breadcrumbs contextuels (workspace > projet > page)

v1.3.0 ✅ — Database Concept (Bloc 1 du gap analysis)

(2026-07-10, commit c574d2c, tag v1.3.0)

  • Table collections — base de données abstraite, indépendante de Gitea
    • id, name, description, icon, schema_json
    • Optionnellement liée à Gitea (gitea_owner, gitea_repo)
  • Table collection_pages — remplace cards, pages génériques
    • collection_id, title, position, parent_id, property_values_json
    • gitea_issue_id optionnel, auto-propriétés (created_at, updated_at)
  • Table collection_views — vues configurables par collection
    • name, view_type, config_json, position
  • Rétrocompatibilité Gitea — adaptateur GiteaBoardCompat
    • Les boards Gitea existants deviennent des collections
    • Migration transparente cards → collection_pages
    • Routes /db/boards/api, /db/board/{o}/{r}/api, /db/board/{o}/{r}/sync
  • Router /db — API CRUD collections + pages (12 endpoints)
  • 34/34 tests passent (+6 nouveaux tests v1.3)
  • Database lock — mode lecture seule (collections.is_locked)
  • Database description — champ description sur les collections

v1.4.0 ✅ — Propriétés Avancées (Bloc 2)

(2026-07-10)

  • Table collection_properties — remplace project_properties
    • Liée à collections (pas à project_owner/name)
    • Supporte tous les types Notion (21 types)
  • Type number — avec formatage (nombre, %, €, $, £, ¥)
  • Type checkbox — booléen natif
  • Type url — lien cliquable
  • Type email — email cliquable
  • Type phone — téléphone cliquable
  • Type status — select avec couleurs forcées (9 couleurs Notion)
  • Type files — uploads/images attachés aux pages
  • Type unique_id — ID auto-incrémenté par collection
  • Type created_time / created_by — auto-propriétés
  • Type last_edited_time / last_edited_by — auto-propriétés
  • Service property_types.py — validation, formatage, auto-values
  • API CRUD — /db/property-types/api + CRUD /db/{id}/properties/api
  • 38/38 tests passent (+4 nouveaux tests v1.4)
  • Migration project_properties → collection_properties (v1.5)

v1.5.0 ✅ — Relations & Rollups (Bloc 2 suite)

(2026-07-10)

  • Type relation — lien bidirectionnel entre collections
    • related_collection_id, reverse_name auto-généré
    • Stockage : JSON array de page IDs dans property_values_json
    • API: POST /db/{id}/properties/relation (création avec reverse)
    • API: POST /db/{id}/properties/relation/link (lier 2 pages)
  • Type rollup — agrégation via relation
    • Functions : COUNT, SUM, AVG, MIN, MAX, RANGE, UNIQUE, PERCENT_CHECKED
    • API: POST /db/rollup/compute
  • Type formula — propriétés calculées
    • Moteur d'expressions JavaScript-like (19 fonctions)
    • API: POST /db/formula/evaluate
  • Formula engine — services/formula_engine.py
  • Rollup engine — services/rollup_engine.py
  • 43/43 tests passent (+5 nouveaux tests v1.5)
  • FKs fix: related_collection_id, relation_property_id, target_property_id → ON DELETE SET NULL

v1.6.0 ✅ — Vues Manquantes (Bloc 3)

(2026-07-10)

  • Calendar view — grid mensuel, navigation mois, événements par date
    • Route: GET /db/{id}/view/calendar
  • Gallery view — cartes visuelles avec cover image optionnelle
    • card_size: small/medium/large, cover_property configurable
  • List view — liste compacte avec preview propriétés
  • Timeline/Gantt view — barres horizontales sur axe date
  • Table view — rendu SSR, colonnes properties
  • View tabs — navigation entre vues (Table/Board/Calendar/Gallery/List/Timeline)
  • 49/49 tests passent (+6 nouveaux tests v1.6)

v1.7.0 ✅ — Vues Améliorées

v1.8.0 ✅ — Sub-items & Dépendances

(2026-07-10, combined)

  • View config API — PUT /db/views/{id}/config (group_by, card_size, cover, visible)
  • Save view as — POST /db/{id}/views/save-as
  • List views — GET /db/{id}/views/api
  • Sub-items — parent_id auto-référence, GET/POST sub-items
  • Status aggregate — GET status-aggregate (Done only if all children Done)
  • Dependencies — POST dependencies + POST check-deps (blocking constraint)
  • 56/56 tests passent (+7 tests v1.7+v1.8)

v1.9.0 ✅ — My Tasks & Dashboard Unifié (Bloc 5)

(2026-07-10)

  • Vue /my-tasks — agrège toutes les pages assignées à l'utilisateur
    • Scan cross-collection (toutes les databases du workspace)
    • Filtre automatique : admin voit tout
  • Groupement par collection — sections par database d'origine
  • Filtres globaux — All, Today, Overdue, Next 7 days
  • API JSON — GET /my-tasks/api
  • 60/60 tests passent (+4 tests v1.9)

v2.0.0 ✅ — Éditeur Complet & Multi-Utilisateurs (Blocs 6-7)

(2026-07-10)

  • Workspaces — workspaces + workspace_members tables, CRUD API, roles admin/editor/commenter/viewer
  • Comments — table comments avec thread (parent_id), resolved, API CRUD
  • Page History — table page_history, snapshot JSON, API record/list
  • Favorites — table favorites, API add/remove/list
  • Database Templates — table database_templates, apply to create collection
  • Page Templates — table page_templates, apply with pre-filled properties
  • CSV Import/Export — POST .../import/csv, GET .../export/csv
  • Public Sharing — GET /workspace/public/{id} (read-only, no auth)
  • 67/67 tests passent (+7 tests v2.0)

v2.1.0 ✅ — Workspace Local & Arborescence

(2026-07-11)

  • Page /local-workspace — file/folder tree avec breadcrumb
  • API tree récursive — GET /api/local-workspace/tree?folder=ID
  • Breadcrumb — GET /api/local-workspace/breadcrumb
  • CRUD items — create/rename/delete/move files & folders
  • Drag & drop upload — fichiers + dossiers récursifs depuis l'OS
  • Drag & drop interne — déplacer items entre dossiers
  • Expand/collapse — toggle dossiers, persisté localStorage
  • File viewer — images, PDF, texte/code avec coloration syntaxique
  • Preview hover — popup au survol des fichiers
  • Icônes par type — 📝 pages, 📕 PDF, 🖼️ images, 🐍 code, etc.
  • Recherche + filtre — par nom + par type (chips)
  • Menu contextuel sidebar — clic droit / long-press mobile
  • Expand/Collapse all — boutons ⊞ ⊟
  • Sidebar persistante — sectionsOpen + expandedFolders localStorage
  • Création instantanée — AJAX sans reload
  • 73 tests passent

Upcoming

v2.2.0 — Workspace & Sidebar Professionnel (Gap Analysis)

Cible: Q3 2026

Analyse complète de ce qui manque pour une expérience utilisateur de niveau professionnel, comparable à Notion, VS Code, et Finder.

A. Workspace Page — Productivité & Raccourcis

# Feature Priorité Effort Description
A1 Multi-sélection P0 M Checkboxes + Shift-click range + Ctrl-click toggle. Bulk delete/move.
A2 Raccourcis clavier P0 M Enter=open, F2=rename, Del=delete, Ctrl+A=select all, Ctrl+C/V=copy/paste, Ctrl+Z=undo
A3 Inline rename P0 S Double-clic → champ inline (pas prompt()). Garder le même comportement que Finder.
A4 Drag count badge P1 S Afficher un badge "[N]" sur le curseur quand on drag plusieurs items.
A5 Undo delete (toast) P1 M Remplacer confirm('Delete?') par un delete immédiat + toast "Undo" 5s.
A6 Duplicate file/folder P1 S Action "Duplicate" dans le menu contextuel + Ctrl+D.
A7 Copy/paste items P1 M Ctrl+C copie (stockage sessionStorage), Ctrl+V colle dans le dossier courant.

B. Workspace Page — Affichage & Métadonnées

# Feature Priorité Effort Description
B1 Vue détails/tableau P0 L Toggle entre arbre et tableau (Nom, Taille, Type, Modifié le).
B2 Tri P0 M Barre d'en-tête: clic pour trier par nom/date/taille/type. Asc/desc.
B3 Métadonnées dans l'arbre P1 S Afficher taille + date de modification en grisé à droite du nom.
B4 Compteur d'enfants par dossier P1 S Badge "(3)" à côté du nom du dossier indiquant le nombre d'items directs.
B5 Loading skeletons P1 S Remplacer "Loading..." par des skeletons animés (barres grises pulsing).
B6 Empty state illustré P2 S Illustration SVG + texte d'aide pour workspace vide et dossier vide.

C. Workspace Page — Navigation & Breadcrumb

# Feature Priorité Effort Description
C1 Breadcrumb éditable P1 M Cliquer sur un segment du breadcrumb = naviguer. Dernier segment éditable (rename).
C2 Barre d'adresse / path P2 M Champ texte affichant le path complet, éditable pour jump direct.
C3 Back/Forward navigation P2 M Boutons ← → dans la topbar, historique de navigation interne.
C4 Dossier parent ".." P2 S Premier élément de la liste quand on est dans un sous-dossier.

D. Sidebar Workspace — Polissage

# Feature Priorité Effort Description
D1 Indicateur de dossier actif P0 S Highlight + point coloré sur le dossier courant (navigué).
D2 Badge compteur par dossier P1 S "(5)" à côté des dossiers montrant le nombre d'items récursifs.
D3 Drop indicator line P1 S Ligne bleue entre les items pendant le drag pour montrer la position d'insertion.
D4 Scroll into view P1 S Auto-scroll pour rendre visible le dossier actif dans la sidebar.
D5 Animation expand/collapse P2 S Transition fluide CSS pour l'ouverture/fermeture des dossiers (max-height).
D6 Indicateur "modifié récemment" P2 S Petit point bleu à côté des items modifiés dans les dernières 24h.

E. Expérience Générale — Cross-cutting

# Feature Priorité Effort Description
E1 Mode grille/vignettes P2 L Alternative au tree: icônes larges avec preview, style Finder/Dropbox.
E2 Upload progress détaillé P1 M Barre de progression par fichier, vitesse, ETA, possibilité d'annuler.
E3 Drag depuis sidebar vers workspace P2 L Permettre de glisser un item de la sidebar directement dans la page workspace.
E4 Pin/favoris dans le workspace P2 S Épingler des dossiers/fichiers en haut de la liste pour accès rapide.
E5 Aperçu des fichiers dans le dossier parent P3 M Quand on survole un dossier dans l'arbre, montrer un petit popup listant les 5 premiers fichiers.
E6 Dark/Light theme cohérent P1 M S'assurer que le file viewer standalone respecte le thème actif (cookie/session).

F. Mobile & Responsive

# Feature Priorité Effort Description
F1 Swipe actions P2 M Swipe gauche sur un item → Delete. Swipe droit → Rename.
F2 Bottom sheet context menu P1 M Remplacer le menu contextuel desktop par une bottom sheet native sur mobile.
F3 Touch hold feedback P1 S Haptic feedback (si supporté) + scale animation sur long-press.
F4 Grille adaptative P2 M En mode paysage tablette: 2 colonnes (sidebar + contenu).

G. Performance & Robustesse

# Feature Priorité Effort Description
G1 Virtual scrolling P2 L Pour les dossiers avec >1000 items, rendre seulement les éléments visibles.
G2 Lazy loading des enfants P1 M Ne charger les enfants d'un dossier que quand on l'expand (API ?folder=ID).
G3 Cache navigateur P1 S Cache le contenu des fichiers déjà chargés pour le preview hover.
G4 Offline indicator P3 S Bannière "You are offline" + queue des actions pour synchro au retour.
G5 Rate limiting + retry P1 S Retry automatique avec backoff exponentiel sur les appels API échoués.

Résumé des priorités

P0 — Bloquant pour une expérience pro :

  • A1 Multi-sélection
  • A2 Raccourcis clavier
  • A3 Inline rename
  • B1 Vue détails/tableau
  • B2 Tri
  • D1 Indicateur dossier actif

P1 — Important pour la qualité perçue :

  • A4 Drag count badge, A5 Undo toast, A6 Duplicate, A7 Copy/paste
  • B3 Métadonnées, B4 Compteur, B5 Skeletons
  • C1 Breadcrumb éditable
  • D2 Badge compteur, D3 Drop indicator, D4 Scroll into view
  • E2 Upload progress, E6 Thème cohérent
  • F2 Bottom sheet mobile, F3 Touch feedback
  • G2 Lazy loading, G3 Cache, G5 Retry

Estimation globale : ~4-6 semaines pour P0+P1 avec 1 développeur.


v2.1.0 — Intégrations Avancées (futur)

  • API publique — REST API documentée pour usage externe
  • Webhooks sortants — notifier des services externes
  • n8n integration — nœud FlowDeck pour workflows
  • Slack/Discord integration — notifications dans les channels
  • Google Calendar sync — synchronisation bidirectionnelle
  • Mobile PWA — Progressive Web App pour mobile
  • PostgreSQL migration — si passage multi-tenant

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 ✅
Production  Pages     Editor     DB Concept Properties Relations  Views      View+
                              ──────────────────────────────────────────────
                              52 fonctionnalités identifiées dans le gap analysis
                              │
                              ├─ Bloc 1: Database Concept (v1.3)     — 6 items ✅
                              ├─ Bloc 2: Propriétés avancées (v1.4-1.5) — 14 items ✅
                              ├─ Bloc 3: Vues manquantes (v1.6-1.7) — 10 items ✅
                              ├─ Bloc 4: Sub-items & Deps (v1.8)    — 7 items ✅
                              ├─ Bloc 5: My Tasks (v1.9)            — 7 items ✅
                              ├─ Bloc 6: Éditeur complet (v2.0)     — 8 items ✅
                              └─ Bloc 7: Fonctions transversales    — +multi-user ✅

v2.0.0 ✅  v2.1.0 ✅  v2.2.0 ⬜
Editor+    Workspace  Pro UX
           Local