Skip to content
Snippets Groups Projects
README.md 3.02 KiB
Newer Older
# Projet de la version V2 de l'application des ORE.
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

Le projet est constitué de 2 sous projet :
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

- La partie serveur qui fournit les web services de l'application
- La partie UI qui fournit une interface VueJS permettant d'interroger ces Web Services.
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

## Objectifs
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

- Utilisation de java >=10
- Suppression de la couche ORM
- Utilisation de web services
- Accès aux ressources par une interface indépendante par example VueJS, mais aussi des applications comme R-Shiny ou en attaquant directement la base de données.
- Simplification du ticket d'accès technique pour les développeurs (interface ou services)
## Environnement de développement
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

### Prérequis
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

  - JDK ≥ 21
  - maven 3
  - Docker
  - nodejs 18
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

Pour constuire le projet avec maven, l'utilisateur doit avoir le droit de démarrer de conteneurs docker.
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

Sous Linux, cela consiste à ajoute l'utilisateur au groupe `docker`
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

### Vérifier la qualité du projet
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

```bash
mvn test
```
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

### Démarrer l'interface en local
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

D'abord, il convient de démarrer la base de données. La base de données sera créée avec un role dbuser propriétaire de la base de données.
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

Pour des raisons de sécurité, il convient de créer un role technique "openAdomTechUser". En exécutant le script "src/main/resources/migration/openadom_user.sql"
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

Le docker-compose mettra à jour la base de données créée en applicant ce script.
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

```bash
 docker-compose up --build --force-recreate -d
```

Ensuite, on démarre le backend

```bash
mvn spring-boot:run
```
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

Si cela n'a pas déjà été fait, installer les dépendances du frontend
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

on se place dans le dossier ui
```bash
cd ui
```
puis on récupère les sources
```bash
npm ci
```
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

Enfin, on démarre le frontend
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

```bash
npm run serve
```
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

### Accéder à la base de données
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

En ligne de commande :
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

```bash
psql -h localhost -U openAdomTechUser openadom
```
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

Via pgAdmin :
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

```
http://localhost:8083/
```
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

Pour s'authentifier sur PGAdmin, l'identifiant est `si-ore-developpement@list.forge.codelutin.com` et le mot de passe est `test`.
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

Une fois authentifié dans PGAdmin, on peut accéder à la base de données en renseignant le mot de passe `xxxxxxxx`
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

### Création d'un utilisateur
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

Afin d'essayer l'application, il faut pouvoir se connecter. Il faut pour cela créer un utilisateur
```sql
-- mot de passe `xxxx`
-- openadom ne peut pas créer d'application à moins de se donner ce droit
INSERT INTO OreSiUser (id, login, password, email, accountstate,  authorizations) values ('5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9'::uuid, 'openadom','$2a$12$4gAH34ZwgvgQNS0pbR5dGem1Nle0AT/.UwrZWfqtqMiJ0hXeYMvUG', 'poussin@inrae.fr', 'active','{}');
DROP ROLE IF EXISTS "5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9";
CREATE ROLE "5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9";
COMMENT ON ROLE "5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9" IS 'openadom';
GRANT "openAdomAdmin" TO "5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9" WITH INHERIT TRUE;
GRANT "5a4dbd41-3fc9-4b3e-b593-a46bc888a7f9" TO "openAdomTechUser" WITH INHERIT TRUE;
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed

```
[Comptes utilisateurs d'openadom](src/main/resources/migration/first_roles.sql)
Rachid Yahiaoui's avatar
Rachid Yahiaoui committed