Files
flowdeck/ROADMAP.md
T
bruno e725398543
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
feat(v1.6.0): Vues Manquantes — Calendar, Gallery, List, Timeline, Table SSR
- 4 nouvelles vues HTML: calendar (grid mensuel), gallery (cartes), list (compacte), timeline (Gantt)
- Navigation entre vues via tabs (Table/Board/Calendar/Gallery/List/Timeline)
- _render_view dispatcher + _base_html template commun
- Routes: GET /db/{id}/view/{calendar,gallery,list,timeline}
- Default view = table (SSR avec properties)
- 49/49 tests passent (+6 tests v1.6)
- Version 1.5.0 → 1.6.0
2026-07-09 23:03:51 -04:00

11 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 (Bloc 3 suite)

  • Group_by configurable — Kanban groupé par n'importe quelle propriété Select/Status
    • Plus seulement les labels Gitea
    • UI de sélection du group_by dans la barre d'outils
  • Visible properties par vue — toggle colonnes dans chaque vue
  • Card size — small/medium/large pour board et gallery
  • Cover image property — choisir la propriété de cover
  • Groupes de filtres — (A OR B) AND C, UI de construction de filtres
  • Save view as — sauvegarder état courant comme nouvelle vue

v1.8.0 — Sub-items & Dépendances (Bloc 4)

  • Sub-items sur cartes Kanban — parent_id dans collection_pages
    • Auto-référence : une page peut être enfant d'une autre dans la même collection
  • Affichage imbriqué — cartes indentées sous le parent dans le board
    • CSS .sub-item avec indentation visuelle
    • Compteur de sous-tâches sur la carte parent
  • Bouton "+ Sub-item" — création inline de sous-tâche
  • État parent = agrégation enfants — "Done" seulement si tous enfants Done
  • Dependencies (Blocking ↔ Blocked by)
    • 2e relation auto-référencée
    • Propriétés Blocks et Blocked by créées automatiquement
  • Contrainte de dépendance — empêcher "Done" si bloque des tâches non terminées
  • Flèches de dépendance — visuel dans Timeline et Kanban

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

  • Vue /my-tasks — agrège toutes les pages assignées à l'utilisateur
    • Scan cross-collection (toutes les databases du workspace)
    • Filtre automatique : Assignee = current_user ET Status ≠ Done
  • Groupement par collection — sections par database d'origine
  • Filtres globaux — Status, Due Date, Collection
  • Calendrier intégré — My Tasks en vue calendrier
  • Vue Today — ce qui est dû aujourd'hui
  • Vue Overdue — tâches en retard
  • Vue Upcoming — 7 prochains jours

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 ✅ (complété)
                              ├─ Bloc 3: Vues manquantes (v1.6-1.7) — 10 items (6/10 ✅)
                              ├─ 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.8.0 ⬜  v1.9.0 ⬜  v2.0.0 ⬜  v2.1.0 ⬜
Sub-items  My Tasks   Editor+    Future
                      Multi-user