<p align="center">
    <a href="https://sofianelasri.fr" target="_blank"><img src="a1readme-assets/orange-short.png" height="45"></a>
    <a href="https://rann-graphic-design.fr" target="_blank"><img src="a1readme-assets/rann-logo-01.png" height="45"></a>
</p>

<p align="center">
<a href="https://gitlab.sl-projects.com/SofianeLasri/rann-graphic-design-website/-/pipelines"><img src="https://gitlab.sl-projects.com/SofianeLasri/rann-graphic-design-website/badges/master/pipeline.svg" alt="Pipeline"></a>
<a href="https://laravel.com"><img src="https://img.shields.io/badge/Based_on_Laravel-FF2D20?logo=laravel&logoColor=white" alt="Laravel"></a>
<a href="https://wakatime.com/badge/user/018da7b9-5ddd-4615-a805-e871e840191c/project/5c1ca102-fdc6-4be1-8454-a2e0c8042ca2"><img src="https://wakatime.com/badge/user/018da7b9-5ddd-4615-a805-e871e840191c/project/5c1ca102-fdc6-4be1-8454-a2e0c8042ca2.svg" alt="wakatime"></a>
</p>

# Site vitrine Rann Graphic Design

## Installation

Docker est nécessaire pour lancer l'environnement de dev.

Lancer la commande `docker-compose up -d` pour lancer les containers. Le container principal installe automatiquement
les dépendances du projet, mais il est nécessaire de lancer les commandes suivantes s'il s'agit d'une première
installation :

- `cp .env.example .env`
- `php artisan key:generate`
- `php artisan migrate`

**NOTE POUR OUINEDAUSE :** Il faut lancer composer avec `composer install --ignore-platform-reqs` pour éviter les erreurs d'incompatibilité.

## Information Font Awesome

L'utilisation de Font Awesome sur les vues Blade est possible via l'utilisation du composant spécialement créé pour
l'occasion. Il est possible de l'utiliser de la manière suivante :

```html
<x-font-awesome icon="bars" type="solid"/>
```

Pour des raisons d'optimisation, les icônes sont enregistrées dans un fichier de configuration généré à partir du fichier
manifest de Font Awesome, converti en tableau PHP.

En raison de l'énorme taille du fichier, l'IDE n'est pas en mesure de l'indéxer correctement, et d'ailleurs il est 
déconseillé de le faire. Les manipulations de ce fichier sont très lourdes et ne doivent être faites qu'en cas de 
nécessité absolue.

Actuellement, la version de Font Awesome utilisée est la **6.6.0** (*Pro*) et seuls les styles **solid**, **regular** et 
**brands** sont disponibles.

## IDE

Actuellement, le projet est configuré pour fonctionner avec PHPStorm. Il est possible de l'utiliser avec d'autres IDE,
mais il faudra adapter la configuration.

### PHPStorm

Les fichiers de configuration pour PHPStorm sont déjà présents dans le projet. Tout est versionné, ne soyez pas surpris
et ne tentez pas de supprimer ces fichiers.

Vous pouvez commit les modifications apportées à ces fichiers par l'IDE.

#### Laravel Idea

Il est recommandé d'installer le plugin, il est gratuit pour les étudiants.

#### Configuration

##### Interpréteur PHP

Il est nécessaire de renseigner le container Docker comme interpréteur PHP. Pour cela, suivez les étapes suivantes :

1. Ouvrez les préférences de PHPStorm (Ctrl + Alt + S)
2. Allez dans `PHP`
3. Cliquez sur `...` à côté de `CLI Interpreter`
4. Cliquez sur `+` puis `From Docker, Vagrant, VM, Remote...`
5. Sélectionnez `Docker Compose`
6. Dans le champ `Service`, sélectionnez le container `app`
7. Cliquez sur `OK`

![Interpréteur PHP](a1readme-assets/phpstorm-interpreter.png)

Note : Pour le lifecycle, préférez l'attachement à un container existant.

##### Configuration de PHPUnit

Comme nous utilisons l'interpréteur PHP du container Docker, il est nécessaire de configurer PHPUnit pour qu'il utilise
le container Docker. Normalement, c'est automatique, mais si ce n'est pas le cas, suivez les étapes suivantes :

1. Ouvrez les préférences de PHPStorm (Ctrl + Alt + S)
2. Allez dans `PHP`
3. Cliquez sur `Test Frameworks`
4. Cliquez sur `+` puis `PHPUnit by Remote Interpreter`
5. Sélectionnez l'interpréteur PHP `app` que nous avons précédemment configuré
6. Cliquez sur `OK`

![PHPUnit](a1readme-assets/phpstorm-phpunit.png)

Note : Au cas où PHPStorm ne trouve pas Composer, il est possible de le spécifier manuellement. Son chemin est
`vendor/autoload.php`.

## Identifiants SSH

- Utilisateur : `root`
- Mot de passe : `password`