Skip to content

Commit

Permalink
Merge pull request #390 from hypsug0:review_dev_docs
Browse files Browse the repository at this point in the history
Review_dev_docs
  • Loading branch information
hypsug0 committed Mar 18, 2024
2 parents dad0f59 + 7e2b32f commit e42b63e
Show file tree
Hide file tree
Showing 10 changed files with 151 additions and 426 deletions.
18 changes: 5 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
# GeoNature-citizen

Portail d'inventaire participatif de la biodiversité à destination du grand public ([**Démo**](http://democitizen.geonature.fr)).
Portail d'inventaire participatif de la biodiversité à destination du grand public.

![logo](https://github.com/PnX-SI/GeoNature-citizen/raw/master/frontend/src/assets/logo.png)

:bangbang: **Projet en cours de développement, actuellement en version beta**

**English:**

GeoNature-citizen is a free and Open Source web solution for citizen science projects for biodiversity data collection. It is fully customizable. Your platform may be a single or a multiple program and be based on existing or adoc list of species.

The data collection is gamified to improve the user management using badges and scores. It can also be customized to accept new user to be created or not.

It is based on a fully open Source stack from PostgreSQL to Angular.
It is based on a fully open source stack from PostgreSQL to Angular.

**Francais:**

Expand Down Expand Up @@ -46,7 +44,7 @@ Documentation : https://geonature-citizen.readthedocs.io
- Flask (moteur de l'API)
- flask-jwt-extended (pour l'authentification)
- SQLAlchemy
- PostgreSQL / Postgis
- PostgreSQL / PostGIS

### Frontend

Expand All @@ -61,17 +59,11 @@ Documentation : https://geonature-citizen.readthedocs.io

### Installation

- Lancer le script install_app.sh pour installer l'application entière ainsi que ses dépendances (postgres ...)
- Au premier lancement le script créera un fichier settings.ini dans le dossier config
- Remplacer toutes les variables par vos données de votre serveur
- Relancer le script install_app.sh
- Les fichiers de conf frontend et backend seront alors créés et configurés
- Le serveur flask sera lancé via supervisor : api_geonature
- Si vous avez choisi le mode Server side pour le frontend, il sera lancé via supervisor : geonature sur le port 4000
Documentation : https://geonature-citizen.readthedocs.io

### Mise à jour

- Lancer le script update_app.sh
- Lancer le script `update_app.sh`
- Le script récupérera les modifications depuis git
- il va transpiler le front et redémarrer si besoin les services supervisor
- [Warning] si des modifications SQL ont été faites, il faudra les faire manuellement
Expand Down
57 changes: 56 additions & 1 deletion docs/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,61 @@
# CHANGELOG

## 0.99.5-dev (unreleased)
## 1.0.0 (2024-03-18)

### Main new features

* Validation module by @yaal-coop (#359 financed by [SHF](https://lashf.org))
* Registration required can be defined on each program (#278 by @xdidx)
* Refactor and improve performances on observation module (# 363 by @hypsug0)
* New photo galery on programs by @hypsug0 (#365 financed by [SHF](https://lashf.org))
* Add observation export in Admin (#349 by @mvergez)
* Creators can now edit and delete their sites and visits in Sites programs (#319 & #320 by @QuentinJouet)
* Improve Admin panel display (#329 by @mvergez)
* Use Alembic and Flask-Migrate to manage databse changes (#342 by @lpofredc)
* Remove TaxHub installation from installation scripts
* Reduce TaxHub database dependencies to use its API (#236 & #321 by @mvergez)
* Remove Ref_geo database dependencies to use Nominatim API (#236 & #321 by @mvergez)
* Improve Docker installation (by @mvergez)
* Redimensionnement de l'image d'avatar uploadée (#335 by @xdidx)

### Fixes

* Standard installation fixes (thanks to all testers > #352)
* Fix form validation on negative longitude (#360 & #261 by @pierre56 & @hypsug0)
* Fix user creation from Admin panel (#371 by @edelclaux)
* Fix default map center in Admin panel (#370 by @edelclaux)
* Fix email from (#369 by @edelclaux)

## Release note

Veuillez à ce que votre base de donnée soit bien à jour des scripts de migration de la base de donnée du dossier `data/migrations` (incluant le dernier `v0.99.4_to_1.0.0.sql`).
Vous pourrez ensuite stamper la migration de GeoNature-citizen et lancer la nouvelle procédure de mise à jour.

```sh
cd ~/gncitizen
source backend/venv/bin/activate
flask db stamp e8c1cd57ad16
flask db upgrade
```

Si un table `gnc_core.alembic_version` est présente dans la base de donnée, alors vous disposez d'une version récente de l'application avec intégration d'alembic pour gérer les migrations de base de données. Cette table a été récemment déplacée dans le schéma `public` et renommée `alembic_version_gncitizen`. Supprimez cette table et lancez les commandes précédentes.

Si vous disposez déjà d'une table `public.alembic_version_gncitizen`, lancez les commandes suivantes :

```sh
cd ~/gncitizen
source backend/venv/bin/activate
flask db upgrade
```

Pour ceux qui avaient activé la synchronisation de GeoNature-citizen avec GeoNature, la fonction `gnc_core.fct_tri_c_upsert_obstax_to_geonature()` a été corrigée. Il est donc conseillée de la supprimer et la recréer (https://github.com/PnX-SI/GeoNature-citizen/blob/1.0.0/data/addons/scripts/gnc2gn_synthese/gnc2gn_synthese.sql#L113-L374), puis de relancer la mise à jour des données avec la requête SQL : `update gnc_obstax.t_obstax set cd_nom=cd_nom;`.

## Contributors

@lpofredc, @mvergez, @QuentinJouet, @xdidx, @nobohan, @geobrun, @LoanR, @edelclaux, @xavyeah39, @samuelpriou, @camillemonchicourt


## 0.99.4-dev (2021-10-05)

**🚀 New features**

Expand Down
4 changes: 2 additions & 2 deletions docs/configuration.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ Côté backend

Les fichiers de configuration sont dans le dossier ``config``.
Le fichier à modifier est ``config.toml``.
Il peut-être créé en copiant le fichier ``config.toml.example`` \
Il peut-être créé en copiant le fichier ``config.toml.template`` \
vers ``config.toml``:

.. code-block:: bash
$ cp config.toml.example config.toml
$ cp config.toml.template config.toml
Editez alors les différents paramètres de ce fichier.

Expand Down
27 changes: 22 additions & 5 deletions docs/devs/contribute.rst
Original file line number Diff line number Diff line change
@@ -1,19 +1,29 @@
**********************
Contribuer avec GitHub
**********************

.. warning::

Aucun commit n'est réalisé directement sur le dépot principal du projet (https://github.com/PnX-SI/GeoNature-citizen).
Pour contribuer, il est nécessaire de faire un *fork* du projet, de travailler sur ce fork et de proposer des mises à jour du dépot principal par *pull request*.
Aucun commit n'est réalisé directement sur le dépot principal du projet
(https://github.com/PnX-SI/GeoNature-citizen). Pour contribuer, il est
nécessaire de faire un *fork* du projet, de travailler sur un fork et
sur une nouvelle branche basée sur la branche ``dev`` du dépot principal.

Faire un ticket pour discuter de votre projet de modification
#############################################################

Il est fortement recommandé de réaliser préalablement un ticket pour discuter
avec la communauté des développeurs et utilisateurs de votre projet.


Faire un fork du projet
#######################

`Tout est ici <https://help.github.com/articles/fork-a-repo/>`_


Cloner le projet
################
Cloner localement le projet
###########################

Dans un terminal:

Expand Down Expand Up @@ -55,4 +65,11 @@ Pour créer votre branche de développement, dans un terminal:

.. code-block:: bash
$ git checkout -b dev_mabranche
$ git checkout -b dev_mabranche
Créer une pull-request de vos modifications
*******************************************

Une fois vos modifications apportées, réalisez une pull-request
sur la branche ``dev`` du dépot principal en y mentionnant le ticket concerné.
34 changes: 10 additions & 24 deletions docs/devs/init_launch_backend.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,29 +6,17 @@ Configurer et lancer le backend
Installer l'environnement virtuel python
########################################

La création de l'environnement virtuel python3 nécessite ``virtualenv``
ou ``pyenv`` ou tout autre outil équivalent (ex: pyenv):
La gestion des dépendances du backend est assurée par
`python-poetry <https://python-poetry.org/docs/#installation>`.

.. code-block:: bash
cd backend
sudo apt install python3-pip
python3 -m pip install --upgrade --user virtualenv
export PATH=/home/geonatadmin/.local/bin:$PATH
virtualenv -p /usr/bin/python3 venv
L'activation de cet environnement se fait avec la commande suivante:
Une fois ``poetry-python`` installé, rendez-vous lancez les commandes suivantes
pour créer l'environnement virtuel et installer les dépendances.

.. code-block:: bash
source venv/bin/activate
Et l'installation des librairies nécessaires à GeoNature-citizen avec la commande suivante:

.. code-block:: bash
python3 -m pip install -r requirements.txt
cd backend
poetry install
Lancer le backend
#################
Expand All @@ -39,13 +27,11 @@ depuis l'environnement virtuel python:
.. code-block:: bash
cd backend
source venv/bin/activate
cd ../config
cp config.toml.example config.toml
cp ../config/config.toml.example ../config/config.toml
python -m wsgi.py
poetry run python -m wsgi.py
# debug mode
# export FLASK_ENV=development; export FLASK_DEBUG=1; export FLASK_RUN_PORT=5002; export FLASK_APP=wsgi; python -m flask run --host=0.0.0.0
Vous pouvez alors aller sur la page de documentation de l'API à l'adresse suivant ``http://VOTRE_HOTE:5002/apidocs``, en local, ce sera `http://localhost:5002/apidocs <http://localhost:5002/apidocs>`_.
Vous pouvez alors aller sur la page de documentation de l'API à l'adresse suivant ``http://VOTRE_HOTE:5002/api/docs``, en local, ce sera `http://localhost:5002/api/docs <http://localhost:5002/api/docs>`_.
6 changes: 2 additions & 4 deletions docs/devs/init_launch_db.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,12 @@ Pour installer le serveur de base de données, suiviz les \
instructions du site officiel \
`PostgreSQL Downloads <https://www.postgresql.org/download/>`_:

Concrètement, sur Debian stretch:
Concrètement, sur Debian et ubuntu:

.. code:: sh
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" >> /etc/apt/sources.list.d/postgresql.list'
sudo wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
sudo apt install postgresql-10 postgresql-10-postgis-2.5 postgresql-10-postgis-2.5-scripts git
sudo apt install postgis
Configurer la base de données
#############################
Expand Down
79 changes: 40 additions & 39 deletions docs/devs/init_launch_frontend.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,21 @@ Installer l'environnement virtuel NodeJS avec nvm

L'installation de ``nvm`` se fait en suivant les instructions du dépot principal de l'outil nvm par creationix `creationix/nvm <https://github.com/creationix/nvm#installation-and-update>`_.

Une fois l'environnement installé, installer la dernière version stable de ``nodejs``:
Une fois l'environnement installé, installer la dernière version stable de ``nodejs`` compatible:

.. code:: sh
nvm install v10.16
cd frontend
nvm install
Pour utiliser cette version:

.. code:: sh
nvm use v10.16
cd frontend
nvm use
Installer angular CLI (version LTS 6) et les dépendances requises:
Installer angular CLI (version LTS 8) et les dépendances requises:

.. code:: sh
Expand All @@ -37,14 +39,14 @@ En mode développement et client-side rendering:

.. code:: sh
ng serve
nvm exec npm run start
En mode Server Side Rendering, optimisé pour le SEO et réservé aux robots d'indexation:
***************************************************************************************

.. code:: sh
npm run build:ssr && npm run serve:ssr
nvm exec npm run build:ssr && nvm exec npm run serve:ssr
Gestion du Server Side Rendering
################################
Expand Down Expand Up @@ -102,7 +104,7 @@ La commande suivante met à jour les fichiers de traduction (ajout/suppression d

.. code-block:: sh
npm run extract-i18n
nvm exec npm run extract-i18n
Les fichiers de traduction sont dans le répertoire ``frontend/src/i18n``.

Expand All @@ -116,18 +118,7 @@ Préparer la distribution avec:

.. code-block:: sh
npm run ng build -- --prod
ou:

.. code-block:: sh
npm run ng build -- --configuration=en --prod
pour une version en langue anglaise.

Tout est contenu dans le répertoire ``frontend/dist``, qu'il faut copier sur la plateforme acceuillant le service.

nvm exec npm run build:i18n-ssr
Annexe:
Expand All @@ -139,27 +130,37 @@ Exemple de fichier de configuration serveur Apache2:

.. code-block:: apacheconf
# Configuration GeoNature-citizen
Alias /citizen /home/utilisateur/citizen/frontend/dist/browser
<Directory /home/utilisateur/citizen/frontend/dist/browser>
Require all granted
AllowOverride All
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ".*" "index.html" [QSA,L]
</IfModule>
<VirtualHost *:80>
# Host
ServerName mydomain.net
# Root url (for frontend)
<Location />
ProxyPass http://localhost:4000/ retry=0
ProxyPassReverse http://localhost:4000/
</Location>
# API Url
<Location /api>
ProxyPass http://localhost:5002/api retry=0
ProxyPassReverse http://localhost:5002/api
</Location>
# Secured backoffice
<Location /api/admin/>
AuthType Basic
AuthName "Restricted Area"
AuthBasicProvider file
AuthUserFile "APP_PATH/config/backoffice_htpasswd"
Require user backoffice_username
</Location>
# Error logs
ErrorLog APP_PATH/var/log/apache2-citizen.log
CustomLog APP_PATH/var/log/apache2-citizen.log combined
</VirtualHost>
</Directory>
<Location /citizen/api>
ProxyPass http://127.0.0.1:5002/api
ProxyPassReverse http://127.0.0.1:5002/api
</Location>
Suivi des journaux d'évenements et d'erreurs:
*********************************************
Expand Down

0 comments on commit e42b63e

Please sign in to comment.