Application de gestion de documents (GED) pour DataFair : arborescence de dossiers et de fichiers stockés comme pièces jointes d'un jeu de données, dépôt par glisser-déposer, renommage, versionnement et historique des révisions.
Vue 3.5 (Composition API, <script setup lang="ts">), Vuetify 4, Vite 8, TypeScript strict, @data-fair/lib-vuetify 2.x / lib-vue / lib-utils, Playwright (tests unitaires et e2e), ESLint 9 + husky + commitlint.
npm install
npm run devnpm run dev génère au premier lancement un .env git-ignoré (ports APP_PORT, DEV_SERVER_PORT, E2E_PORT) puis ouvre une session Zellij avec :
vite(application, portAPP_PORT)df-dev-server(proxy de développement, portDEV_SERVER_PORT)
La configuration de développement courante vit dans .dev-config.json (git-ignoré) : l'UI du dev-server permet de copier la configuration d'une application réelle plutôt que de l'écrire à la main.
| Script | Rôle |
|---|---|
npm run dev |
environnement de dev complet (df-dev-env + zellij) |
npm run dev-app |
serveur Vite seul |
npm run build |
build de production (dist/) |
npm run lint / lint-fix |
ESLint |
npm run type-check |
vue-tsc |
npm run build-types |
génère les types TS depuis public/config-schema.json (à relancer après toute modification du schéma) |
npm run test / test-unit / test-e2e |
Playwright |
npm run quality |
lint + build-types + type-check + build + tests + audit (exécuté au pre-push) |
public/config-schema.json est la source unique (vocabulaire VJSF 3) : il est servi tel quel à DataFair et ré-exporté par src/config/schema.ts pour générer les types (src/config/.type/, git-ignoré, ré-exportés par src/config/index.ts). Le sélecteur de jeu de données déclare le prérequis « pièces jointes » (short-concept=attachment) dans l'URL du sélecteur.
npm run test-unit # fonctions pures, sans serveur
npm run test-e2e # contre le serveur Vite, API data-fair entièrement mockéeLes e2e (tests/e2e/) injectent window.APPLICATION et mockent l'API (lignes, _bulk_lines, révisions, pièces jointes) ainsi que le WebSocket : aucune instance data-fair réelle n'est nécessaire.
pre-commit: lintcommit-msg: commitlint (messages conventionnels)pre-push:npm run quality