Documentation

Produit
Devise : convaincre les membres de l'équipe que leurs données sont anonymes et utiles pour leur scrum master.

Utilisateur “standard”

Chaque membre de l’équipe reçoit une URL partagée par sont scrum master, par ex. : https://smileagile.io/views/surveys/38df06b0c39b5e13eb136383cf5167226261/votes

Cette page web simple invite chacun à coter : Formulaire de vote

Scrum Master

En tant que scrum master, un tableau de bord récapitule tes équipes avec les statistiques des sondages passés en en cours, vue desktop : Le tableau de bord de mes équipes, vue desktop

Vue mobile : Le tableau de bord de mes équipes, vue mobile

Tu peux avoir une vue rapide des votes et commentaires : Carrousel contenant les votes et commentaires L'icône presse-papiers copie les commentaires et les votes. La case à cocher extrait les commentaires.

Et bien sûr, tu peux suivre la tendance de l’humeur de ton équipe : Graphique de la bonne humeur

Stockage
Le respect de la vie privée et de l’anonymat des votes sont la clé pour garantir des réponses honnêtes.

Cookie

Un cookie est utilisé pour stocker le jeton d’authentification une fois identifié. Ceci ne s’applique qu’aux scrum masters. Un second cookie est utilisé pour conserver la langue sélectionnée depuis le pied de page. En somme, si tu ne changes pas ta langue par défaut et que tu n’es pas un scrum master, aucun cookie ne sera placé ! Autrement dit, les cookies ne sont absolument pas requis pour voter.

Stockage local

Le stockage local est utilisé pour empêcher un utilisateur de voter 2 fois pour le même sondage. Seul le UUID du sondage y est placé, aucune donnée saisie par l’utilisateur n’y est stockée.

Code
PHP est un langage controversé… j’adore !

PHP

J’ai choisis ce langage car il est de loin celui que je maîtrise le mieux. Cela dit, je n’ai pas codé depuis un bail ! Je voulais un “truc qui marche rapidement” avec un implémentation REST. Mon MVP était ces 2 end points : POST /surveys/{survey_uuid}/votes et GET /teams/{team_id}/chart. Slim était un choix simple.

Les semaines passants, j’ai demandé à mes équipes d’utiliser une commande cURL pout voter. C’était un succès total auprès de mes développeurs, beaucoup moins avec mes POs ! Il était temps de leur créer une page web simple à l’emploi. J’ai choisi BULMA pour le framework CSS et Twig pour le templating.

PHP est encore moqué, un langage de seconde zone. J’ai fais de mon mieux en tant qu’architecte PHP au sein d’ADP pour utiliser les meilleures pratiques logicielles. Nous n’avions pas à rougir de la comparaison des codes sources avec les équipes légitimes ‘Java’, en particulier en comparant les performance et montée en charge !

Swagger

C’est un item dans mon backlog !

Roles
Pour résumer : rester simple !

GUEST

C’est le rôle par défaut, avec évidemment, aucun besoin de s’identifier. Les invités peuvent voir les informations (dont cette page !), mais par dessus tout : peuvent voter grâce au lien Internet créé par le scrum master.

TEAMS.OWNER

Autrement nommé le scrum master. Ce rôle permet au scrum master de gérer ses équipes, les sondages et de visualiser les graphiques.

TEAMS.ADMIN

Ce rôle autorise l’administrateur à modifier toutes les équipes, y compris celles dont il/elle n’est pas le/la propriétaire.

ORGANIZATIONS.OWNER

Un scrum master de plusieurs équipes ou un niveau directeur. Ce rôle donne accès à la vue des départements et ainsi au graphique agrégé.

ORGANIZATIONS.ADMIN

Ce rôle autorise l’administrateur à modifier tous les départements, y compris ceeux dont il/elle n’est pas le/la propriétaire.

USERS.ADMIN

Ce rôle autorise l’administrateur à approuver les comptes des utilisateurs s’étant enregistré.

Traduction
Prêt à aider et supporter une nouvelle langue ? Tu es plus que bienvenue !

Format

Toujours pas partisan de réinventer la roue. J’ai utilisé gettext pendant des années et m’a tant été utile que je ne me suis pas posé de question !

Outils

Tu peux bien évidemment éditer les fichiers .PO à la main mais je préfère m’aider d’outils adéquats. Dans ce cas, j’utilise POEDIT : il est si pratique que je le recommande chaudement.

Pas à pas

Mon repo Git n’est pas encore public, contacte l’auteur pour avoir le dernier fichier .PO. Le processus utilisera un Pull Request. Si tu n’es pas un développeur, demander et retourner la mise mise à jour à l’auteur est toujours une option.

Ce pas à pas utilise l’outil POEDIT cité ci-dessus.

Améliorer une traduction existante

Ouvrir l’outil : Project-Id-Version: SmileAgile.io
PO-Revision-Date: 
Last-Translator: Wilfried Loche <wilfried.wl.loche@gmail.com>
Language-Team: 
Language: fr
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=(n >= 2);
X-Generator: Poedit 3.2.1

Clique le bouton ‘Editer une traduction’ et choisis le fichier .PO correspondant à la langue que tu veux améliorer : Project-Id-Version: SmileAgile.io
PO-Revision-Date: 
Last-Translator: Wilfried Loche <wilfried.wl.loche@gmail.com>
Language-Team: 
Language: fr
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=(n >= 2);
X-Generator: Poedit 3.2.1

Mettre à jour les traductions en utilisant ‘Catalogue/Mettre à jour depuis le fichier .POT…’ : Project-Id-Version: SmileAgile.io
PO-Revision-Date: 
Last-Translator: Wilfried Loche <wilfried.wl.loche@gmail.com>
Language-Team: 
Language: fr
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=(n >= 2);
X-Generator: Poedit 3.2.1

Corrige/ajouter une traduction manquante : Project-Id-Version: SmileAgile.io
PO-Revision-Date: 
Last-Translator: Wilfried Loche <wilfried.wl.loche@gmail.com>
Language-Team: 
Language: fr
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=(n >= 2);
X-Generator: Poedit 3.2.1

Une fois les traductions terminées, enregistre ton travail grâce au bouton ‘Enregistrer’ : Project-Id-Version: SmileAgile.io
PO-Revision-Date: 
Last-Translator: Wilfried Loche <wilfried.wl.loche@gmail.com>
Language-Team: 
Language: fr
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=(n >= 2);
X-Generator: Poedit 3.2.1
Pour une raison qui m’échappe, tu pourrais avoir ce message d’erreur, tu peux l’ignorer : Project-Id-Version: SmileAgile.io
PO-Revision-Date: 
Last-Translator: Wilfried Loche <wilfried.wl.loche@gmail.com>
Language-Team: 
Language: fr
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Plural-Forms: nplurals=2; plural=(n >= 2);
X-Generator: Poedit 3.2.1

Le fichier .PO contient tes mises à jour. L’outil le compile automatiquement en un fichier .MO. Si tu peux créer un Pull Request, crée une ‘issue’ de traduction, ensuite un Pull Request s’y référençant. Si tu ne pouvez pas (mettons que le repository n’est pas encore public !), envoie simplement les 2 fichiers à l’autre. J’ajouterai ton nom dans les remerciements.

Traduire une nouvelle langue

Ouvrir l’outil, et choisis le fichier .POT. Choisis la langue tu veux proposer une traduction : Choix de la langue

En enregistrant les fichiers .PO et .MO, la structure doit être la suivante : ~/src/locale/{language}[-{optional region}]/LC_MESSAGES Et le nom de fichier comme suit : happiness.po Enregistrer sous...

Prêt pour un rapide coup gagnant ?

La page la plus visible est celle des votes. Donc, pourquoi ne pas traduire cette page pour gagner en popularité ?

Mais biensûr ! Au lieu du fichier complet happiness.pot, utilise vote.pot !