feat: Refonte UI Notion-complete — sidebar, topbar, multi-vues, dark mode
- 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:
@@ -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
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user