Nicolas Doby bb19bca946 | ||
---|---|---|
backend | ||
frontend | ||
.gitignore | ||
LICENSE | ||
README.md | ||
docker-compose.yml |
README.md
Boussole PLUSS
Le projet backend contient la partie backend de la Boussole PLUSS. Le projet frontend, le frontend communiquant avec le backend.
Installation
En utilisant docker-compose:
docker-compose build
en modifiant au préalable l'argument BACKEND_BASE_URL du fichier
docker-compose.yml pour spécifier l'URL sur laquelle pointera le backend.
docker-compose up
pour lancer le frontend et backend.
Exemple de configuration Nginx compatible avec le docker-compose de ce projet (URL_EXTERNE est à remplacer par l'URL publique) :
upstream springboot {
server 127.0.0.1:8191;
}
server {
server_name URL_EXTERNE;
location / {
proxy_pass http://127.0.0.1:8190;
}
location /api {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-NginX-Proxy true;
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://springboot;
}
error_log /var/log/nginx/pluss_error.log;
listen [::]:80;
listen 80;
}
Ceci est un exemple à ne pas utiliser sur un environnement de production.
Administration
Par la suite, __URL__
est l'URL du backend, __USER__
et __PASSWORD__
le nom de compte et mot de passe à créer / utiliser.
Créer un nouveau compte
curl --location --request POST '__URL__/api/auth/signup' \
--header 'Content-Type: application/json' \
--data-raw '{
"username": "__USER__",
"password": "__PASSWORD__"
}'
Se connecter
curl --location --request POST '__URL__/api/auth/signin' \
--header 'Content-Type: application/json' \
--data-raw '{
"username": "__USER__",
"password": "__PASSWORD__"
}'
Cet appel renverra un token à réutiliser pour l'ensemble des requêtes. Par exemple :
{
"token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJkZW1vIiwiaWF0IjoxNjY1NjY5NjUyLCJleHAiOjE2NjU2NzMyNTJ9.i426thZKL4-JvOt9ZeG2D1O6O-xlSiPoCMiKysHYzCkHVNrnxKetq8xKRNCTnbpLV-wagpOw2g-om34k2jtHIw",
"refreshToken": "de73adcb-a5a8-4675-8bb3-5536651be0f9",
"id": 11,
"username": "demo"
}
Afficher les balises (axe)
curl --location --request GET '__URL__/api/axes' \
--header 'Authorization: Bearer TOKEN'
Le TOKEN est à remplacer par celui reçu.
Ajouter une question à un axe
curl --location --request POST '__URL__/api/questions' \
--header 'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '
{
"axe": "URL_BALISE_1",
"label": "Question 1",
"description": "Description .."
}
'
Il faut spécifier URL_BALISE_1 comme étant l'URL de la balise 1 récupérer dans la requête précédente.
Par exemple : __URL__/axes/1