Skip to content
Snippets Groups Projects
README.md 8.21 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
Timothee P's avatar
Timothee P committed
<br>


# Système de notifications

## Vue d'ensemble
Timothee P's avatar
Timothee P committed
Notre système de notifications est conçu pour informer les utilisateurs des événements significatifs au sein de leurs projets, tels que la création, la mise à jour et la suppression de signalements, de commentaires et de pièces jointes. Ce système est configurable, permettant d'adapter les notifications aux besoins spécifiques des projets et aux préférences des utilisateurs.
Timothee P's avatar
Timothee P committed

### Caractéristiques principales
- **Modèles personnalisables** : Vous pouvez personnaliser le contenu des notifications selon vos besoins directement via l'interface d'administration, grâce à des modèles modifiables.

## Types de notifications

### Notifications groupées
- **Objectif** : Ces notifications visent à informer les abonnés de tous les événements importants au sein des projets, incluant les mises à jour des signalements, les publications de commentaires ou de documents et les modifications majeures des projets.
- **Déclencheur** : Les notifications sont envoyées périodiquement selon la configuration de la tâche périodique associée.
- **Caractéristiques Configurables** :
  - **Niveau d'envoi des notifications** : Les administrateurs peuvent configurer l'envoi des notifications pour les documents clés à un niveau globale ou par projet.
Timothee P's avatar
Timothee P committed
  - **Désactivation des notifications** : Vous pouvez désactiver les notifications pour un type de signalement via l'interface d'administration ou la configuration d'affichage de signalement dans l'application frontend. L'envoi des notifications de publication de documents clés ne sont pas impactés par ce pramétrage.
Timothee P's avatar
Timothee P committed

### Notifications de publication de documents clés
- **Objectif** : S'assurer que tous les abonnés d'un projet sont alertés lors de la publication de documents jugés essentiels ou critiques.
- **Déclencheur** : Les notifications sont envoyées périodiquement selon la configuration de la tâche périodique associée.
- **Fonctionnement** : Lors de la publication ou de l'édition d'un signalement, ainsi que lors de l'ajout de commentaires avec pièces jointes, les utilisateurs verront une option `Envoyer une notification de publication`. Cette option est décochée par défaut pour éviter les envois non désirés. En cochant cette option lors de la publication d'une pièce jointe, un événement `Document clé` est généré. Cet événement est lié à la notification spécifique qui sera envoyée aux abonnés du projet.
- **Caractéristiques Configurables** :
  - **Activation des Notifications** : Les administrateurs peuvent activer les notifications pour les publications de documents clés directement lors de la création d'un type de signalement en sélectionnant l'option `Activer la notification de publication de pièces jointes`, désactivée par défaut. L'activation de cette notification peut également être modifiée ultérieurement dans l'interface d'édition du type de signalement. Ceci est accessible via l'icône de pinceau sur la page d'accueil du projet.

### Notifications pour signalements en attente de modération
- **Objectif** : Informer les modérateurs des projets lorsque des signalements requièrent leur attention pour validation, dans le contexte des projets ayant activé la modération.
- **Fonctionnement** : Les notifications sont déclenchées automatiquement lorsque le statut d'un signalement passe à "En attente de publication", nécessitant une action de la part des modérateurs.

### Notifications de publication de signalements après modération
- **Objectif** : Communiquer avec l'auteur d'un signalement pour l'informer que sa contribution a été approuvée et publiée par un modérateur.
- **Fonctionnement** : Ces notifications sont envoyées lorsqu'un signalement change de statut de "En attente de publication" à "Publié", fournissant un retour immédiat et valorisant pour les contributeurs
<br>
<br>
Matthieu Etourneau's avatar
Matthieu Etourneau committed

DEVELOPPEMENT
=============

Général
-------

Geocontrib est un projet initié par NeoGeo.
Le code source de l'application est maintenu sur la plateforme https://git.neogeo.fr/geocontrib/.

les Mainteneurs actuels :
 - Timothée POUSSARD (Neogeo)
 - Camille BLANCHON (Neogeo)
 - Matthieu ETOURNEAU (Neogeo)
 - Angela Escobar (Neogeo)

La documentation de l'application 
*********************************

https://www.onegeosuite.fr/docs/team_geocontrib

Pratiques et règles de developpement
------------------------------------

Afin de partager des règles communes de développement et faciliter l'intégration de 
nouveau code, veuillez lire les recommandations et bonnes pratiques recommandées pour contribuer
au projet GeoContrib.

Git
***

 - Faire une demande de contribution en envoyant un mail à metourneau@neogeo.fr
 - Un compte vous sera créé sur notre plateforme gitlab
 - Faire un fork de l'application
 - Faire des merge requests vers la branch ``develop``
 - Faire des ``git pull`` avant chaque développement et avant chaque commit