Files
flowdeck/ROADMAP.md
T
bruno f752ae2ed7
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
docs: ROADMAP v1.9.0 ✅ — 5 blocs complétés (37/52)
2026-07-09 23:09:05 -04:00

9.8 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

Upcoming

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)

  • Drag blocks to reorder — réorganisation des blocs dans l'éditeur
  • Colonnes (2, 3, 4, 5) — layout multi-colonnes dans l'éditeur
  • Callout blocks — bloc avec icône et fond coloré
  • Toggle blocks — bloc repliable
  • Code blocks avec syntax highlighting — highlight.js
  • Image resize/alignment — redimensionnement et alignement
  • Embeds — vidéo, fichier, bookmark web
  • Database templates — structures de database réutilisables
  • Page templates — pages modèles dans une database
  • Inline databases — databases embarquées dans une page
  • Linked databases — même database affichée dans plusieurs pages
  • Multi-user workspaces — collaboration temps réel
    • Workspaces partagés avec permissions (read/write/admin)
    • User presence (qui est en ligne, qui édite quelle page)
    • Historique des modifications par page
    • Commentaires sur les pages (pas juste les issues Gitea)
  • Favorites — système de favoris fonctionnel
  • CSV import/export pour databases
  • Public sharing — lien de partage public pour une vue

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

v1.9.0 ✅  v2.0.0 ⬜  v2.1.0 ⬜
My Tasks   Editor+    Future
                      Multi-user