PnX-SI / GeoNature-citizen

Portail web d'inventaire citoyen de la biodiversité à destination du grand public
https://pnx-si.github.io/GeoNature-citizen/
GNU Affero General Public License v3.0
19 stars 29 forks source link

MCD GN-citizen #3

Closed camillemonchicourt closed 7 months ago

camillemonchicourt commented 6 years ago

2018-07-18-mcd

Première réflexion sur le MCD. En orange les référentiels avec lesquels l'application interagirait. En vert les schémas de GeoNature avec lesquels elle pourrait communiquer.

A voir néanmoins comment permettre d'utiliser cette application indépendamment de GeoNature.

camillemonchicourt commented 6 years ago

A voir par contre si on a plusieurs programmes de collecte citoyenne, alors il faudra ajouter une table gn_citizen.t_programs avec une FK dans gn_citizen.t_observations y faisant référence.

gn_citizen.t_programs contiendrait un id_program, program_name, active (boolean), description, id_list_taxons

camillemonchicourt commented 6 years ago

Après discussion :

gildeluermoz commented 6 years ago

Oups, je n'ai pas participé aux discussions mais cette approche me semble ambigüe. Je ne vois pas la logique de faire un module citizen qui soit un module geonature tout en pouvant être indépendant de geonature.

Vu de loin je dirais qu'il y a 2 options 1/ citizen est un vrai module de geonature, il est donc fortement intégré et on peut utiliser tout ce qui vient du cœur et des référentiels. Il ne peut pas fonctionner sans geonature dans ce cas. 2/ citizen doit pouvoir vivre sans geonature et dans ce cas il a son propre MCD, complet, avec sa liste de taxon et éventuellement d'utilisateurs, de programmes, etc... Et peut-être son back-office, voire sa propre base de données.

Dans le cas 2, c'est une application totalement autonome. Pour faire le lien avec geonature il faut envisager un paramètre + une configuration spécifique optionnelle permettant à citizen d'écrire dans la synthèse d'un geonature via l'api de la synthèse. Une bonne approche serait de faire une web API synthèse. Cette web API étant capable décrire dans la synthèse en prenant comme source un json normé. Ainsi citizen ou n'importe quelle autre application externe peut écrire dans la synthèse si elle sait fabriquer et transmettre ce json normé à la webapi synthèse (en s'authentifiant bien sûr). Reste à décider de la place que prendront ces données dans la synthèse car elles n'auront ni cruved, ni métadonnées (ou plutôt un cruved et des métadonnées toutes identiques et correspondant à une source externe non définie). A voir si on peut envisager que ces métadonnées et éventuellement un cruved soit transmis via l'authentification.

Dans tous les cas si citizen doit produire des données dans la synthèse il faut établir des correspondances avec toutes les nomenclatures du standard occurrence de taxon présentes dans la synthèse (nomenclature_default_values) car dans le mcd actuel de citizen il n'y a aucun cd_nomenclature.

camillemonchicourt commented 6 years ago

Ce n'est pas un module GeoNature. C'est un application indépendante de GeoNature mais connectable à GeoNature. Comme GN-atlas mais au lieu d'être en aval, elle est en amont.

Donc c'est plutôt le cas 2, mais comme GN-atlas il dépendra de TaxHub (de manière optionnelle mais fortement conseillée pour pouvoir gérer les médias, les descriptions, les listes...) mais pas de GeoNature.

En effet la synthèse aura une API donc on a imaginé l'utiliser de l'extérieur (pour des get mais aussi des post, update, delete avec un token). Cependant, dans notre cas, si quelqu'un veut utiliser GN-citizen avec GeoNature, on a plutôt imaginer intégrer son schéma gn_citizen dans la BDD de GeoNature et faire un trigger vers la synthèse comme depuis les autres sources. En plus de simplifier les choses, cela permettrait aussi de pouvoir bénéficier des tables verticales d'historique, de validation...

Concernant les données dans la Synthèse, comme beaucoup de données partenaires, elles n'auront pas de CRUVED, et peu de nomenclatures renseignées que l'on mettra alors à Non renseigné, à moins d'avoir une valeur globale certaine (comme pour StatutObservation=Présent et quelques autres). Comme les données partenaires elles seront associées à des jeux de données, des cadres d'acquisition, des sources...

Pour le moment, pour faire simple, on a prévu de pouvoir ne pas imposer l'authentification, voire même de la désactiver totalement. Et pour limiter les dépendances, de ne pas fonctionner avec UsersHub mais avec une gestion interne des utilisateurs. Néanmoins pour une meilleure intégration avec GeoNature, pour bénéficier d'un id_role, voire d'un id_organisme, cette piste pourra être réétudiée dans un second temps, avec les conséquences que cela entraîne. Pour le moment, ce n'est pas mur.

camillemonchicourt commented 6 years ago

Actuellement le MCD implémenté est https://github.com/PnX-SI/GeoNature-citizen/blob/dev/mcd.png

lpofredc commented 6 years ago

Merci @camillemonchicourt , C'est un MCD provisoire en cours de construction. Vu pour la proposition du shema ref_geo. En effet, autant partir sur la même base.

camillemonchicourt commented 6 years ago

Oui OK, super. Bravo pour l'avancement des développements.

lpofredc commented 6 years ago

Nouvelle Mise à jour du MCD

camillemonchicourt commented 6 years ago

OK merci. Il ne devrait pas y avoir de lien entre sights et li_municipalities. li_municipalities est une extension de l_areas. Donc ça devrait être l'inverse. Un lien entre sights et l_areas. Et li_municipalities étant lié à l_areas, elle permet d'avoir des infos complémentaires sur la commune quand le zonage est de type "Commune".

lpofredc commented 5 years ago

Dernière version de mcd gnc_core

lpofredc commented 5 years ago

Dernière mise à jour du MCD. Ajout d'une table des correspondances des médias avec les observations pour plus de souplesse (en prévision de pouvoir poster plus de média par observation). Table automatiquement alimentée par la fonction save_upload_files.

mcd

camillemonchicourt commented 5 years ago

Pour les médias, ne faut-il pas ajouter une légende (title), un auteur et éventuellement une source et une licence ?

lpofredc commented 5 years ago

Si, en effet:

camillemonchicourt commented 5 years ago

Pour moi ce sont tous des champs texte optionnels :

Mais tout ça est peut-être hors cadre pour des médias illustrant une observation.