Artifact f48c0212ced450bdc9592b8f92b7139857b1ed3c:

Wiki page [Design] by bohwaz on 2020-01-18 21:31:46.
D 2020-01-18T20:31:46.648
L Design
N text/x-markdown
P 64bd07d128f9ae47c2025e9bd223db6cc17efef9
U bohwaz
W 2873
Le design de Garradin est basé sur plusieurs concepts :

* Simplicité : les fonctionnalités doivent être le plus simple possible à utiliser par les utilisateurs finaux
* Intuitivité : il ne doit pas y avoir besoin de lire 200 pages de manuel pour comprendre comment ça marche, tout doit être clair et expliqué dans l'interface elle-même
* Flexibilité : Garradin doit pouvoir convenir à l'utilisation de 95% des petites et moyennes associations
* Puissance : Garradin doit permettre une utilisation avancée, qui peut être apprise progressivement, mais pas au détriment de la simplicité
* Intuitivité : l'utilisation doit pouvoir être apprise sans lire préalablement une documentation, toutes les informations utiles et nécessaires doivent être comprises dans l'interface elle-même

Au niveau du développement nous suivons les principes suivants :

* Eco-conception : le code doit être léger en ressources serveur et client, réduisant la consommation énergétique du matériel utilisé (voir notamment [Eco-conception web](https://collectif.greenit.fr/ecoconception-web/) car [la plupart des sites web sont inutilement lents](https://tonsky.me/blog/disenchantment/))
* Artisanat : Garradin est construit comme un projet artisanal, avec l'amour du travail bien fait, mais aussi le plaisir de coder et de créer de nouvelles choses.
* Amélioration progressive : le Javascript ne doit pas être nécessaire 
* Sécurité : faire en sorte que la conception et l'utilisation soit la plus sécurisée possible.

C'est pour cela nous utilisons peu d'outils existants : pas de framework PHP ou CSS. Nous utilisons en général les outils [KD2](https://fossil.kd2.org/kd2fw/) qui suivent les même principes. Ces briques logicielles sont réutilisables et éprouvées.

Comme Garradin est un projet artisanal et non pas industriel, il ne fait pas sens pour nous d'utiliser un framework lourd (comme Laravel ou Symfony), d'autant plus que leur durée de support ne convient pas au cycle de développement de Garradin. L'idée n'est pas d'utiliser des outils génériques qui ne sont pas adaptés à nos besoins, mais de trouver ou développer les solutions les plus adaptées, les plus légères, et les plus durables.

Ces choix se retrouvent au niveau de l'interface visuelle :

* Nous n'utilisons pas de bibliothèque lourde populaire comme React, Bootstrap, etc. ces projets sont très bien mais lents et lourds et n'apportent rien dont nous n'ayons besoin ;
* Les champs de formulaire ne sont pas stylisés, ils utilisent le style natif du navigateur, afin de rendre évident ce qu'ils sont et ce qu'ils font ;
* Nous n'utilisons pas de design à la mode tel que "Material Design" ou autre car ces designs passent très vite de mode et ne sont pas étudiés pour une utilisabilité maximale et sont peu accessibles aux handicaps.
Z 45364b8f36af40c58b3de30d945b08c4