Skip to content

Commit

Permalink
Merge pull request #532 from GeotrekCE/develop
Browse files Browse the repository at this point in the history
Develop > Master / 3.5.3
  • Loading branch information
camillemonchicourt committed Dec 17, 2021
2 parents d2342a7 + 2955018 commit f584956
Show file tree
Hide file tree
Showing 10 changed files with 57 additions and 30 deletions.
15 changes: 15 additions & 0 deletions docs/changelog.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
# Changelog

3.5.3 (2021-12-17)
------------------

**🐛 Fixes**

* Fix Node.js to version 14, instead of LTR, to fix cache errors (#460)

**🚀 New features**

* Add setting ``enableServerCache`` to be able to disable server cache (#460)

**✨ Improvements**

* Mention ``COMPOSE_PROJECT_NAME`` in installation documentation with several Geotrek-rando on the same server (by @mviadere-openig)

3.5.2 (2021-11-26)
------------------

Expand Down
6 changes: 4 additions & 2 deletions docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,13 @@ You can now serve what comes out of the default 8080 port. To configure NGINX, s

If you want to have logs directly in terminal you can just run `docker-compose up`. `ctrl`+`c` will exit the command and stop the container. That's why `docker-compose up -d` is used in production to run the service in the background.

You can also access Node.js server logs with `docker-compose logs -t`.

After updating customization, you just have to run `docker-compose restart` to apply changes.

You can also create the optional `.env` file based on the example (`cp .env.example .env`), if you want to change the Docker image URL (or run a specific version different from the latest one), the running port, or the `customization` and `medias` folders path. Run `docker-compose down && docker-compose up -d` to apply changes to `.env` file.

If you want to run several Geotrek-rando on the same server, just download one Geotrek-rando-v3-installer for each portal with their own customization and set a different port for each.
If you want to run several Geotrek-rando on the same server, just download one Geotrek-rando-v3-installer for each portal with their own customization and set a different port for each. You should name each Geotrek-rando project with a different container name with adding `COMPOSE_PROJECT_NAME=name_of_geotrek_rando_project` variable in `.env` file. Otherwise the command `docker-compose down && docker-compose up -d` will overwrite the previous container.

## An example with NGINX

Expand Down Expand Up @@ -98,7 +100,7 @@ docker-compose pull && docker-compose down && docker-compose up -d

It will download and install the latest version of Geotrek-rando. If you want to install a specific version of Geotrek-rando, you can specify it in your `.env` file, instead of `latest`.

### Manage Docker images storage on disk:
### Manage Docker images storage on disk

The old images will stay on your system and use disk storage.

Expand Down
4 changes: 3 additions & 1 deletion docs/knowledge/caching.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,12 @@ They will appear as "stale" after a year.

## Nodejs Application cache

The second one consist in storing the configuration data (activities list, theme list etc..) we get from geotrek admin into ephemeral variable to avoid a lot of API calls to get the same data.
The second one consist in storing the configuration data (activities list, theme list etc..) we get from Geotrek-admin into ephemeral variable to avoid a lot of API calls to get the same data.

This configuration will appear as "stale" after one day.

If you need to make it available immediately, you can restart your container which will clear the memory and force the refreshment of this configuration data.

This cache can be disabled with ``enableServerCache`` setting in ``global.json`` (default to ``True``).

![Server Memory Caching Strategy](../assets/ServerMemoryCachingStrategy.png)
42 changes: 22 additions & 20 deletions docs/presentation-fr.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ La page d'accueil est composée :
- un selecteur de langue pour basculer entre celles disponibles
- un lien permanent vers la page de recherche
- d'une grande image paramétrable, avec un texte d'introduction paramétrable et masquable
- de la liste des pratiques de randonnées puis des catégories de contenus touristiques sous forme de pictogramme cliquables dans l'ordre défini dans Geotrek-admin
- de la liste des pratiques de randonnées, des pratiques Outdoor, des catégories de contenus touristiques et des catégories d'événements (selon les contenus publiés) sous forme de pictogramme cliquables dans l'ordre défini dans Geotrek-admin

![Homepage](https://geotrek.ecrins-parcnational.fr/images/gtr3-01-homepage.jpg)

Expand All @@ -34,17 +34,18 @@ La page d'accueil est composée :

## Page recherche

La page de recherche permet de rechercher des objets parmis les randonnées et les services (contenus touristiques).
La page de recherche permet de rechercher des objets parmis les randonnées, les sites Outdoor, les services (contenus touristiques) et les événements touristiques.

![Search](https://geotrek.ecrins-parcnational.fr/images/gtr3-04-search.jpg)

**Filtres :**

- Il est possible de sélectionner une ou plusieurs activités de randonnée et une ou plusieurs catégories de service.
- Si je ne sélectionne aucune activité de randonnée et aucune catégorie de service, alors j'affiche tous les objets
- La première ligne de filtre est fixe et comprend les filtres communs à tous les objets (thèmes, communes, secteurs et structures)
- Si je sélectionne uniquement des activités de randonnée, alors les filtres spécifiques aux randonnées sont aussi affichés (difficulté, durée, longueur, dénivelé, type de parcours et accessibilité)
- Si je sélectionne uniquement une seule catégories de service, alors les filtres spécifiques à cette catégorie sont affichés (type 1 et éventuel type 2)
- Il est possible de sélectionner une ou plusieurs pratiques de randonnée, une ou plusieurs pratiques Outdoor, une ou plusieurs catégories de service et une ou plusieurs catégories d'événements touristiques.
- Si je ne sélectionne aucune pratique de randonnée, aucune pratique Outdoor, aucune catégorie de service et aucune catégorie d'événement, alors cela affiche tous les objets
- Il est aussi possible d'utiliser les filtres communs à tous les objets (thèmes, communes, secteurs et structures)
- Si je sélectionne des pratiques de randonnée, alors les filtres spécifiques aux randonnées sont affichés (difficulté, durée, longueur, dénivelé, type de parcours et accessibilité)
- Si je sélectionne une catégories de service, alors les filtres spécifiques à cette catégorie sont affichés (type 1 et éventuel type 2)
- La zone de la carte affichée est aussi utilisée pour filtrer les résultats (fonctionnalités désactivable)
- Il est possible de customiser, masquer ou réordonner les filtres

**Résultats :**
Expand All @@ -57,12 +58,6 @@ La page de recherche permet de rechercher des objets parmis les randonnées et l
- Au survol d'un résultat dans la liste, sa localisation est mise en avant sur la carte
- Les résultats dans la liste et sur la carte permettent d'accéder à la fiche détail de chaque objet

**A venir :**

- Ajout des évènements touristiques
- Ajout des sites outdoor
- Amélioration de l'ergonomie des filtres

## Page détail

Chaque objet dispose d'une page de détail avec ses informations détaillées et sa carte.
Expand Down Expand Up @@ -104,18 +99,22 @@ La page détail d'une randonnée se termine par la liste des services (contenus

![Detail](https://geotrek.ecrins-parcnational.fr/images/gtr3-11-detail.jpg)

### Sites outdoor

- On entre par le site principal de premier niveau
- Si le site dispose d'un ou plusieurs sous-sites, alors ils sont listés dans la page
- Les parcours du site ou de ses sous-sites sont aussi listés dans la page
- Les randonnées à proximité du site sont aussi listés, pour identifier les accès au site

### Contenus touristiques

Les pages de détail des contenus touristiques sont construits de la même manière, mais avec un contenu plus simple.

![Detail](https://geotrek.ecrins-parcnational.fr/images/gtr3-12-detail.jpg)

### A venir
### Evénements touristiques

- Ajout d'informations sur la carte (services, lieux de renseignement, signalétique et aménagements)
- Ajout des pages détail des évènements touristiques
- Ajout des pages détail des sites outdoor
- Amélioration des informations affichées sur les cartes en version mobile
Assez similaires aux contenus touristiques, mais avec plus de champs et des dates.

## Pages statiques

Expand All @@ -139,8 +138,9 @@ Le portail web étant une PWA, quand il est consulté avec un smartphone, un mes
Un raccourci sera alors créé sur le bureau du smartphone, et il sera alors possible de consulter le contenu comme dans une application mobile.

Des premières fonctionnalités ont été développées pour embarquer une partie du contenu en offline, et ainsi pouvoir le consulter ultérieurement sans connexion internet.
Les dernières randonnées consultées et leurs fonds de carte peuvent ainsi être consultées offline.
Voir la [documentation sur la gestion du cache](./knowledge/caching.md) pour en savoir plus.
Il est ainsi possible d'embarquer le détail des contenus souhaités depuis leur fiche détail, pour y accéder sans connexion (textes, photos, cartes).

Il est aussi possible d'afficher sa localisation GPS sur la carte.

## Données

Expand Down Expand Up @@ -176,3 +176,5 @@ Un travail a été réalisé pour optimiser le référencement des contenus du p
Un rendu côté serveur (Server Side Rendering / SSR) des pages est réalisé pour optimiser et prégénérer les pages renvoyées aux moteurs de recherche (avec NextJS).

Une liste de toutes les pages du portail est générée automatiquement pour faciliter leur indexation dans les moteurs de recherche. Elle est disponible à l'adresse "URL-DU-PORTAIL/sitemap.xml".

Il est aussi possible de définir des règles de redirection, notamment pour optimiser le passage de Geotrek-rando v3 à Geotrek-rando v3.
6 changes: 3 additions & 3 deletions frontend/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
# Install dependencies only when needed
FROM node:lts-alpine AS deps
FROM node:14-alpine AS deps
# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed.
RUN apk add --no-cache libc6-compat g++ gcc libgcc libstdc++ linux-headers make python3
WORKDIR /app
COPY package.json yarn.lock ./
RUN yarn install --frozen-lockfile

# Rebuild the source code only when needed
FROM node:lts-alpine AS builder
FROM node:14-alpine AS builder
WORKDIR /app
COPY . .
COPY --from=deps /app/node_modules ./node_modules
RUN yarn build && yarn install --production --ignore-scripts --prefer-offline

# Production image, copy all the files and run next
FROM node:lts-alpine AS runner
FROM node:14-alpine AS runner
WORKDIR /app

ENV NODE_ENV production
Expand Down
3 changes: 2 additions & 1 deletion frontend/config/global.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,6 @@
"applicationName": "Geotrek-rando",
"enableIndexation": true,
"enableReport": true,
"enableSearchByMap": true
"enableSearchByMap": true,
"enableServerCache": true
}
3 changes: 2 additions & 1 deletion frontend/customization/config/global.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,6 @@
"touristicContentLabelImageUri": "https://upload.wikimedia.org/wikipedia/fr/d/df/Logo_ecrins.png",
"applicationName": "Custom Geotrek",
"enableReport": true,
"enableSearchByMap": true
"enableSearchByMap": true,
"enableServerCache": true
}
2 changes: 1 addition & 1 deletion frontend/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "geotrek-rando-frontend",
"version": "3.5.2",
"version": "3.5.3",
"private": true,
"scripts": {
"debug": "NODE_OPTIONS='--inspect' next ./src",
Expand Down
1 change: 1 addition & 0 deletions frontend/src/modules/interface.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ export interface APICallsConfig {
enableIndexation: boolean;
enableReport: boolean;
enableSearchByMap: boolean;
enableServerCache: boolean;
}

/** @deprecated please use Coordinate2D or Coordinate3D instead */
Expand Down
5 changes: 4 additions & 1 deletion frontend/src/services/api/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -93,4 +93,7 @@ const cacheMiddleware = (throttle = 0): ConfiguredMiddleware => {
};
};

export const GeotrekAPI = wretch(getGlobalConfig().apiUrl).middlewares([cacheMiddleware(1000)]);
const wretcher = wretch(getGlobalConfig().apiUrl);
export const GeotrekAPI = getGlobalConfig().enableServerCache
? wretcher.middlewares([cacheMiddleware(1000)])
: wretcher;

0 comments on commit f584956

Please sign in to comment.