Skip to content

oklmdev/starter-betagouv

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo de SPACE

🚀 Démarrer un projet betagouv en toute sérénité 💆

Vous trouverez ici un chantier ouvert de "starter" pour démarrer des nouveaux projets betagouv en Typescript/Node.

En développant des produits au sein de betagouv, nous nous sommes rendus compte que nous recodions les mêmes briques / intégrations pour chaque produit. Et si nous mutualisions ?

C'est encore le début et il n'y a pas grand chose d'utilisable pour le moment. Le chantier est ouvert à toutes les contributions, propositions, idées...

🙋 Nous concentrons actuellement nos efforts sur un POC dont l'objectif est de permettre de créer et déployer une landing page avec le thème DSFR sans coder. Je t'invite donc à aller jeter un coup d'oeil sur le repo correspondant : https://github.com/oklmdev/starter-betagouv-template. 🚀

🙋 Je t'invite également à aller découvrir le projet suivant, qui est une sous-partie de ce que nous essayons de faire ici : https://github.com/oklmdev/persiste. 🚀

Pourquoi un starter spécial betagouv ?

Il existe suffisamment de points communs entre nos projets pour que nous puissions aller plus loin que les starters génériques qui sont disponibles.

Points communs aux Startups d'Etat :

  • Une démarche exploratoire guidée par l'impact, ce qui implique:
    • Une mise en oeuvre rapide d'une première version,
    • Des mesures et des ajustements fréquents en cours de route,
      • et donc une dette technique qui a tendance à s'accumuler...
    • Des phases d'accélération, où la vélocité de développement devient critique (et la dette technique se fait sentir),
  • Une équipe avec une taille restreinte
    • Intrapreneur, développeurs, chargés de déploiement, designers... travaillant main dans la main
    • Des développeurs avec des responsabilités larges (application, data, déploiement, sécurité...)
  • Un produit qui fait le lien entre des usagers et l'administration
  • Un service qui s'intègre avec d'autres startups betagouv ou des services de l'administration
  • Des standards de développement, d'accessibilité, et de sécurité.
    • Hébergement sur des infrastructures FR ou EU (problématiques RGPD)
    • Transparence & participation ouverte (open source)
  • ...

Nous pensons que chaque équipe souhaite développer sereinement des produits durables (robustes et maintenables) et évolutifs.

Que proposer dans ce starter ?

  • Les briques typiques
    • Authentification
      • intégration Keycloak
      • FranceConnect, ProConnect, AgentConnect, ...
      • lien magiques
    • Gestion des droits par role/ressources et zones à accès restreint
    • Envoi de mails
    • Gestion de fichiers
    • Import/export de données
    • Génération de PDF / Excel
    • ...
  • Des briques spécifiques betagouv
    • DSFR
    • Intégration des services tiers
      • API Entreprise, data.gouv.fr, ...
    • ...
  • Tout ce qu'il faut pour déployer régulièrement et sereinement
    • CI/CD
      • exemple de déploiement sur les PAAS Clever Cloud ou Scalingo
    • Tests automatisés avec Jest
    • Storybook
    • ...
  • Une architecture qui est optimisée pour le changement
    • Découplage du code métier et de l'infra (db, api tiers, ...)
    • Un modèle de persistence de données flexible
    • Une orchestration sans framework (pour garder le contrôle)
    • ...

Le tout illustré dans un magnifique faux produit betagouv S.P.A.C.E..

Tu as des idées ? Tu développes un produit en démarrage et tu es intéressé par ce starter ?
Retrouve-moi sur mattermost @pierre-antoine.duchateau !

Tu veux tester ?Ouvrir dans une conteneur gitpod

Ceci n'est pas...

  • une solution universelle et parfaite pour tous les projets
    • des choix ont été fait selon l'opinion des auteurs
  • un démonstrateur de technos dernier cri
  • un projet officiel
  • fini

Contributeurs

Pour les bugs/remarques/discussion, n'hésitez pas à ouvrir une issue.

Toute PR est la bienvenue !

Installation et lancement

Voir le fichier LAUNCH.md en construction

Licence

Voir le fichier LICENSE du dépot.

Changelog

Nous avons récemment démarré un POC dont l'objectif est de permettre de créer et déployer une landing page avec le thème DSFR sans coder. Je t'invite donc à aller jeter un coup d'oeil sur le repo correspondant : https://github.com/oklmdev/starter-betagouv-template.

Nous nous retrouvons un soir par semaine pour peaufiner le positionnement, avancer lentement mais surement, discuter des choix techniques (un mélange de bikeshedding et yak shaving :D ), et parfois faire un peu de code...

Depuis peu, Pierre-Antoine consacre quelques heures chaque jour pour donner un coup de boost au projet !

En cours

Septembre 2022

  • Bundles navigateur
  • CI: lancer les linter/tests/prettier à chaque push, et créer une PR

Aout 2022

  • Vacances 🏖

Juillet 2022

  • Inscription d'un usager

Juin 2022

  • fausse authentification (pour les dev/démo)
  • Page d'accueil de SPACE
  • Simplification de l'arborescence (il y a encore de la marge !)
  • thème DSFR via react-dsfr (merci à eux !)
  • thème DSFR pour la page de login de keycloak

Mai 2022

  • Gestion basiques des droits
  • Intégration keycloak

Avril 2022

  • Transactions simples
  • Reconstruction des tables à partir de l'historique
  • Mise à jour de tables de projections déclenchée par les événements
  • Bus d'événements
  • Base postgres (instance docker + client)

Démarrage

  • Storybook
  • Jest
  • Prettier
  • Eslint
  • Base typescript (tsconfig)

Credits

Merci à @garronej pour les astuces de mise en page :)