Files
flowdeck/ROADMAP.md
T
bruno 16532d10bd
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
feat(v1.4.0): Propriétés Avancées — collection_properties, 21 types, API CRUD
- Table collection_properties (21 types Notion: number, checkbox, url, email, phone, status, files, unique_id, ...)
- Auto-propriétés: created_time, created_by, last_edited_time, last_edited_by
- Service property_types.py: validation, formatage, auto-values
- API: GET /db/property-types/api, CRUD /db/{id}/properties/api, PUT/DELETE /db/properties/{id}/api
- 38/38 tests passent (+4 nouveaux tests v1.4)
- Version 1.3.0 → 1.4.0
- Docs: ROADMAP, CHANGELOG, WORKLOAD, README à jour
2026-07-09 22:43:16 -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)

  • 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
  • Type rollup — agrégation via relation
    • Functions : COUNT, COUNT_VALUES, SUM, AVG, MEDIAN, MIN, MAX, RANGE, UNIQUE
    • Dépend de relation_property_id + target_property_id
  • Type formula — propriétés calculées
    • Moteur d'expressions JavaScript-like
    • Fonctions : prop(), now(), today(), if(), concat(), round(), etc.
  • Formula engine — services/formula_engine.py
  • Rollup engine — services/rollup_engine.py

v1.6.0 — Vues Manquantes (Bloc 3)

  • Calendar view — regroupement par propriété Date (jour/semaine/mois)
    • Template calendar_view.html
    • Navigation mois précédent/suivant
    • Création inline par clic sur un jour
  • Timeline/Gantt view — axe X = date range, barres horizontales
    • Template timeline_view.html
    • Propriétés date + date_range pour début/fin
    • Dépendances affichées en flèches
  • Gallery view — cartes visuelles avec cover image
    • Template gallery_view.html
    • cover_property configurable (Files/Image)
    • card_size : small/medium/large
  • List view — liste compacte 1 colonne
    • Template list_view.html
    • Preview du contenu sous le titre

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 (11/14 ✅)
                              ├─ 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.8.0 ⬜  v1.9.0 ⬜  v2.0.0 ⬜  v2.1.0 ⬜
Sub-items  My Tasks   Editor+    Future
                      Multi-user