feat: FlowDeck v0.2.0 — Kanban Gitea intégré
- Dashboard projets Gitea (user + orgs) - Board Kanban 5 colonnes avec drag & drop (SortableJS) - Sync bidirectionnelle colonnes ↔ labels Gitea - Filtres milestone/label/assignee - Notes Markdown par projet - API REST (/api/health, /api/move, /api/col-mapping…) - Colonnes custom, WIP limits - Thème clair/sombre - Cache Gitea TTL - Docker + docker-compose - Tests pytest - Docs: README, ARCHITECTURE, CHANGELOG, ROADMAP
This commit is contained in:
@@ -1,3 +1,77 @@
|
||||
# flowdeck
|
||||
# FlowDeck
|
||||
|
||||
FlowDeck — Gestion de projets Kanban léger intégré à Gitea
|
||||
Gestion de projets Kanban légère, auto-hébergée, intégrée nativement à **Gitea**.
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
# Éditer .env avec votre token Gitea
|
||||
docker compose up -d
|
||||
# → http://localhost:8080
|
||||
```
|
||||
|
||||
## Features
|
||||
|
||||
- **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
|
||||
|
||||
## Stack
|
||||
|
||||
| Couche | Techno |
|
||||
|--------|--------|
|
||||
| Frontend | HTML5 + Jinja2 + CSS custom, HTMX, Alpine.js, SortableJS |
|
||||
| Backend | Python 3.12 + FastAPI + Uvicorn + 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
|
||||
|
||||
| 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 |
|
||||
|
||||
## Développement
|
||||
|
||||
```bash
|
||||
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
|
||||
```
|
||||
|
||||
## Licence
|
||||
|
||||
MIT
|
||||
|
||||
Reference in New Issue
Block a user