feat: Refonte UI Notion-complete — sidebar, topbar, multi-vues, dark mode
CI / test (push) Failing after 10s
CI / lint (push) Failing after 4s

- Layout 3 zones (sidebar 240px + topbar 44px + contenu)
- Sidebar: sections hiérarchiques, hover states, menu contextuel
- CSS design system Notion: #191919/#222/#333, Inter, coins 4-6px
- Vues: Kanban (groupes+colonnes), Dashboard Notion-style
- Templates: base.html refondu, card.html partial, board.html v2
- Backend: données sidebar + board Notion (groups/cards)
- Docs: ROADMAP v0.4→v1.0, WORKLOAD.md, README
- Backward compatible: conserve _issue_column pour api.py
- Images de référence + resized (analyse 2026-07-08)
This commit is contained in:
2026-07-08 14:13:41 -04:00
parent d0818f48de
commit cc680a46c2
12 changed files with 2601 additions and 1018 deletions
+34 -33
View File
@@ -1,6 +1,8 @@
# FlowDeck
Gestion de projets Kanban légère, auto-hébergée, intégrée nativement à **Gitea**.
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
@@ -11,56 +13,56 @@ docker compose up -d
# → http://localhost:8080
```
## Features
## Features (v0.4.0)
- **Dashboard** listant tous les projets Gitea (user + orgs)
- **Board Kanban** 5 colonnes : Backlog → À faire → En cours → Révision → Terminé
- **Issues Gitea → cartes** : sync automatique, filtres par milestone/label/assignee
- **Drag & drop** (SortableJS) avec persistance SQLite
- **Sync bidirectionnelle** : déplacer une carte → label Gitea mis à jour, colonne Terminé → ferme l'issue
- **Colonnes personnalisables** + configuration du mapping colonne→label Gitea
- **WIP limits** configurables par colonne
- **Notes Markdown** par projet (éditeur + sauvegarde)
- **API REST** : `/api/health`, `/api/stats`, `/api/projects`, `/api/move`, `/api/col-mapping`
- **Thème clair/sombre** commutable
- **Filtres** par milestone, label, assignee
- **PR affichées** séparément des issues
- **Dark/light theme** toggle avec persistance localStorage
### 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: `#191919` fond, `#222222` sidebar, `#333333` actif
- **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 custom, HTMX, Alpine.js, SortableJS |
| Backend | Python 3.12 + FastAPI + Uvicorn + httpx |
| Frontend | HTML5 + Jinja2 + CSS Notion, Alpine.js, HTMX, SortableJS |
| Backend | Python 3.12 + FastAPI + httpx |
| BDD | SQLite (WAL mode) — `/data/flowdeck.db` |
| Intégration | API REST Gitea v1 (token auth) |
| Déploiement | Docker (Python 3.12-slim), docker-compose |
## Configuration
Voir `.env.example`. Variables principales :
```env
GITEA_URL=https://git.dracodev.net
GITEA_TOKEN=votre_token
APP_PORT=8080
DATABASE_URL=sqlite:////data/flowdeck.db
SYNC_INTERVAL=60
GITEA_CACHE_TTL=30
```
## API Reference
## Roadmap
| Endpoint | Description |
|----------|-------------|
| `GET /api/health` | Health check (DB + Gitea) |
| `GET /api/stats` | Statistiques globales |
| `GET /api/projects` | Projets Gitea (JSON) |
| `POST /api/move` | Déplacer une carte |
| `POST /api/col-mapping` | Configurer mapping colonne→label |
| `GET /api/board-config/{owner}/{repo}` | Configuration board |
| `POST /api/board-config/{owner}/{repo}` | Mettre à jour colonnes/WIP |
Voir [ROADMAP.md](ROADMAP.md) — v0.4.0 UI Notion → v1.0.0 Production
## Développement
@@ -68,7 +70,6 @@ GITEA_CACHE_TTL=30
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # éditer
uvicorn app.main:app --reload --port 8080
```