d4cd45c6cb84d584402d1398050bde78e8ce7927
- Block editor: 13 block types with contentEditable + vanilla JS event delegation
- Slash menu /: 14 commands, 100% vanilla JS (zero Alpine conflicts)
- Keyboard: Enter=new block, Shift+Enter=soft break, arrows navigate blocks
- Drag & drop: SortableJS with 6-dot handles on block-wrapper
- Move to Trash: DELETE /board/api/pages/{id} + instant sidebar cleanup
- Placeholders: 'New page' + 'Type / for commands' in gray (CSS :empty::before)
- Redirect after delete stays in project context via workspaceKey
- Fixes: title auto-save, cursor positioning, x-for keys, Sortable guard
FlowDeck
Clone de l'interface Notion intégré nativement à Gitea — Kanban, Table, Status Overview, Team Load.
v0.4.0-dev — Refonte UI Notion-style (Dark Mode, sidebar, topbar, multi-vues)
Quick Start
cp .env.example .env
# Éditer .env avec votre token Gitea
docker compose up -d
# → http://localhost:8080
Features (v0.4.0)
UI Notion-Style
- Sidebar gauche avec sections hiérarchiques (Home, Recents, Private, Library)
- Topbar avec titre de page, statut, boutons d'action (Share, favori, notifications)
- Dark mode Notion:
#191919fond,#222222sidebar,#333333actif - Menu contextuel (clic droit): Copy link, Duplicate, Rename, Move to Trash...
- Hover states subtils avec icônes d'action qui apparaissent
- Typographie Inter, coins arrondis 4-6px
Vues Multiples
- Kanban board: colonnes To-do/In progress/Complete avec sous-groupes (Design, Engineering)
- Table view: colonnes Name, Status, Assign, Deadline, Team, AI keywords
- Status overview: Donut chart avec segments, compteurs, pourcentages
- Team Load: Barres empilées par membre d'équipe
- Detailed board: cartes avec toutes les propriétés visibles
Filtres & Tri
- Filtres cumulables (logique AND) avec pastilles cliquables
- Tri multi-critères hiérarchique
- Filtre par statut: checkboxes multiples avec points colorés
- Filtre AI keywords: recherche + sélection multiple
Intégration Gitea
- Issues Gitea → cartes Notion-style
- Sync labels, milestones, assignees, due dates
- OAuth2 Gitea, CSRF, rate limiting
- Webhooks pour sync temps réel
Stack
| Couche | Techno |
|---|---|
| Frontend | HTML5 + Jinja2 + CSS Notion, Alpine.js, HTMX, SortableJS |
| Backend | Python 3.12 + FastAPI + httpx |
| BDD | SQLite (WAL mode) — /data/flowdeck.db |
| Déploiement | Docker (Python 3.12-slim), docker-compose |
Configuration
GITEA_URL=https://git.dracodev.net
GITEA_TOKEN=votre_token
APP_PORT=8080
DATABASE_URL=sqlite:////data/flowdeck.db
Roadmap
Voir ROADMAP.md — v0.4.0 UI Notion → v1.0.0 Production
Développement
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8080
Licence
MIT