79 lines
2.1 KiB
Markdown
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
|