Files
flowdeck/README.md
T
bruno f2f2f3209e
FlowDeck CI / lint (push) Successful in 1m25s
FlowDeck CI / test (push) Successful in 10m20s
FlowDeck CI / docker (push) Successful in 1m21s
feat: v6.4.0 Realtime production — merge 3-voix (au-delà du LWW) + broadcast non bloquant
- app/services/realtime_merge.py : merge à 3 voix diff3-lite, regions disjointes conservees, conflit par champ + drapeau
- protocole base (client embarque la base de sa saisie) ; sans base -> LWW historique (retro-compat)
- ack renvoie le bloc fusionne + conflict ; adoption cote client + toast ; broadcast du resultat fusionne
- broadcast non bloquant : file sortante + tache writer par connexion, coalescence des curseurs
- clients trop lents deconnectes (4413), budget ops anti-flood (400/10s)
- fix fuite room 4404 + room_state() sur page inexistante
- GET /api/realtime/stats (observabilite)
- 26 tests test_realtime_v64.py ; suite 725 verte ; ruff + eslint OK ; version 6.4.0
2026-09-23 23:55:39 -04:00

100 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# FlowDeck
Clone complet de **Notion** intégré nativement à **Gitea** — Databases, Pages, Kanban, Calendar, Gallery, Timeline, List, Multi-Users.
> **v6.4.0** — Realtime production (merge 3-voix, broadcast non bloquant), API publique v2, PWA offline
## Quick Start
```bash
cp .env.example .env
# Éditer .env avec votre token Gitea
docker compose up -d
# → http://localhost:8080
```
## Features
### Database & Properties (v1.3–v1.5)
- **Collections**: databases indépendantes de Gitea, schéma JSON
- **21 types de propriétés**: title, text, number, select, status, date, person, checkbox, url, email, phone, files, unique_id, relation, rollup, formula + auto-props
- **Relations bidirectionnelles** + **Rollups** (12 agrégations) + **Formulas** (19 fonctions)
- **GiteaBoardCompat**: adaptateur boards Gitea legacy → Collections
### Vues Multiples (v1.6–v1.7)
- **Table**: colonnes SSR, triables
- **Board (Kanban)**: colonnes, groupes, drag & drop
- **Calendar**: grid mensuel, navigation, événements
- **Gallery**: cartes visuelles, card_size configurable
- **List**: vue compacte avec preview
- **Timeline**: barres Gantt horizontales
- **Status Overview**: Donut chart SVG
- **Team Load**: Barres empilées
### Sub-items & Dépendances (v1.8)
- **Sub-items**: parent_id auto-référence, hiérarchie illimitée
- **Status aggregate**: parent = Done si tous enfants Done
- **Dependencies**: Blocking/Blocked by, contrainte de transition
### My Tasks (v1.9)
- Dashboard cross-collection agrégeant toutes les tâches assignées
- Vues: All, Today, Overdue, Next 7 days
### Multi-User & Collaboratif (v2.0)
- **Workspaces**: espaces partagés avec rôles (admin, editor, commenter, viewer)
- **Comments**: commentaires threadés sur les pages
- **Page History**: historique des modifications avec snapshots
- **Favorites**: favoris par utilisateur
- **Templates**: database + page templates
- **CSV Import/Export**
- **Public Sharing**: lien de partage lecture seule
### API & Intégrations (v6.3)
- **API publique REST v2**: `/api/v2` — CRUD complet, Bearer + scopes `read/write/admin`, pagination, filtres, erreurs RFC 7807, idempotence, audit — [guide](docs/API_GUIDE_V6.md) · OpenAPI `/docs`
- **API publique v1**: `/api/v1` (lecture seule, compat)
- **Webhooks sortants**: gestion + dispatcher d'événements (CRUD v2)
- **Web Clipper**: extension navigateur Manifest V3 (article/sélection/bookmark/screenshot)
- **PWA**: manifest.json + service worker, offline support
### UI Notion-Style (v1.1–v1.2)
- Sidebar gauche avec sections hiérarchiques
- Topbar avec breadcrumbs (workspace > projet > page)
- Dark mode Notion: `#191919` fond, `#222222` sidebar
- Éditeur de blocs: slash menu (/), navigation clavier, placeholders
### Intégration Gitea
- Issues Gitea → cartes, sync labels, milestones, assignees, due dates
- OAuth2 Gitea, CSRF, rate limiting, webhooks
## Stack
| Couche | Techno |
|--------|--------|
| Frontend | Jinja2 + HTMX + Alpine.js + SortableJS + CSS |
| Backend | Python 3.12 + FastAPI + httpx |
| BDD | SQLite (WAL, 21 tables) — `/data/flowdeck.db` |
| Déploiement | Docker (python:3.12-slim), docker-compose |
## Configuration
```env
GITEA_URL=https://git.dracodev.net
GITEA_TOKEN=votre_token
APP_PORT=8080
DATABASE_URL=sqlite:////data/flowdeck.db
```
## Tests
```bash
python3 -m pytest tests/ -v # 725/725 passent
```
## Roadmap
Voir [ROADMAP.md](ROADMAP.md) — 7/7 blocs complétés, 52/52 features ✅
## Licence
MIT