8f5f25b3e76de5e70d30cb751c49caccd82051db
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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
npm install
Développement
npm run dev
Le serveur de dev est accessible sur http://localhost:3001.
Commandes
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.tsaveccredentials: 'include'(auth session/cookie) - Content-Type :
application/ld+jsonpour POST/PUT,application/merge-patch+jsonpour PATCH - Auto-imports : Nuxt auto-importe
components/etcomposables/
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. Workflow :
- Commiter ici d'abord
- Commiter dans le repo principal pour mettre à jour le pointeur submodule
- Pousser les deux repos
Description