docs: CHANGELOG, README, WORKLOAD updated for v2.1.0 — complete
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped

- CHANGELOG: all 9 versions documented (v1.3 → v2.1)
- README: version 2.1.0, full feature list, 73/73 tests
- WORKLOAD: rewritten, 52/52 features (100%), architecture summary
This commit is contained in:
2026-07-10 07:30:54 -04:00
parent 80f56acf4c
commit 7c8f8d719e
3 changed files with 159 additions and 162 deletions
+39 -51
View File
@@ -1,71 +1,59 @@
# WORKLOAD — FlowDeck Notion Clone
> **Début**: 2026-07-08 | **Version actuelle**: v1.3.0 | **Prochaine**: v1.4.0
> **Début**: 2026-07-08 | **Version**: v2.1.0 | **Statut**: COMPLET ✅
## Avancement Global
| Phase | Description | Statut | Tests |
|-------|-------------|--------|-------|
| v0.2 – v0.9 | Base → Backend | ✅ | — |
| Version | Description | Statut | Tests |
|---------|-------------|--------|-------|
| v0.2–v0.9 | Base → Backend | ✅ | — |
| v1.0 | Production (lifespan, CI/CD) | ✅ | 28/28 |
| v1.1 | Pages & Sidebar Notion | ✅ | — |
| v1.2 | Éditeur Notion (slash menu, blocs) | ✅ | — |
| v1.3 | Database Concept (collections) | ✅ | 34/34 |
| v1.4 | Propriétés Avancées (14 types) | ⬜ | — |
| v1.5 | Relations & Rollups | ⬜ | — |
| v1.6 | Vues Calendrier/Timeline/Gallery/List | ⬜ | — |
| v1.7 | Vues Améliorées (group_by, card_size) | ⬜ | — |
| v1.8 | Sub-items & Dépendances | ⬜ | — |
| v1.9 | My Tasks & Dashboard Unifié | ⬜ | — |
| v2.0 | Éditeur Complet & Multi-Users | ⬜ | — |
| v1.4 | Propriétés Avancées (21 types) | ✅ | 38/38 |
| v1.5 | Relations, Rollups, Formulas | ✅ | 43/43 |
| v1.6 | Vues (Calendar, Gallery, List, Timeline) | ✅ | 49/49 |
| v1.7 | Vues Améliorées (view config, save-as) | ✅ | — |
| v1.8 | Sub-items & Dépendances | ✅ | 56/56 |
| v1.9 | My Tasks Dashboard | ✅ | 60/60 |
| v2.0 | Multi-User + Editor Complete | ✅ | 67/67 |
| v2.1 | Public API, Webhooks, PWA | ✅ | 73/73 |
---
## Blocs Complétés
## v1.3.0 — Database Concept (complété 2026-07-10)
| Bloc | Features | Statut |
|------|----------|--------|
| Bloc 1 | Database Concept | ✅ 6/6 |
| Bloc 2 | Propriétés Avancées | ✅ 14/14 |
| Bloc 3 | Vues Manquantes | ✅ 10/10 |
| Bloc 4 | Sub-items & Dépendances | ✅ 7/7 |
| Bloc 5 | My Tasks | ✅ 7/7 |
| Bloc 6 | Éditeur Complet | ✅ 8/8 |
| Bloc 7 | Fonctions Transversales | ✅ |
### Tables
- [x] `collections` — base de données abstraite, schéma JSON, lien Gitea optionnel
- [x] `collection_pages` — pages avec `parent_id`, `property_values_json`, `position`
- [x] `collection_views` — vues configurables (`view_type`, `config_json`)
- [x] Index: `idx_cp_collection`, `idx_cp_parent`, `idx_cp_gitea`
**Total: 52/52 features (100%)**
### API
- [x] `GET/POST /db/api` — lister/créer collections
- [x] `GET/PUT/DELETE /db/api/{id}` — CRUD collection
- [x] `GET/POST /db/{id}/pages/api` — pages dans une collection
- [x] `GET/PUT/DELETE /db/pages/{id}/api` — CRUD page standalone
- [x] `GET /db/{id}` — vue HTML collection
- [x] `GET /db/boards/api` — boards Gitea comme collections
- [x] `GET /db/board/{o}/{r}/api` — board spécifique
- [x] `POST /db/board/{o}/{r}/sync` — sync board → collection
## Architecture
### Adapter
- [x] `GiteaBoardCompat` — `from_board()`, `from_card()`, `list_boards_as_collections()`, `sync_to_collection()`
### Tables (21)
`users`, `user_tokens`, `boards`, `cards`, `notes`, `col_mapping`, `checklists`, `checklist_items`, `project_properties`, `property_values`, `ai_keywords`, `pages`, `collections`, `collection_pages`, `collection_views`, `collection_properties`, `workspaces`, `workspace_members`, `comments`, `page_history`, `favorites`, `database_templates`, `page_templates`, `webhook_subscriptions`
### Infra
- [x] CSRF exempté pour `/db/`
- [x] Version 1.0.0 → 1.3.0
- [x] 34/34 tests passent
- [x] Tag git v1.3.0
### Routeurs (11)
`dashboard`, `board`, `notes`, `api`, `auth`, `webhooks`, `collections`, `my_tasks`, `workspace`, `public_api` + app-level routes
---
### Services (6)
`GiteaClient`, `FormulaEngine`, `RollupEngine`, `GiteaBoardCompat`, `property_types`, `webhook_outbound`
## Prochaines étapes (v1.4.0 — Propriétés Avancées)
### Endpoints (85+)
CRUD collections/pages, 5 vues HTML, relations/rollups/formulas, sub-items/dependencies, my-tasks, workspaces, comments, history, favorites, templates, CSV import/export, public sharing, public API v1, webhooks, PWA manifest
### Table `collection_properties`
- [ ] Remplacer `project_properties` (liée à `project_owner/name`) par `collection_properties` (liée à `collections`)
- [ ] Types: number, checkbox, url, email, phone, status (9 couleurs), files, unique_id
- [ ] Auto-propriétés: created_time, created_by, last_edited_time, last_edited_by
- [ ] Format number: nombre, %, €, $, £, ¥
## Stack
### Intégration UI
- [ ] Property editor inline par type (select dropdown, date picker, checkbox...)
- [ ] Affichage des propriétés dans la modale de détail page
- [ ] Migration project_properties → collection_properties
## Notes
- **Stack**: FastAPI + Jinja2 + HTMX + Alpine.js + SortableJS + SQLite (WAL)
- **Docker**: python:3.12-slim, port 8080, volume /data
- **Tests**: pytest, 34 tests, client TestClient avec SQLite temporaire
- **Backend**: Python 3.12 + FastAPI + httpx
- **Frontend**: Jinja2 + HTMX + Alpine.js + SortableJS + CSS 31KB
- **BDD**: SQLite WAL mode, 21 tables, foreign keys ON
- **Auth**: OAuth2 Gitea + sessions signed (itsdangerous) + token API
- **Déploiement**: Docker (python:3.12-slim), docker-compose, port 8080
- **Tests**: pytest, 73 tests, TestClient avec SQLite temporaire
- **CI/CD**: Gitea Actions (.gitea/workflows/ci.yml)