Files
Inventory/README.md
2026-03-04 10:37:59 +01:00

2.1 KiB

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.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. Workflow :

  1. Commiter ici d'abord
  2. Commiter dans le repo principal pour mettre à jour le pointeur submodule
  3. Pousser les deux repos