Compare commits

..

7 Commits

Author SHA1 Message Date
6845a6a332 fix : README.md 2026-04-10 11:55:44 +02:00
40f8bb40c9 fix : README.md 2026-04-10 11:41:23 +02:00
c84aa27d2c fix : README.md 2026-04-10 11:21:04 +02:00
77b9323615 feat : update CHANGELOG.md 2026-04-10 11:18:06 +02:00
6bf194b280 feat : update CHANGELOG.md 2026-04-10 11:00:36 +02:00
cdc9c33f4e feat : update CHANGELOG.md 2026-04-10 10:53:29 +02:00
b45e2d3a95 feat : écran d'ajout bovin + feed bovin + fix pesées expéditions 2026-04-10 10:29:16 +02:00
2 changed files with 19 additions and 62 deletions

View File

@@ -1,63 +1,50 @@
# Projet Ferme t # Projet Ferme
## Installation du projet ## Installation du projet
### Windows ### Windows
Pour windows, il faut installer le WSL2, Ubuntu, docker et nvm. 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) Il suffit de suivre cette [doc](https://wiki.malio.fr/bookstack/books/environnement-de-dev/chapter/windows)
### Linux ### Linux
Pour linux, il faut installer docker et nvm. 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) Il suffit de suivre cette [doc](https://wiki.malio.fr/bookstack/books/environnement-de-dev/chapter/linux)
### Installation du projet ### Installation du projet
Une fois les prérequis installés, il suffit de cloner le projet et de lancer les commandes suivantes Une fois les prérequis installés, il suffit de cloner le projet et de lancer les commandes suivantes
```bash ```bash
make start make start
make install 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. 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 global ### Configuration global
Pour les variables d'environnement, il faut demander un .env.local pour le backend et un .env pour le frontend à votre collègue. Pour les variables d'environnement, il faut demander un .env.local pour le backend et un .env pour le frontend à votre collègue.
Vérifier que dans le .env.local, vous avez : Vérifier que dans le .env.local, vous avez :
* APP_SECRET (à généré dans le conteneur avec la commande php -r "echo bin2hex(random_bytes(32));" et doit être différent de celui de votre collègue, puisque utilisé pour signer des tokens)
- APP_SECRET (à généré dans le conteneur avec la commande php -r "echo bin2hex(random_bytes(32));" et doit être différent de celui de votre collègue, puisque utilisé pour signer des tokens) * DATABASE_URL="postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:${POSTGRES_PORT}/${POSTGRES_DB}?serverVersion=16&charset=utf8"
- DATABASE_URL="postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:${POSTGRES_PORT}/${POSTGRES_DB}?serverVersion=16&charset=utf8" * PONT_BASCULE_BYPASS (doit être à true en dev)
- PONT_BASCULE_BYPASS (doit être à true en dev) * PONT_BASCULE_URL
- PONT_BASCULE_URL * JWT_SECRET_KEY (à générer avec la commande php bin/console lexik:jwt:generate-keypair)
- JWT_SECRET_KEY (à générer avec la commande php bin/console lexik:jwt:generate-keypair) * JWT_PUBLIC_KEY
- JWT_PUBLIC_KEY * JWT_PASSPHRASE (à généré dans le conteneur avec la commande php -r "echo bin2hex(random_bytes(32));")
- JWT_PASSPHRASE (à généré dans le conteneur avec la commande php -r "echo bin2hex(random_bytes(32));") * COOKIE_SECURE=0 (en dev 0 et en prod 1. Si c'est du http, laisser en 0)
- COOKIE_SECURE=0 (en dev 0 et en prod 1. Si c'est du http, laisser en 0)
Vérifier que dans le .env du dossier frontend, vous avez : Vérifier que dans le .env du dossier frontend, vous avez :
* NUXT_PUBLIC_API_BASE="http://localhost:8080/api"
- NUXT_PUBLIC_API_BASE="http://localhost:8080/api"
### Configuration xdebug ### Configuration xdebug
Pour configurer xdebug, il faut ajouter un serveur sur phpstorm. <br> Pour configurer xdebug, il faut ajouter un serveur sur phpstorm. <br>
Pour cela, il faut aller dans **Settings > PHP > Servers** <br> Pour cela, il faut aller dans **Settings > PHP > Servers** <br>
* Name : ferme-docker
- Name : ferme-docker * Host : localhost
- Host : localhost * Port : 8080
- Port : 8080 * Path : File/Directory -> l'endroit où est stocké votre projet et le path -> /var/www/html
- 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 Pour que xdebug fonctionne sur windows, il faut modifier la variable **XDEBUG_CLIENT_HOST** par votre ip local
## Utilisation du projet ## Utilisation du projet
### Backend ### Backend
L'api est disponible sur http://localhost:8080/api L'api est disponible sur http://localhost:8080/api
Pour la bdd toutes les infos sont dans le fichier **docker/.env.docker.local** Pour la bdd toutes les infos sont dans le fichier **docker/.env.docker.local**
Vous pouvez modifier le port si nécessaire. Vous pouvez modifier le port si nécessaire.
@@ -66,22 +53,17 @@ La bdd est déja pré-configuré dans PhpStorm, il suffit de rentrer les infos d
C'est un bdd local dans le docker. C'est un bdd local dans le docker.
### Frontend ### Frontend
Pour le frontend, il suffit de taper la commande suivante qui va lancer le serveur de dev Pour le frontend, il suffit de taper la commande suivante qui va lancer le serveur de dev
```bash ```bash
make dev-nuxt make dev-nuxt
``` ```
Le front sera accessible sur http://localhost:3000 Le front sera accessible sur http://localhost:3000
### Authentification ### Authentification
Ce projet utilise l'authentification JWT avec un cookie httpOnly (LexikJWTAuthenticationBundle). Ce projet utilise l'authentification JWT avec un cookie httpOnly (LexikJWTAuthenticationBundle).
Le frontend ne lit jamais directement le token, le navigateur envoie automatiquement le cookie. Le frontend ne lit jamais directement le token, le navigateur envoie automatiquement le cookie.
### Login flow ### Login flow
- Frontend envoie les identifiants à: - Frontend envoie les identifiants à:
- `POST /api/login_check` - `POST /api/login_check`
- Backend returns: - Backend returns:
@@ -91,26 +73,20 @@ Le frontend ne lit jamais directement le token, le navigateur envoie automatique
- La déconnexion utilise `POST /api/logout` et redirige vers `/login`. - La déconnexion utilise `POST /api/logout` et redirige vers `/login`.
### Fixtures ### Fixtures
Pour lancer les fixtures (Attention sa purge la bdd complètement) Pour lancer les fixtures (Attention sa purge la bdd complètement)
```bash ```bash
php bin/console doctrine:fixtures:load php bin/console doctrine:fixtures:load
``` ```
Attention cette commande est dangereuse, à utiliser que pour les débuts de la prod ou en recette. Attention cette commande est dangereuse, à utiliser que pour les débuts de la prod ou en recette.
Dans un premier temps pour remplir les listes, vous pouvez lancer la commande symfony Dans un premier temps pour remplir les listes, vous pouvez lancer la commande symfony
```bash ```bash
php bin/console app:seed php bin/console app:seed
``` ```
La commande va faire une update ou une création en fonction des data existante. La commande va faire une update ou une création en fonction des data existante.
## Livraison en recette ## Livraison en recette
### Préparatifs ### Préparatifs
Avant de déployer, il faut penser à ajouter les variables d'env s'il y a des changements/modifications. Avant de déployer, il faut penser à ajouter les variables d'env s'il y a des changements/modifications.
Le .env se trouve /var/www/ferme/.env Le .env se trouve /var/www/ferme/.env
@@ -119,62 +95,43 @@ Sur la machine, il est disponible dans /usr/local/bin/deploy-ferme <br>
Pour le modifier, il faut copier le contenu du deploy-release.sh dans le deploy-ferme Pour le modifier, il faut copier le contenu du deploy-release.sh dans le deploy-ferme
### Livraison ### Livraison
Sur le serveur de recette, il suffit d'utiliser cette commande pour livrer Sur le serveur de recette, il suffit d'utiliser cette commande pour livrer
```bash
```bash
/usr/local/bin/deploy-ferme vX.Y.Z /usr/local/bin/deploy-ferme vX.Y.Z
``` ```
## Commandes utiles ## Commandes utiles
Pour restart le container Pour restart le container
```bash ```bash
make restart make restart
``` ```
Pour lancer les TU Pour lancer les TU
```bash ```bash
make test make test
``` ```
Pour accéder au container et lance des commandes Pour accéder au container et lance des commandes
```bash ```bash
make shell make shell
``` ```
Pour clear le cache Symfony Pour clear le cache Symfony
```bash ```bash
make cache-clear make cache-clear
``` ```
Faire une migration Faire une migration
```bash ```bash
make migration-migrate make migration-migrate
``` ```
Pour générer un password pour un user Pour générer un password pour un user
```bash ```bash
make shell make shell
php bin/console security:hash-password php bin/console security:hash-password
``` ```
Sélectionner entity User, taper sont mdp, le copier et l'ajouter dans l'insert de bdd suivant : Sélectionner entity User, taper sont mdp, le copier et l'ajouter dans l'insert de bdd suivant :
```sql ```sql
INSERT INTO "user" (username, roles, password) INSERT INTO "user" (username, roles, password)
VALUES ('Mon user', '["ROLE_USER"]', 'Mon mdp hashé'); VALUES ('Mon user', '["ROLE_USER"]', 'Mon mdp hashé');
``` ```
## Gestion des logs ## Gestion des logs
Pour suivre les logs en temps réel : Pour suivre les logs en temps réel :
* tail -f var/log/dev.log
- tail -f var/log/dev.log * tail -f var/log/prod.log
- tail -f var/log/prod.log

View File

@@ -1,2 +1,2 @@
parameters: parameters:
app.version: '0.0.83' app.version: '0.0.81'