# Inventory Frontend Frontend de l'application de gestion d'inventaire industriel Malio. ## Stack | Tech | Version | |------|---------| | Nuxt | 4 (SPA, SSR off) | | Vue | 3 Composition API | | TypeScript | 5.7 | | CSS | TailwindCSS 4 + DaisyUI 5 | | Icônes | unplugin-icons (Lucide) | | Tests | Vitest | ## Prérequis - Node.js >= 20 - npm - Backend Symfony démarré (API sur `http://localhost:8081/api`) ## Installation ```bash npm install ``` ## Développement ```bash npm run dev ``` Le serveur de dev est accessible sur `http://localhost:3001`. ## Commandes ```bash npm run dev # Serveur de développement npm run build # Build production npm run lint:fix # Correction ESLint npx nuxi typecheck # Vérification TypeScript (0 erreurs attendu) npm run test # Tests unitaires Vitest ``` ## Structure ``` app/ ├── pages/ # Pages Nuxt (file-based routing) ├── components/ # Composants Vue (auto-imported) ├── composables/ # Composables Vue (auto-imported) ├── shared/ # Types, utils, validation │ └── utils/ # Utilitaires partagés ├── middleware/ # Auth middleware global ├── services/ # Service layer (wrappers useApi) └── utils/ # Utilitaires Nuxt ``` ## Conventions - **Composables** : `interface Deps { ... }` + `export function useXxx(deps: Deps)` - **Communication** : Props + Events uniquement (pas de provide/inject) - **API** : `useApi.ts` avec `credentials: 'include'` (auth session/cookie) - **Content-Type** : `application/ld+json` pour POST/PUT, `application/merge-patch+json` pour PATCH - **Auto-imports** : Nuxt auto-importe `components/` et `composables/` ## Auth Authentification par session (cookies), pas de JWT. Le middleware global `profile.global.ts` protège les routes. ## Submodule Ce repo est un submodule git du repo principal [Inventory](https://gitea.malio.fr/MALIO-DEV/Inventory). Workflow : 1. Commiter ici d'abord 2. Commiter dans le repo principal pour mettre à jour le pointeur submodule 3. Pousser les deux repos