- 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
78 lines
2.3 KiB
Markdown
78 lines
2.3 KiB
Markdown
# FlowDeck
|
|
|
|
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
|