Skip to content
Snippets Groups Projects
README.md 3.43 KiB
Newer Older
![alt text](public/img/logo-geocontrib.png?raw=true)

# geocontrib-frontend

## Project setup
```
npm install
```

### Préparation des variables d'environnement
Créer un fichier .env à la racine du projet puis ajouter les variables comme indiquer dans l'exemple ci-dessous (à adapter en fonction de l'environnement d'exploitation).


```
Sébastien DA ROCHA's avatar
Sébastien DA ROCHA committed
BASE_URL=/geocontrib/
Sébastien DA ROCHA's avatar
Sébastien DA ROCHA committed
```
Sébastien DA ROCHA's avatar
Sébastien DA ROCHA committed
### Configuration par le config.json

Sébastien DA ROCHA's avatar
Sébastien DA ROCHA committed
```json
Sébastien DA ROCHA's avatar
Sébastien DA ROCHA committed
{
    "BASE_URL":"/geocontrib/",
    "DOMAIN":"/geocontrib/",
    "VUE_APP_LOCALE":"fr-FR",
    "VUE_APP_APPLICATION_NAME":"GéoContrib",
    "VUE_APP_APPLICATION_ABSTRACT":"Application de saisie d'informations géographiques contributive",
    "VUE_APP_APPLICATION_FAVICO":"/geocontrib/favicon.ico",
    "VUE_APP_LOGO_PATH":"/geocontrib/img/logo-neogeo-circle.png",
Sébastien DA ROCHA's avatar
Sébastien DA ROCHA committed
    "VUE_APP_DJANGO_BASE":"",
    "VUE_APP_DJANGO_API_BASE":"/geocontrib/api/",
Timothee P's avatar
Timothee P committed
    "VUE_APP_CATALOG_NAME": "Datasud", => renseigne le nom du catalogue dans le bouton importer depuis le catalogue
    "VUE_APP_IDGO": true, => si le bouton importer depuis le catalogue doit être affiché ou pas
    "VUE_APP_RELOAD_INTERVAL": 15000,
    "VUE_APP_DISABLE_LOGIN_BUTTON":false,
    "VUE_APP_LOGIN_URL":"",
Timothee P's avatar
Timothee P committed
    "DEFAULT_BASE_MAP_SERVICE": "https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png",
    "DEFAULT_BASE_MAP_OPTIONS": {
Sébastien DA ROCHA's avatar
Sébastien DA ROCHA committed
            "attribution": "&copy; contributeurs d'<a href='https://osm.org/copyright'>OpenStreetMap</a>",
            "maxZoom": 20
    },
Sébastien DA ROCHA's avatar
Sébastien DA ROCHA committed
    "DEFAULT_MAP_VIEW" : {
        "center": [47.0, 1.0],
        "zoom": 4
    },
    "GEOCODER_PROVIDERS" : {
        "ADDOK": "addok",
        "NOMINATIM": "nominatim",
        "PHOTON": "photon"
    },
    "SELECTED_GEOCODER" : {
        "PROVIDER": "addok"
    }
}
### Utilisation sans installation du backend
Sébastien DA ROCHA's avatar
Sébastien DA ROCHA committed

Il est possible d'utiliser un serveur HTTP local pour utiliser l'API des instances en ligne, sans avoir de problèmes de CORS, pour cela se référer fichier : conf_apache_dev.md
### Compiles and hot-reloads for development

Pour éviter les problèmes de Cors en dév, (car backend sur serveur différent de frontend, différent en prod car même serveur), on utilise un proxy qui s'occupe de renseigner les CORS: https://github.com/garmeeh/local-cors-proxy#local-cors-proxy  

**À installer avant de lancer le serveur !**  
```
npm install -g local-cors-proxy
```

La commande serve lance les deux serveurs en parallèle dans le même terminal.
```
npm run serve
```
**Pour tester les fonctionnalités d'import il faut activer redis-server et celery !** 
Si redis et celery sont déjà installé, ouvrir un terminal et démarrer redis.
```
redis-server
```
Ouvrir un autre terminal dans le répertoire du projet backend et activer l'environnement virtuel, puis démarrer celery
```
celery -A config worker -l info
```

### Compiles and minifies for production
```
npm run build
```

### Lints and fixes files
```
npm run lint
```

### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).  

---
## Docker

Lancer un build
```
npm run build
```
Créér une image docker
```
docker-compose build
``` 
puis 
```
docker-compose push
```
Aller sur la VM geocontrib, (demander l'accès si besoin), aller dans ```/opt/geocontrib/[user]``` et ensuite :
```
docker-compose pull
```
et
```
docker-compose up -d
```
---
## Notes
Timothee P's avatar
Timothee P committed

### Version
Node => v14.18.2
### Changement par rapport au projet django
- Base.html => App.vue
- Découpage en composants