# Projet Inventory ## Installation du projet ### Windows Pour windows, il faut installer le WSL2, Ubuntu, docker et nvm. Il suffit de suivre cette [doc](https://wiki.malio.fr/bookstack/books/environnement-de-dev/chapter/windows) ### Linux Pour linux, il faut installer docker et nvm. Il suffit de suivre cette [doc](https://wiki.malio.fr/bookstack/books/environnement-de-dev/chapter/linux) ### Installation du projet Une fois les prérequis installés, il suffit de cloner le projet et de lancer les commandes suivantes ```bash sudo apt install make -y make start make install ``` Dans le cas ou le `make start` plante à cause du port de la bdd, il faut modifier **POSTGRES_PORT** dans le fichier .env.docker.local, remplacer le par un port disponible. ### Configuration xdebug Pour configurer xdebug, il faut ajouter un serveur sur phpstorm.
Pour cela, il faut aller dans **Settings > PHP > Servers**
* Name : inventory-docker * Host : localhost * Port : 8080 * Path : File/Directory -> l'endroit où est stocké votre projet et le path -> /var/www/html Pour que xdebug fonctionne sur windows, il faut modifier la variable **XDEBUG_CLIENT_HOST** par votre ip local ## Utilisation du projet ### Backend L'api est disponible sur http://localhost:8080/api Pour la bdd toutes les infos sont dans le fichier **docker/.env.docker.local** Vous pouvez modifier le port si nécessaire. La bdd est déja pré-configuré dans PhpStorm, il suffit de rentrer les infos du .env.docker.local pour se connecter. C'est un bdd local dans le docker. ### Frontend Le frontend utilise le dossier `Inventory_frontend/`. Pour le frontend, il suffit de taper la commande suivante qui va lancer le serveur de dev ```bash make dev-nuxt ``` Le front sera accessible sur http://localhost:3000 ## Compression automatique des PDFs Les documents PDF uploadés sont automatiquement compressés sans perte de qualité grâce à **qpdf**. ### Prérequis ```bash # Installation de qpdf (outil système) sudo apt install qpdf # Ou dans Docker docker exec -it php-inventory-apache apt update && apt install -y qpdf ``` ### Fonctionnement - À chaque upload de PDF, le système compresse automatiquement le fichier - Compression lossless (sans perte de qualité) - Le PDF est compressé uniquement si la taille diminue - Si qpdf n'est pas installé, le système fonctionne normalement sans compression ### Compresser les PDFs existants Pour compresser tous les PDFs déjà en base : ```bash # Voir ce qui serait compressé (dry-run) php bin/console app:compress-pdf --dry-run # Compresser tous les PDFs php bin/console app:compress-pdf ``` ## Commandes utiles Pour restart le container ```bash make restart ``` Pour lancer les TU ```bash make test ``` Pour accéder au container et lance des commandes ```bash make shell ``` Pour clear le cache Symfony ```bash make cache-clear ```