Stack est une application Next.js développée par le Pôle Inclusion numérique de l'ANCT, utilisant le Système de Design de l'Etat et le template commun de l'ANCT qui ajoute des composants métiers au Système de Design de l'Etat.
L'objectif de ce projet est de permettre une mise en ligne facile, rapide et respectant les critères de qualité de l'Incubateur des Territoires (sécurité, qualité de code, design, protection des données, respect de la confidentialité...).
Il contient les pages suivantes:
- Accueil
- Connexion par lien magique
- Connexion par les Single Sign On Inclusion Connect et Mon compte pro
- Page profil (🏗️ En cours)
- Politique de confidentialité (🏗️ En cours)
- Mentions légales (🏗️ En cours)
- Conditions générales d'utilisation (🏗️ En cours)
- Statistiques (🏗️ En cours)
- Déclaration d'accessibilité
- Page 404 / 500...
- 🪧 Description
- 🏗️ Contenu technique (🏗️ En cours)
- 📦 Prérequis (🏗️ En cours)
- 🚀 Installation (🏗️ En cours)
- 🛠️ Utilisation (🏗️ En cours)
- 🤝 Contribution (🏗️ En cours)
- 📝 Licence
- TypeScript
- Next.js
- Jest pour les tests unitaires
- Cypress pour les tests de composants et e2e
- ESlint pour l'analyse statique
- Prettier pour harmoniser la rédaction du code
- Storybook pour documenter et visualiser les interfaces
- Chromatic pour valider les interfaces
- Sentry pour les rapports d'erreur
- Matomo pour les statistiques d'utilisation
Le projet nécessite les outils suivants pour fonctionner :
- Node 18
- pnpm 6
- postgresql ou Docker
- Un compte Scaleway pour pouvoir déployer l'application
=> Faire un demande de token OpenID pour votre service spécifiquement (procédure sur le site https://moncomptepro.beta.gouv.fr/partenaire)
Pour commencer à utiliser le projet, il faut cloner le dépôt et installer les dépendances :
git clone [email protected]:inclusion-numerique/stack.git
pnpm install
cp .env.dist .env
pnpm -F web dev
Le package cdk
contient les dépendances et le code nécéssaire pour déployer l'application sur Scaleway.️
Voir la documentation du package cdk pour plus de détails.
Il est possible de déployer l'application sur un autre cloud, ou sur un serveur en local, en modifiant le code du package cdk
ou en créant votre propre pipeline de déploiement pour votre infrastructure.
Votre projet part du clone de ce dépôt, et vous pouvez le modifier à votre guise.
Si vous développez une nouvelle fonctionnalité que vous pensez utile à d'autres, nous vous encourageons à la partager en créant une pull request sur ce dépôt.
Stack est un dépôt de code source, et non un template, il est ammené à évoluer régulièrement.
Certaines mises à jours / nouveaux composants peuvent vous intéresser. Certains changements peuvent au contraire être en conflit avec les votre, ou ne pas vous convenir. Cela sera géré dans un flow de merge classique.
Pour récupérer les mises à jour de ce dépôt, il faut ajouter le dépôt comme remote de votre projet :
git remote add stack [email protected]:inclusion-numerique/stack.git
Cela vous permettra de voir facilement les changements entre votre projet et le dépôt stack.
Nous recommandons ensuite de créer dans votre projet une branche stack
qui suivra la branche main
de ce dépôt, et de la rebaser régulièrement sur la branche main
de ce dépôt.
git checkout -b stack
git pull stack main
git rebase main
Ensuite créez une PR sur votre branche principale (dev par exemple) pour intégrer les changements de la branche stack
dans votre projet.
Cela vous permettra de faire une code review de l'integration des changements de ce dépôt dans votre projet pour valider les changements que vous souhaitez intégrer ou non, et de résoudre les conflits.
Une fois cette PR mergée (utilisez bien un merge classique pour ne pas avoir à résoudre les conflits à nouveau). Vous avez intégré les changements de ce dépôt dans votre projet.
- Avant de créer une nouvelle branche de travail, récupérer les dernières modifications disponibles sur la branche main.
- La nouvelle branche de travail doit ête préfixée par
build/
,chore/
,ci/
,docs/
,feat/
,fix/
,perf/
,refactor/
,revert/
,style/
outest/
en fonction du type de modification prévu, pour plus de détails à ce sujet, consulter Conventional Commits cheat sheet
Les commits de ce repository doivent respecter la syntaxe décrite par la spécification des Commits Conventionnels
La branche main, ainsi que l'ensemble des branches de travail avec un préfixe valide requièrent que les commits soient signés :
- La documentation de GitHub indique comment configurer la signature des commits
- Les utilisateurs de keybase peuvent signer leurs commits avec leur clé GPG sur Keybase
Voir le fichier LICENSE du dépôt.