---
# System prepended metadata

title: Technologie utilisé

---

## But de l'application :
* Permet la postulation en ligne d'apprentis
    * Permet la saisis d'information
    * Permet de joindre des fichiers

## Birds eyes
a faire.
## Structure 
L'architecture logicielle utilisé dans ce projet est "REST"/"RESTful"
# Technologie utilisé 

## API 
**Vue.js :** un Framework JavaScript conçu pour développer des interfaces d’application web
SPA, c’est‐à‐dire à page unique.

**@vue/cli** : un outils en ligne de commande (CLI) qui permet la génération de projets Vue.js en suivant une structure de base.

**Vue Router** : Permet d'interpréter l'URL afin de générer les composants selon les routes et paramètre fournis

**Vuex** : c'est un module pour Vue.js qui permet de simplifier la structure de la dépendance des composants Vue.js entre peux.

**Vuetify** : c'est un framework de composants CSS écrit en Vue.js

**Axios** : c'est une librairie JavaScript qui permet d'effectuer des requêtes AJAX (XMLHttpRequest - XHR).Permet l’interaction client‐serveur sans rafraichissement de page.Utilisé dans le projet pour les requêtes vers l'API

**ESLint** : un linter JavaScript
## Authentification
On utilise **Tequila** qui est le service d'authentification web de l'EPFL.

### Token 
**Firebase/php-jwt** : libraire qui permet de transmettre des informations de manière sécurisé et de faire office d'authentifcation du client lors des requêtes à l'API
![](https://i.imgur.com/hWPZSZr.png)

## Serveur
**Node.js** sera utiliser dans le projet surtout pour gestionnaire de paquets : NPM

## Modèle-vue-contrôleur

### Composer
c'est un gestionnaire de paquet pour PHP. Utilisé dans ce projet afin d'installer le framework Lumen et ses dépendances

### Lumen 
* Un modèle (Model) contient les données à afficher.
* Une vue (View) contient la présentation de l'interface graphique.
* Un contrôleur (Controller) contient la logique concernant les actions effectuées par l'utilisateur.

Ici nous utilison Lumen qui est un micro-Framework basé sur Laravel, qui n'utilise pas les éléments de la partie "view" 
## Base de donnée
![](https://i.imgur.com/qhwgNJy.png)

## API
![](https://i.imgur.com/jSa5Kto.png)

# PROD

http://localhost:8180 : pour le formulaire d'application.

http://localhost:8080 : pour l'application de gestion.

http://localhost:8181 : pour l'API.

## Mise en place

J'ai modifier le fichier .env an ajoutant un groupe dans le quelle j'avais des droits  :
```
TEQUILA_REQUIRE_PARAMS="groupe dans le quelle j'ai des droits"
```