Open source

Un logiciel libre, développé en public.

Waterfall est distribué sous licence GNU Affero General Public License v3.0. La spécification, le contrat d’API, la feuille de route et le code sont publics, et les raisonnements qui les ont façonnés aussi : chaque revue de la spécification est conservée dans le dépôt.

La licence AGPL-3.0

Waterfall est publié sous la licence GNU AGPL v3.0 uniquement. Vous pouvez l’utiliser, l’étudier, le modifier et le redistribuer librement. La particularité de l’AGPL tient au réseau : si vous mettez à disposition d’utilisateurs une version modifiée de Waterfall, par exemple comme service en ligne, vous devez leur donner accès au code source de cette version.

Pour une entreprise qui installe Waterfall pour ses propres équipes, cela ne change rien au quotidien : les données restent les siennes, sur ses serveurs.

Ce que contient le dépôt

RépertoireContenu
docs/specLa spécification : plus de deux cents exigences, ses sources Word et draw.io, sa projection Markdown, et les revues qui l’ont façonnée.
docs/apiLe contrat d’interface en OpenAPI, l’inventaire des opérations et les décisions de conception.
docs/roadmapLa feuille de route : les EPIC dans leur ordre de construction, leurs récits et leur conception.
docs/devLe guide de développement et les règles de code par langage.
backend/Le noyau métier, le service d’API et le traitement de fond, en Python.
frontend/L’application Next.js, son client généré depuis le contrat, ses parcours de bout en bout.
fixtures/Les exemples chiffrés de la spécification, et les données que sert le faux service.
deploy/L’empaquetage : Compose pour le développement aujourd’hui, Helm demain.

La pile technique

Chaque choix est argumenté dans la spécification plutôt qu’affirmé :

  • Interface : Next.js et TypeScript, des grilles construites sur TanStack Table, des courbes avec Apache ECharts.
  • Service : FastAPI et Python, un noyau modulaire unique et un traitement de fond.
  • Données : PostgreSQL comme seule source de vérité, Redis pour le cache et la file de tâches, un stockage compatible S3 pour les fichiers en transit et les sauvegardes.
  • Identité : un fournisseur d’identité livré avec la plateforme (Keycloak), qui porte des comptes locaux, fédère un annuaire LDAP ou Active Directory, ou relaie vers un fournisseur externe.
  • Déploiement : Helm pour Kubernetes, Docker Compose pour le développement et les petites installations.

Le contrat d’API est écrit à la main et fait foi : le client de l’interface en est généré, le faux service sert ses exemples, et la chaîne rejettera un service dont les réponses s’en écartent.

Deux langues, une règle

La spécification et la documentation sont en français : c’est un document d’exigences formel, et le traduire doublerait la source de vérité. Le contrat, le code et le README sont en anglais. Les tickets et les demandes de fusion sont bienvenus dans les deux langues. L’interface du logiciel, elle, est prévue en français et en anglais, au choix de chaque utilisateur.

Contribuer

La page Contribuer présente les façons de participer, profil par profil : tester, relire la spécification, développer. Le guide de contribution du dépôt détaille les règles. En résumé :

  • Sur la spécification, une contribution prend la forme d’un constat : un emplacement (paragraphe ou identifiant d’exigence), une citation exacte, et une proposition de rédaction. Un constat sans proposition est un constat que quelqu’un d’autre devra réécrire.
  • Sur le contrat d’API, une modification d’interface est d’abord une modification du contrat ; le code suit.
  • Une proposition de fonctionnalité passe par le modèle de ticket « Question or proposal ». Elle ne devient un récit utilisateur que lorsqu’elle entre dans un EPIC.
  • Le code arrive par lots, chacun relu et vérifié par la chaîne avant d’être fusionné.

Vous travaillez sur des projets longs et la façon dont Waterfall traite les révisions, les avenants ou les provisions vous fait réagir ? Un retour métier sur la spécification est une contribution aussi utile qu’une ligne de code.

Essayer la maquette

La maquette de l’interface tourne sur un poste de développement, contre un faux service qui sert les exemples du contrat. Après avoir cloné le dépôt et installé les prérequis (uv, Node 24, Docker), la commande make dev la sert sur http://localhost:3000. Ce n’est pas encore le produit : les écrans sont là, les calculs arrivent avec les EPIC suivants.

Ouvrir le dépôt sur GitHub

Rejoindre le projet

Envie de tester Waterfall ou d’y contribuer ?

Waterfall se construit en public. Testeurs, chefs de projet, contrôleurs de gestion, développeurs : chaque retour compte, d’une remarque sur la spécification au test d’un écran.