PrepaStrat · Aide

L'annuaire des étudiants

Les quatre conditions pour y figurer — et pour le lire, car les deux vont ensemble —, quel champ nourrit quelle partie d'une fiche, d'où viennent les filtres, et ce qui protège les membres.

← Retour au configurateur
1 À quoi sert l'annuaire

C'est un annuaire d'étudiants en cours de préparation, pas un annuaire d'anciens. Il sert à trouver un partenaire d'entraînement : quelqu'un de la même école, du même niveau, qui vise le même type de poste, et qui peut aider sur une matière précise.

C'est pour ça qu'une fiche ne montre ni employeur ni parcours professionnel, mais l'école, le niveau, le poste visé et la langue.

Les « matières d'entraide » sont prévues mais pas ouvertes. La fiche sait afficher des pastilles « Peut aider en » (market sizing, profit tree…), et le champ correspondant n'a jamais été créé dans LearnWorlds — c'est un choix du 5 août. Elles n'apparaissent donc sur aucune fiche. Créer le champ suffirait à les faire vivre ; c'est le seul geste manquant.
La page est /annuaire-partenaire-de-cas. Les fiches sont construites par le script annuaire.js, alimenté par un serveur intermédiaire qui va chercher les profils dans LearnWorlds et retire au passage tout ce qui ne doit pas sortir — à commencer par les adresses e-mail.
2 Qui apparaît, qui n'apparaît pas

Quatre conditions, toutes obligatoires. Il suffit qu'une seule manque pour qu'un membre n'apparaisse pas — et rien ne le lui dit :

Il faut…Où ça se remplitPourquoi
Avoir dit ouicf_annuaire, demandé à l'inscription C'est le consentement.
Avoir renseigné son écolecf_ecole Une fiche sans école n'identifie personne.
Un moyen de contact e-mail, LinkedIn ou téléphone (§6) Une fiche qu'on ne peut pas joindre ne sert à rien.
Ne pas être suspendu— C'est quelqu'un dont l'accès a été retiré.

Le silence vaut refus, volontairement : tout ce qui n'est pas un oui lisible est traité comme un non. C'est la seule répartition acceptable pour un consentement.

🔴 L'annuaire est réciproque : on ne le lit que si on y figure. Un membre qui a répondu « non », ou dont la fiche n'est pas publiable pour l'une des trois autres raisons ci-dessus, ne voit pas l'annuaire du tout — il reçoit un message qui le lui dit et l'invite à accepter d'y apparaître.

C'est ce qui rend le consentement honnête : on n'y consulte pas les autres sans s'y montrer. C'est aussi la première explication d'un « je ne vois rien dans l'annuaire » : neuf fois sur dix, c'est une fiche incomplète, pas une panne.

⚠️ Le cas le plus fréquent est le plus discret : un membre qui a bien coché « oui » mais n'a rempli aucun moyen de contact. Il croit avoir tout fait.
C'est déjà le cas de plus de la moitié des consentants. Relevé le 24 août sur les 34 comptes : 11 ont dit oui, 5 seulement sont publiés. Les 6 autres ont bien renseigné leur école, mais aucun des trois canaux de contact — ils sont donc invisibles dans l'annuaire et privés de sa lecture, sans avoir rien fait de travers.

Ce n'est pas un défaut à corriger dans le code : la règle est volontaire. C'est un point à traiter au moment d'ouvrir l'annuaire à une promo — le formulaire doit faire comprendre qu'un contact est nécessaire, pas facultatif.
Et avant tout cela, il faut pouvoir enregistrer sa fiche : le compte doit être validé (règle du 5 août). Tant que l'adresse e-mail n'a pas été confirmée, le serveur refuse d'écrire une fiche — et l'invitation à en remplir une n'est même pas affichée : on demande d'abord la validation, ce qui est le seul geste utile à ce stade. Un membre qui dit « j'ai rempli ma fiche et elle n'apparaît pas » a très souvent un compte jamais validé (voir l'aide sur le parcours).
Où le membre remplit sa fiche. Deux chemins, et aucun ne passe par un formulaire à chercher : depuis l'annuaire, un panneau s'ouvre sur place quand il clique ; depuis son compte, les champs se trouvent dans son espace personnel, où sa fiche est affichée sous forme de pastilles — les vides ouvrent le formulaire d'un clic.

C'est une correction du 5 août : les invitations renvoyaient auparavant vers une page de profil où ces champs ne figurent pas. On envoyait donc les membres chercher un formulaire introuvable.

L'invitation à figurer ne se répète pas indéfiniment. Un membre qui reporte la fenêtre n'est pas resollicité avant trois jours ; le rappel discret en coin de page, lui, attend une semaine. Les deux ne s'affichent jamais ensemble — c'est la même demande, elle ne se fait pas deux fois par deux chemins. Un « non » au champ de consentement arrête tout définitivement.

Quand le serveur refuse d'enregistrer une fiche, la fenêtre dit désormais pourquoi au lieu de rester muette : c'est ce qui permet à un membre de comprendre seul qu'il doit d'abord valider son adresse.

Le rôle n'entre pas en compte : un professeur ou un administrateur qui accepte de figurer apparaît comme n'importe quel membre. Seuls les comptes suspendus sont écartés.

Un piège qui nous a déjà coûté cher. Le texte des options de ce champ est la donnée enregistrée : LearnWorlds ne distingue pas le libellé affiché de la valeur stockée. Réécrire « oui » en « Oui, afficher ma fiche » a rendu invisibles, en silence, tous les membres inscrits après la modification — les anciens continuaient d'apparaître, donc l'annuaire n'avait l'air ni vide ni cassé. Le serveur accepte désormais n'importe quelle formulation qui commence par « oui », mais évitez de reformuler ces options sans prévenir.
3 Anatomie d'une fiche

Chaque bloc d'une fiche vient d'un champ précis. Une zone vide n'est jamais un bug d'affichage : c'est un champ que le membre n'a pas rempli — la fiche se replie simplement dessus.

Site PrepaStrat · une fiche de l'annuaire
RB
1

Rafaëlle Bourgeois

ESSEC

2

Niveau Avancé · Stage · Français · Paris

3

En prépa pour les entretiens conseil, dispo pour des cas le week-end.

4

Peut aider en

Market sizing Profit tree
5
Contacter ▾6
7
  • 1
    Photo ou initiales — cf_photo, sinon la photo déposée par le membre, sinon ses initiales.
  • 2
    Nom et sous-titre — prénom + nom du compte, puis cf_ecole ; à défaut cf_filiere ou cf_poste.
  • 3
    Ligne d'infos — cf_niveau, cf_recherche, cf_langue, puis la ville (location). Les valeurs absentes disparaissent, sans trou ni séparateur orphelin.
  • 4
    Bio — le champ bio du profil, tronqué à 280 caractères.
  • 5
    « Peut aider en » — cf_matieres, découpé sur les virgules, points-virgules ou barres obliques. Chaque pastille est cliquable et relance la recherche sur cette matière.
    ⚠️ Ce bloc ne s'affiche sur aucune fiche aujourd'hui : le champ cf_matieres n'a jamais été créé dans LearnWorlds (choix du 5 août), donc personne ne peut le remplir. La fiche sait l'afficher et le fera d'elle-même le jour où le champ existera.
  • 6
    Bouton Contacter — un menu dès qu'il y a plusieurs canaux, un bouton simple s'il n'y en a qu'un. Aucun des trois canaux rempli : la fiche n'est pas publiée du tout (§2). Le pseudo de la messagerie interne ne suffit pas à publier une fiche : il ajoute un canal, il n'en fait pas exister une.
  • 7
    Les canaux du menu — Message en premier (la messagerie interne, qui n'expose ni adresse ni numéro), puis cf_contactmail, cf_contactlinkedin, cf_contacttel et WhatsApp, plus les linkedin/url du profil LearnWorlds.
Reconstitution d'une fiche — les données affichées sont fictives.
La fiche est construite pièce par pièce, jamais par injection de HTML : une bio qui contiendrait du code s'affiche comme du texte au lieu de s'exécuter.
4 Le tableau des champs

Les champs personnalisés se règlent dans Utilisateurs → Champs personnalisés. 🔴 La Data key saisie à la création détermine le nom technique : une clé niveau donne cf_niveau. La remplir à la main évite d'avoir à deviner ce que le code doit lire.

ChampClé techniqueSert àÉtat
Annuaire des étudiantscf_annuaire Le consentement. Décide de tout.mesuré
Votre écolecf_ecole Sous-titre de la fiche + filtre Écolemesuré
Niveau actuelcf_niveau Ligne d'infos + filtre Niveaumesuré
Le poste que vous visezcf_recherche Ligne d'infos + filtre Recherchemesuré
Langue préféréecf_langue Ligne d'infos + filtre Languemesuré
Adresse e-mail de contactcf_contactmail Entrée « Envoyer un email »mesuré
Profil LinkedIncf_contactlinkedin Entrée « Contacter sur LinkedIn »mesuré
Téléphonecf_contacttel Entrée « Appeler », et le numéro de WhatsAppmesuré
Joignable sur WhatsAppcf_contactwhatsapp Entrée « WhatsApp » — un oui/non, pas un numéromesuré
Matières d'entraidecf_matieres Les pastilles « Peut aider en »n'existe pas
Filière et annéecf_poste / cf_filiere Sous-titre, si l'école est videjamais rempli
Promocf_promo Donnée reprise, non affichée aujourd'huijamais rempli
Photocf_photo L'avatar, en priorité sur tout le restejamais rempli
Bio, ville, LinkedIn, sitebio, location, linkedin, url Champs natifs LearnWorldsnatifs
Lire la colonne « État ». mesuré = le champ existe et il est rempli par de vrais comptes. jamais rempli = aucun des 34 comptes ne porte cette donnée au 24 août : soit le champ n'a pas été créé, soit personne ne s'en sert. Dans les deux cas, la partie de fiche qui en dépend reste vide, et le vérifier demande d'ouvrir Champs personnalisés.

🔴 cf_matieres est un cas à part : il a été délibérément non créé (décision du 5 août). Le bloc « Peut aider en » ne s'affichera donc sur aucune fiche tant que ce choix tient. Le code le lit déjà : créer le champ suffirait à le faire apparaître, sans rien changer d'autre.
Ce que l'ancien champ libre cf_contact est devenu. Il a été retiré partout le 12 août : il n'est plus ni écrit, ni lu. C'était un texte libre dont le code devait deviner le type — un numéro rangé là ressortait en bouton « Appeler » alors que le membre ne pouvait ni le voir ni l'effacer depuis son écran. Une donnée personnelle publiée que la personne ne maîtrise pas n'est pas une compatibilité, c'est un défaut. Aujourd'hui, ce qui est publié est exactement ce que le membre voit dans son formulaire.
Créer un champ ne suffit pas à le voir. Il faut aussi cocher sa visibilité et son édition dans le profil, sinon le membre ne peut jamais le remplir — et la fiche restera vide sans que rien ne l'explique.
5 Les filtres et la recherche

Quatre filtres — École · Niveau · Recherche · Langue — plus un champ de recherche libre.

Les pastilles ne sont pas écrites à la main : elles sont déduites des valeurs réellement présentes chez les membres affichés. Un filtre vide signifie donc que personne n'a rempli ce champ, pas que le filtre est cassé.

Trois listes gardent en revanche un ordre imposé, parce que l'ordre alphabétique n'y voudrait rien dire :

  • Niveau — Débutant, Avancé, Expert
  • Recherche — Stage, CDI Junior, CDI expérimenté
  • Langue — Français, Anglais

Une valeur écrite autrement (« débutant », « CDI junior ») se range à la suite, par ordre alphabétique : elle n'est pas perdue, elle n'est simplement pas à sa place. C'est une autre raison de ne pas reformuler les options.

La recherche libre balaie le nom, l'école, la filière, le niveau, le poste visé, la ville, la langue et les matières. C'est aussi elle que déclenchent les pastilles « Peut aider en » d'une fiche.

Un membre peut cocher plusieurs langues : la valeur est traitée comme une liste. Les autres champs sont des choix uniques.
6 Le bouton « Contacter »

Le membre remplit les canaux qu'il accepte, chacun dans son propre champ. Il en faut au moins un : sans aucun des trois premiers, sa fiche n'est pas publiée du tout, et il perd aussi la lecture de l'annuaire (§2).

ChampClé techniqueCe qui s'afficheSuffit à publier ?
Adresse e-mail de contactcf_contactmailEnvoyer un email Oui
Profil LinkedIncf_contactlinkedinContacter sur LinkedIn Oui
Téléphonecf_contacttelAppeler Oui
Joignable sur WhatsAppcf_contactwhatsapp WhatsApp — utilise le numéro ci-dessus Non — un oui/non, pas un contact
Message interneaucun — le pseudo du compte Message proposé en premier dans le menu Non — il s'ajoute à une fiche, il n'en crée pas
Cocher « joignable sur WhatsApp » sans numéro ne donne rien, et c'est voulu : le lien WhatsApp se construit à partir du téléphone. Un bouton posé sans numéro ouvrirait une page d'erreur.
La messagerie interne ne révèle rien, et c'est pour ça qu'elle passe en premier. Écrire à quelqu'un n'expose ni son adresse ni son numéro : le message part dans LearnWorlds, le destinataire étant désigné par son pseudo. Les canaux directs restent offerts — ils ne sont simplement plus la seule façon de joindre quelqu'un.
Un membre sans pseudo n'a pas cette entrée : un bouton mènerait à un composeur qu'on ne saurait pas adresser.
Un seul bouton dès qu'il y a plusieurs canaux. Une fiche complète empilait quatre boutons pleins — plus hauts à eux seuls que l'identité de la personne, et tous de la même couleur : la carte ne disait plus qui on regarde, elle disait comment le joindre. Les canaux se rangent donc sous un menu « Contacter ». À un seul canal, pas de menu : dérouler pour une ligne ajouterait un clic et cacherait l'action.
Ce n'est jamais l'e-mail du compte. L'adresse de connexion d'un membre n'est jamais publiée : seuls ces champs, remplis volontairement, servent de point de contact.
7 Pourquoi des initiales et pas des photos

Ce n'est pas un choix esthétique, c'est une limite de LearnWorlds : son interface d'administration n'expose aucun champ photo. La photo qu'un membre voit sur son propre profil n'est pas récupérable de l'extérieur, et son adresse contient une empreinte imprévisible qu'on ne peut pas reconstruire.

D'où trois sources, dans cet ordre :

  • cf_photo — une adresse d'image saisie à la main. Prioritaire, mais elle n'est proposée nulle part : aucun formulaire du site ne l'écrit, et aucun compte ne la porte au 24 août. En pratique, cette source n'existe pas.
  • La photo déposée par le membre lui-même depuis l'annuaire, conservée de notre côté.
  • Sinon, une pastille d'initiales colorée — et c'est le cas le plus fréquent.

Une photo qui ne charge pas retombe automatiquement sur les initiales : pas de carré gris cassé.

8 Ce qui protège les membres
  • Le consentement d'abord. Personne n'apparaît sans avoir répondu oui.
  • Les e-mails ne sortent jamais. Le serveur intermédiaire retire les adresses de connexion avant de renvoyer quoi que ce soit à la page.
  • Un contrôle anti-robot protège la liste : elle ne peut être obtenue que depuis un vrai navigateur, sur la vraie page.
  • La réciprocité. Depuis le 12 août, la liste n'est servie qu'à un membre qui figure lui-même dans l'annuaire. Un compte neuf, un compte qui a dit non, un compte sans contact : refusés.
  • L'identité est prouvée, plus déclarée. Depuis le 17 août, le serveur ne croit plus le navigateur sur parole quand il annonce « je suis ce membre » : il le fait démontrer. Avant cela, il suffisait d'annoncer l'identifiant d'un membre en règle pour lire l'annuaire à sa place.
  • Pas d'indexation. Les fiches ne remontent pas dans les moteurs de recherche.
La limite, dite franchement. Un membre en règle peut toujours recopier la liste qu'il a sous les yeux — c'est vrai de n'importe quel annuaire consultable, et aucune technique n'y change rien. Ce que les protections ci-dessus garantissent, c'est que seul un membre en règle l'a sous les yeux, et que personne n'y figure sans l'avoir accepté.
9 Ce qui peut casser
L'annuaire est presque vide, et la cause n'est pas le nombre de comptes. Relevé le 24 août : 5 fiches publiées pour 11 membres qui ont accepté d'y figurer. Les 6 autres n'ont renseigné aucun moyen de contact (§2). Un annuaire à 5 fiches n'est pas un annuaire : c'est le premier point à régler avant d'y envoyer une promo.
Les 42 profils de démonstration ont été retirés le 7 août, à votre demande. L'annuaire ne montre plus que des personnes réelles. C'était le bon choix — mélanger 5 vraies fiches à 42 inventées trompe autant le visiteur que le client — mais c'est aussi ce qui rend la grille clairsemée aujourd'hui.
  • Reformuler une option, c'est changer une donnée. Vrai pour le consentement, vrai pour le niveau, l'école ou le poste visé : les fiches déjà enregistrées gardent l'ancien texte et se retrouvent classées à part dans les filtres.
  • Renommer une Data key rompt tout. Le nom technique est ce que lit le code ; le libellé affiché peut changer librement, la clé non.
  • Un délai d'une minute ou deux est normal. La liste est mise en cache pour quelques minutes : un profil qu'on vient de remplir n'apparaît pas dans la seconde. Attendre avant de conclure à une panne.
  • « Je ne vois rien dans l'annuaire » n'est presque jamais une panne. C'est la réciprocité (§2) : on ne lit l'annuaire que si on y figure. Vérifier dans l'ordre : adresse validée, consentement, école, un contact.
  • Un champ créé mais non visible dans le profil ne sera jamais rempli par personne, et la fiche restera vide sans explication.
  • Un compte non validé ne peut pas enregistrer de fiche (règle du 5 août). C'est aujourd'hui la première explication d'une fiche qui « ne s'enregistre pas » — avant de chercher plus loin, vérifier que l'adresse a bien été confirmée.