Skip to content

Glossaire ​

Les mots techniques utilisés dans cette documentation, expliqués simplement.

Général ​

API : Un programme qui ne fait pas d'écran : il reçoit des demandes (requêtes) et renvoie des données. Ici, l'API TimeManager reçoit par exemple « donne-moi les heures de l'utilisateur 12 » et répond une liste en JSON.

Requête HTTP : Un message envoyé à une adresse web. Il a une méthode : GET pour lire, POST pour créer, PUT pour modifier, DELETE pour supprimer. Le serveur répond avec un code : 200 tout va bien, 401 pas connecté, 403 pas le droit, 404 introuvable, 422 données refusées, 500 erreur du serveur.

JSON : Un format de texte pour échanger des données : { "id": 12, "email": "a@b.fr" }.

Client : Ce qui appelle l'API : le site web et l'application mobile.

Frontend / Backend : Le frontend est la partie visible (les écrans). Le backend est la partie serveur (l'API et la base).

Base de données : L'endroit où les données sont rangées durablement. Ici, PostgreSQL.

Monorepo : Un seul dépôt Git qui contient plusieurs projets.

Authentification ​

Cookie : Un petit texte que le serveur demande au navigateur (ou au téléphone) de garder et de renvoyer à chaque requête.

HttpOnly : Un cookie que le code JavaScript ne peut pas lire. Même si un script malveillant tournait dans l'app, il ne pourrait pas voler la session.

JWT (JSON Web Token) : Un jeton signé par le serveur qui prouve qui tu es. Ici il dure 1 heure.

Refresh token : Un second jeton, valable 30 jours, qui sert uniquement à obtenir un nouveau JWT quand l'ancien a expiré. On reste ainsi connecté sans retaper son mot de passe.

CSRF : Une attaque où un autre site essaie d'envoyer une requête à ta place en profitant de tes cookies. Pour l'empêcher, l'API exige en plus un jeton CSRF dans un en-tête, que seul le vrai client connaît.

Mobile ​

React : Une bibliothèque pour construire des interfaces avec des composants : des fonctions qui renvoient ce qu'il faut afficher.

React Native : React pour les applications mobiles. Au lieu de <div>, on écrit <View>, et React Native le transforme en vrai composant iOS ou Android.

Expo : Une boîte à outils autour de React Native : elle gère la compilation, l'accès aux fonctions du téléphone (vibrations, stockage sécurisé, partage...) et permet de tester l'app sans Xcode ni Android Studio.

Expo Go : Une application à installer sur ton téléphone. Elle lit un QR code et lance ton app en développement, instantanément.

Hook : Une fonction React dont le nom commence par use (useState, useQuery...). Elle donne à un composant de la mémoire ou un comportement.

Context / Provider : Un moyen de partager une valeur (l'utilisateur connecté par exemple) avec tous les composants en dessous, sans la passer de main en main.

Route : Une adresse dans l'app, comme /sign-in ou /team. Avec expo-router, chaque fichier de src/app/ est une route.

TypeScript : JavaScript avec des types. Il signale les erreurs (une faute de nom, un mauvais type) avant même de lancer l'app.

DevOps ​

Machine virtuelle (VM) : Un ordinateur simulé, loué chez un hébergeur (ici Google Cloud). On s'y connecte en SSH.

SSH : Une connexion sécurisée pour taper des commandes sur une machine distante.

Docker : Un outil qui emballe une application et tout ce dont elle a besoin dans une image. On lance ensuite cette image en conteneur, de la même façon partout.

Image / conteneur : L'image est le modèle figé (comme un fichier d'installation). Le conteneur est une copie de l'image en train de tourner.

Docker Compose : Un fichier YAML qui décrit plusieurs conteneurs qui vont ensemble (front, back, base) et les lance d'une commande.

Registry : Un entrepôt d'images Docker. Ici, GitHub Container Registry (ghcr.io).

Reverse proxy : Un aiguilleur placé devant les applications. Il reçoit toutes les requêtes et les envoie au bon conteneur selon l'adresse demandée. Ici, Traefik.

TLS / HTTPS / Let's Encrypt : HTTPS, c'est HTTP chiffré grâce à TLS. Il faut un certificat, fourni gratuitement par Let's Encrypt.

Ansible : Un outil qui configure des serveurs à partir de fichiers YAML. Au lieu de taper 50 commandes à la main, on décrit l'état voulu et Ansible le met en place.

Playbook / rôle / tâche : Une tâche est une action (installer un paquet). Un rôle regroupe des tâches sur un sujet (Docker, Traefik). Un playbook dit quels rôles appliquer sur quelles machines.

Ansible Vault : Un fichier chiffré qui contient les secrets (mots de passe, clés). Il est dans Git, mais illisible sans le mot de passe du vault.

CI/CD : Intégration continue et déploiement continu : à chaque changement, un robot teste, construit et met en ligne automatiquement.

Jenkins : Le robot de CI/CD utilisé ici.

Pipeline : La suite d'étapes que Jenkins exécute : tests, build, scan, push, déploiement.

Trivy : Un scanner qui cherche des failles de sécurité connues dans une image Docker.

UFW : Le pare-feu d'Ubuntu. Il bloque tous les ports sauf ceux qu'on autorise.