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

79 lines
2.1 KiB
Markdown

# 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