Les praticiens de l'hypnose, de la PNL et des thérapies brèves manquent d'un espace commun structuré pour se former, échanger et se tenir à jour. Les solutions existantes sont soit trop généralistes, soit éparpillées entre plusieurs outils.
Centraliser formations texte et vidéo dans un espace dédié
Créer une dynamique communautaire autour de forums thématiques
Monétiser l'accès aux contenus avancés via abonnement et packs
Les Questions Posées
Comment sécuriser l'accès multi-appareils sans friction pour l'utilisateur ?
Comment structurer un modèle d'abonnement + packs sans verrouiller l'architecture ?
Comment garantir la cohérence des contrats API entre backend et mobile dans un monorepo ?
Comment embarquer l'auth Google de façon robuste sur mobile (React Native) ?
Comment modérer et limiter les abus (spam, pseudos) sans alourdir l'UX ?
La Solution Sur Mesure
Architecture Technique
Monorepo pnpm en trois couches distinctes :
packages/contracts — source de vérité unique pour tous les schémas Zod partagés entre l'API et le mobile (pattern Contracts-First / Zod-Infer / No-DTO)
apps/api — API REST NestJS avec guards en cascade (auth → email vérifié → rôle admin), sessions TTL Redis, et validation automatique via ZodValidationPipe
apps/mobile — Application Expo / Expo Router avec stores Zustand, navigation réactive via useEffect, et paiements Stripe
Fonctionnalités Clés
Authentification : inscription email/password, connexion Google (via google-auth-library), vérification email, reset password par deep link
Gestion multi-appareils : limite à 3 appareils simultanés, fenêtre de grâce 120 min, révocation depuis le profil
Abonnement & packs : mensuel / annuel, accès aux formations et forums spécialisés via Stripe
Forums : posts, commentaires, limites anti-spam configurables côté serveur
Profil : pseudo modifiable une fois par mois, sujets suivis, mode sombre, gestion RGPD (export + suppression)
La principale contrainte était de maintenir une cohérence parfaite entre les contrats API et le client mobile sans dupliquer les types. Le pattern Contracts-First (schémas Zod dans un package partagé, types inférés automatiquement) a supprimé toute désynchronisation possible entre les deux couches.L'ordre d'enregistrement des guards NestJS (AuthGuard → EmailVerifiedGuard → AdminRoleGuard) a requis une attention particulière : un guard mal positionné ou un décorateur manquant peut laisser passer silencieusement des requêtes non autorisées.La navigation mobile avec Expo Router imposait d'éviter les appels directs à l'état du store dans les handlers — le passage à des useEffect réactifs a éliminé toute une classe de bugs de timing.
Impact
Statut actuel : En développement actif — Epics 1 à 9 livréesBénéfices attendus :
Espace structuré et monétisable pour une communauté de niche à forte valeur perçue
Contrats API/mobile unifiés : onboarding rapide d'un développeur supplémentaire
Architecture sécurisée et extensible (multi-tenant, rôles, RGPD) prête pour la mise en production
Couverture de tests complète : unitaire, intégration, E2E, smoke
"Alexandrie, c'est l'idée qu'une communauté de praticiens mérite un outil aussi rigoureux que leur pratique."
Related projects
Vitrine
Endo-sens
Page de présentation pour un stage de préparation dans le domaine de la santé et du bien-être féminin.
Solution métier sur mesure pour la gestion complète de la vie interne d'une loge maçonnique : orchestration rituelle, gestion administrative et transmission des savoirs.
Site vitrine avec formulaire de contact optimisé + capture de leads pour un artisan spécialisé en accessoires Velux couvrant la Bretagne et la Normandie.
Site vitrine moderne et performant pour une agence de communication spécialisée en écrans publicitaires, conçu avec Astro pour des performances optimales.
Plateforme collaborative de gestion documentaire juridique pensée pour durer. De la modélisation des données à la mise en production : une solution sur mesure pour centraliser, organiser et sécuriser la connaissance juridique d'équipes collaboratives.
Portfolio personnel moderne : une vitrine web construite à partir d’un starter Astro et adaptée à mes besoins pro du moment. Il n'est plus en ligne évidemment, remplacé par le présent site web.