- 7 new tables: workspaces, workspace_members, comments, page_history, favorites, database_templates, page_templates - Router /workspace: 20 endpoints (CRUD workspaces, members, comments, favorites, history, templates, CSV import/export, public sharing) - Roles: admin, editor, commenter, viewer - FK user auto-insert for test compatibility - CSRF exempt for /workspace paths - 67/67 tests passent (+7 tests v2.0) - Version 1.9.0 → 2.0.0 - Docs: ROADMAP updated (7/7 blocs completed)
9.4 KiB
9.4 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 Giteaid,name,description,icon,schema_json- Optionnellement liée à Gitea (
gitea_owner,gitea_repo)
- Table
collection_pages— remplacecards, pages génériquescollection_id,title,position,parent_id,property_values_jsongitea_issue_idoptionnel, auto-propriétés (created_at,updated_at)
- Table
collection_views— vues configurables par collectionname,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
descriptionsur les collections
Upcoming
v1.4.0 ✅ — Propriétés Avancées (Bloc 2)
(2026-07-10)
- Table
collection_properties— remplaceproject_properties- Liée à
collections(pas àproject_owner/name) - Supporte tous les types Notion (21 types)
- Liée à
- 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 collectionsrelated_collection_id,reverse_nameauto-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
- Route:
- Gallery view — cartes visuelles avec cover image optionnelle
card_size: small/medium/large,cover_propertyconfigurable
- 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_memberstables, CRUD API, roles admin/editor/commenter/viewer - Comments — table
commentsavec 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 — Intégrations Avancées (futur)
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 ⬜
Editor+ Future
Multi-user