Skip to content

Commit

Permalink
docs(onboarding): simplifie onboarding front
Browse files Browse the repository at this point in the history
  • Loading branch information
sokl-octo committed Aug 19, 2024
1 parent 91d01cb commit 240328e
Show file tree
Hide file tree
Showing 6 changed files with 100 additions and 83 deletions.
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@
Pour bien démarrer, un passage sur [la documentation](https://dnum-socialgouv.github.io/1j1s-front/) est essentiel.
Les pages les plus importantes pour le développement sont :
* [l'architecture](docs/docs/architecture/architecture.md)
* [l'installation](docs/docs/onboarding/1-prerequis.md)
* [l'installation](docs/docs/onboarding/1-installation.md)
* [les standards](docs/docs/convention)
52 changes: 52 additions & 0 deletions docs/docs/onboarding/1-installation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
sidebar_label: 1 - Lancer le front
sidebar_position: 1
---

# Lancer le projet 1j1s-front

_13 Août 2024_

## Pré-requis

Se référer au package.json pour les versions utilisées

* [nvm](https://github.com/nvm-sh/nvm) recommandé
* [npm](https://www.npmjs.com/)
* [NodeJS](https://nodejs.org/fr/)
* Un accès Scalingo au repo [1j1s-front](https://dashboard.scalingo.com/apps/osc-fr1/1j1s-front) (recette)
* Un accès au Keepass du projet, pour les données de recette

## Premier run

1. `nvm install` et `nvm use` pour spécifier la version de node utilisée
2. Installez les dépendances avec `npm ci`
3. Copiez le `.env.test` vers `.env`
4. Lancez le projet en mode développement avec `npm run dev`
5. Ouvrez votre navigateur sur [http://localhost:3000](http://localhost:3000)

À ce stade, on obtient une application partiellement fonctionnelle :
* Assets : (Articles / Images)
* ✅ Sont présents : Les assets statiques
* ❌ Ne sont pas présents : Les assets hébergées sur le CMS
* Pages Formulaires :
* ✅ S'affichent et proposent des résultats : Les API mockées avec des résultats en mémoire.
* ❌ Ne s'affiche pas (404 ou 500) : Quand des résultats sont demandées au chargement de la page (API externe, CMS ou contenu indexé via Meilisearch)
* 🔶 S'affichent et ne proposent pas de résultats : Quand les résultats sont demandées uniquement à l'aide du CTA `Recherhcer 🔍`

## Alimenter les ressources externes

Pour les besoins de développement du frontend, on pourra créer du contenu en recette directement et le nettoyer ensuite.

1. Remplacer le contenu de `.env` avec l'environnement Scalingo 1j1s-front, à l'exception de :
* `ENVIRONMENT=local`
* `NODE_ENV=local`
* `SENTRY_ENV=local`
* `REDIS_URL=http://localhost:6379` ou `REDIS_URL=` remplacer par l'url redis de recette
2. Seulement si le cache est local : Lancer le service de cache avec `docker-compose up -d redis`
3. Relancer le projet en mode développement avec `npm run dev`
4. Les accès au CMS de recette sont sur le Keepass au cas où les développements nécessitent de manipuler les données

La configuration locale du CMS sera utilisée généralement pour les tâches sensibles concernant les données, ce que l'on retrouvera lors des développements sur le CMS ou sur l'ETL.


33 changes: 0 additions & 33 deletions docs/docs/onboarding/1-prerequis.md

This file was deleted.

47 changes: 47 additions & 0 deletions docs/docs/onboarding/2-aller-plus-loin.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
sidebar_label: 2 - Pour aller plus loin
sidebar_position: 2
---

# Pour aller plus loin sur le front

## Commandes utiles

| Commande | Fonction |
|----------------------------|--------------------------------------------------------------------------|
| npm run lint | Vérifie le formatage du code |
| npm run lint:fix | Formater le code |
| npm run test | Lance les tests |
| npm run test:watch | Lance les tests avec un watcher |
| npm run test:coverage | Lance les tests en indiquant le test coverage |
| npm run dev | Lance le site en mode développeur (avec hot reload) |
| npm run start | Lance la dernière version qui a été built (sans hot reload) |
| npm run build | build le site comme en production |
| npm run analyze | Analyze la taille du site et des packages |
| npm run analyze:server | Analyze la taille du site et des packages côté serveur |
| npm run e2e (headless) | Lance les tests cypress (nécessite que le site tourne) |
| npm run e2e:open | Lance les tests cypress (nécessite que le site tourne) |
| npm run storybook | Lance la documentation interactive des composants / assets Sass en local |
| npm run build:storybook | Build une version statique de la documentation storybook |
| docker-compose up -d redis | Lance redis en local (nécessite de réaffecter la variable `REDIS_URL`) |

## Configuration locale du CMS et de Meilisearch

Il faut avoir :
1. lancé le projet 1j1s-main-cms et peuplé les données via les scripts `npm run docker:populate` et `npm run docker:start` (voir documentation sur le repo concerné)
2. synchronisé la configuration sur l'interface d'administration du CMS / Strapi (`Settings -> Config sync -> Interface`-> Cliquer sur "Import")
3. dans Strapi (`Content-Manager -> Collection Types -> User`), récupéré les credentials de l'utilisateur 1j1s avec role formulaire pour renseigner la variable d'environnement `STRAPI_AUTH` du projet 1j1s-front
4. lancé meilisearch et renseigné la master key avec la même valeur que la variable d'env `NEXT_PUBLIC_STAGE_SEARCH_ENGINE_API_KEY`
Exemple : pour - `MEILI_MASTER_KEY=${MEILI_MASTER_KEY:-masterKey}` dans `docker-compose.yml` du projet 1j1s-main-cms -> il faut avoir `NEXT_PUBLIC_STAGE_SEARCH_ENGINE_API_KEY=masterKey` dans `.env` du projet 1j1s-front
5. indexé les collections du CMS via le plugin Meilisearch = cocher les collections à indexer (logements, offre de stages, fiches metiers...) sur interface Strapi
6. Ajouter la ligne suivante au fichier `/etc/hosts` :
```
127.0.0.1 minio
```

## L'écosystème 1j1s

* [Projet CMS](https://github.com/DNUM-SocialGouv/1j1s-main-cms)
* [Projet chargement de données](https://github.com/DNUM-SocialGouv/1j1s-stage-orchestrateur-transform-load)
* [Projet test de performances](https://github.com/DNUM-SocialGouv/1j1s-test-charge)
* [Projet test lighthouse automatisé](https://github.com/DNUM-SocialGouv/1j1s-front-lighthouse-report)
36 changes: 0 additions & 36 deletions docs/docs/onboarding/2-installation.md

This file was deleted.

13 changes: 0 additions & 13 deletions docs/docs/onboarding/3-aller-plus-loin.md

This file was deleted.

0 comments on commit 240328e

Please sign in to comment.