Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gn_mobile_occtax - Définition du projet #1

Closed
TheoLechemia opened this issue Feb 11, 2019 · 2 comments
Closed

gn_mobile_occtax - Définition du projet #1

TheoLechemia opened this issue Feb 11, 2019 · 2 comments

Comments

@TheoLechemia
Copy link
Member

TheoLechemia commented Feb 11, 2019

CCTP : https://geonature.fr/documents/cctp/2018-08-CCTP-GeoNature-mobile-v2.pdf

Ce dépôt accueillera le code Java - Android de l'application mobile Occtax.
L'application mobile utilisera la web-api de l'application de synchro mobile (https://github.com/PnX-SI/gn_mobile_core) ainsi que la web-api d'Occtax inclue dans le dépôt du coeur de GeoNature (https://github.com/PnX-SI/GeoNature/tree/master/contrib/occtax/backend).

L'application devra embarquer les données suivantes:

Un fichier sqllite fourni par l'api de synchro:

  • table des taxons (sous forme d'une vue ?)
  • table des observateurs
  • table des nomenclatures (on embarque toutes les nomenclatures)
  • table des nomenclatures par règne et groupe_inpn (pour filtrer les listes déroulante après le choix du taxon)
  • table des unités géographiques
  • table des couleurs par taxon
  • table des jeux de données (est-ce qu'on liste tous les JDD ? ou une liste filtrée (qui nécessite de récupérer le CRUVED et donc d'être connecté ) ?

Un fichier sqllite fourni l'api occtax:

  • table des valeur par défaut pour toutes les nomenclatures (pr_occtax.defaults_nomenclatures_value)

Pour tous ces besoins:
Utiliser des vues pour rendre le mobile plus indépendante ? Ou utiliser au max les routes existantes pour dupliquer le moins possible le code ?

L'application aura 3 niveaux de paramètres:

  • Paramètre global en base de données (nomenclatures par défault pour chaque type)
  • Paramètre applicatif (id_organisme, id_liste_taxon, zoom et emprise carto etc...)
  • Paramètre utilisateur (observateur par défaut, nomenclature par défaut propre à l'utilisateur)

Evolutions nécessaire dans la web-api occtax

  • La route de POST n'est actuellement accessible que via un token fourni par l'application WEB. Une nouvelle route, utilisant une logique factorisée, doit permettre d'effectuer un POST dans Occtax à partir d'un token applicatif (fourni via la configuration de l'application mobile)
  • Une autre possibilité évoquée est protégé la route du POST en vérifiant un identifiant unique du téléphone fournis par le JSON. Côté base on garde une liste à jour des "ID téléphone" (identifiant IMEI) étant autorisé à utiliser l'API.
  • En web, le calcul de l'altitude est effectué côté client (via l’interrogation d'un service GeoNature), la route POST du mobile devra effectuer ce calcul puisqu'il n'est envisageable que l'application mobile le fasse.

Calcul des couleurs par taxon

Un travail en base est nécessaire pour ré-implémenter la fonctionnalité du calcul des couleurs par taxon dans GeoNature v2 (en utilisant le ref_geo). Le travail est assuré par l'équipe de dev de GeoNature.

Interface

Vu le nombre important de champs présents dans la nouvelle version d'Occtax, il est envisagé de simplifier au maximum la saisie en limitant les champs affichés. Des valeurs par défaut sont poussées dans tous les champs. Un mode "avancé" permet changer ces valeurs . Un écran final récapitule tous les champs remplis, pour pouvoir éventuellement y revenir.

@TheoLechemia TheoLechemia changed the title gn_mobile_occtax gn_mobile_occtax - Définition du projet Feb 11, 2019
@TheoLechemia
Copy link
Member Author

La liste des champs du standard occurrence de taxon tels qu'elle est implémentée dans GeoNature:

Relevé:

id_releve_occtax bigserial NOT NULL,
unique_id_sinp_grp uuid NOT NULL (calculé en base),
id_dataset integer NOT NULL,
id_digitiser integer,
observers_txt character varying(500) (si pas d'id_role),
id_nomenclature_obs_technique integer NOT NULL,
id_nomenclature_grp_typ integer NOT NULL, -- Correspondance nomenclature INPN = Type de regroupement
date_min timestamp without time zone NOT NULL DEFAULT now(),
date_max timestamp without time zone NOT NULL DEFAULT now(),
hour_min time without time zone,
hour_max time without time zone,
altitude_min integer (à calculer par l'API) ,
altitude_max integer (à calculer par l'API),
meta_device_entry character varying(20),
comment text,
geom_local geometry(Geometry,2154): (calculé en trigger)
geom_4326 geometry(Geometry,4326),
"precision" integer DEFAULT 100

Occurrence

id_occurrence_occtax bigserial NOT NULL,
unique_id_occurence_occtax uuid NOT NULL (calculé en base),
id_releve_occtax bigint NOT NULL,
id_nomenclature_obs_meth integer NOT NULL, -- Correspondance nomenclature INPN = methode_obs
id_nomenclature_bio_condition integer NOT NULL, -- Correspondance nomenclature INPN = etat_bio
id_nomenclature_bio_status integer, -- Correspondance nomenclature INPN = statut_bio
id_nomenclature_naturalness integer, -- Correspondance nomenclature INPN = naturalite
id_nomenclature_exist_proof integer, -- Correspondance nomenclature INPN = preuve_exist
id_nomenclature_diffusion_level integer, -- Correspondance nomenclature INPN = niv_precis
id_nomenclature_observation_status integer, -- Correspondance nomenclature INPN = statut_obs
id_nomenclature_blurring integer, -- Correspondance nomenclature INPN = dee_flou
id_nomenclature_source_status integer, -- Correspondance nomenclature INPN = statut_source: id = 19
determiner character varying(255),
id_nomenclature_determination_method integer, -- Correspondance nomenclature GEONATURE = meth_determin
cd_nom integer,
nom_cite character varying(255),
meta_v_taxref character varying(50) DEFAULT 'SELECT gn_commons.get_default_parameter(''taxref_version'')'::character varying,
sample_number_proof text,
digital_proof text,
non_digital_proof text,
comment character varying,

Dénombrement

id_counting_occtax bigint serial NOT NULL DEFAULT
unique_id_sinp_occtax uuid NOT NULL (calculé en base),
id_occurrence_occtax bigint NOT NULL,
id_nomenclature_life_stage integer NOT NULL, -- Correspondance nomenclature INPN = stade_vie (10)
id_nomenclature_sex integer NOT NULL, -- Correspondance nomenclature INPN = sexe (9)
id_nomenclature_obj_count integer NOT NULL, -- Correspondance nomenclature INPN = obj_denbr (6)
id_nomenclature_type_count integer, -- Correspondance nomenclature INPN = typ_denbr (21)
count_min integer,
count_max integer,

Observateur(s) d'un relevé

unique_id_cor_role_releve uuid NOT NULL (calculé en base),
id_releve_occtax bigint NOT NULL,
id_role integer NOT NULL,

Voir la démo (demo.geonature.fr/geonature) pour les champs à mettre en "avancé".

  • Tous les champs de nomenclatures sont fournis avec une valeur par défaut déterminée dans la table pr_occtax.defaults_nomenclatures_value
  • Les listes déroulantes s'adaptent en fonction du taxon précédemment saisi, à partir de la table ref_nomenclatures.cor_taxref_nomenclature (filtre sur le règne et le groupe2_inpn)

@gildeluermoz
Copy link

L'application mobile utilisera la web-api de l'application de synchro mobile (https://github.com/PnX-SI/gn_mobile_core) ainsi que la web-api d'Occtax inclue dans le dépôt du coeur de GeoNature (https://github.com/PnX-SI/GeoNature/tree/master/contrib/occtax/backend).

A voir s'il ne faut pas un seul point d'entrée qui ensuite sait comment tout écrire/récupérer

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants