Aller au contenu
Projets sélectionnés

Projets

Systèmes livrés, produits en développement et prototypes. Filtrez par état.

État
Rôle
012024 · présentEn productionCofondateur

The Mad Space

Marketplace bilingue · créations imprimées à la demande

The Mad Space permet aux créateurs de soumettre leurs œuvres, de les transformer en vêtements et de recevoir une commission sur chaque vente. Comme CTO, je prends en charge la direction technique, l'architecture et le développement de la plateforme — du parcours créateur jusqu'au paiement et à la production automatisée des commandes.

Next.js 16TypeScriptPostgreSQLPrismaStripeGelatoSupabaseVercel
37modules de routes API
4devises · CAD/USD/EUR/GBP
2langues · FR/EN
022025 · présentEn développementCofondateur

Cadence

App mobile coaching sportif

Application mobile coach ↔ athlète co-fondée avec Alexandre (design). 169+ issues structurées sur 13 sprints, audit concurrentiel de 8+ apps, conformité Loi 25 + PIPEDA + GDPR-ready. Beachhead : coachs musculation francophones au Québec.

ExpoReact NativeTypeScriptNativeWindSupabaseNext.js
169+issues GitHub
13sprints planifiés
74/74features couvertes
032026Projet académiqueScolaire

CanTelcoX

BSS télécom événementiel · saga, Outbox, DLQ

Système de support commercial (BSS) d'un opérateur mobile : portabilité de numéro, activation de ligne, facturation, MFA et anti-fraude. Le système passe d'un découpage microservices synchrone à une architecture orientée événements — 6 services hexagonaux, aucun appel HTTP direct de service à service dans le flux métier, saga chorégraphiée sur RabbitMQ avec compensation, patron Outbox transactionnel, file de rebut et traçage distribué. Deux intégrations externes réelles sont isolées derrière une couche anticorruption : free5GC (cœur réseau 5G, provisionnement des MSISDN via les API UDM) et un hub de portabilité Java, en rôle receveur et donneur, par webhooks TMF Event v4 à signature vérifiée. Ce que j'en retiens n'est pas la liste de patrons mais la façon dont l'optimisation a été conduite : cinq paliers, chacun mesuré et consigné, y compris celui qui n'a rien donné. Le palier 2 est le plus instructif — accélérer la publication a amélioré l'accusé de réception sans améliorer la convergence, parce que le goulot s'était déplacé vers svc-subscription ; la mesure l'a localisé (3 960 messages en attente sur un seul consommateur) et les paliers suivants l'ont traité. Résultat final : accusé P95 divisé par 2,4, convergence des sagas passée de 47 % à 100 %, zéro erreur sur 22 031 requêtes.

Python 3.12FastAPIRabbitMQMySQL · FlywayRedisKrakenDNGINXPrometheus
Accusé P95 ÷ 2,4 · 952 → 396 ms
Convergence des sagas 47 % → 100 %
0erreur sur 22 031 requêtes
vibe
042026 · présentPrototypeCofondateur

Vibe Montréal

Découverte locale intelligente · Prototype mobile + web

Guide local intelligent qui aide à décider quoi faire maintenant à Montréal selon le mood, l'heure, le budget, la localisation et la station STM. L'utilisateur choisit une ambiance — Chill, Romantique, Étudier, Aventure, Budget, Social ou Solo — et reçoit cafés, restos, bars, activités, parcs, rooftops et spots cachés ouverts autour de lui. Deux différenciateurs : STM Pulse, une carte du métro de Montréal qui transforme chaque station en interface de découverte (événements, spots, temps de marche, budget, ambiance autour de l'arrêt), et Vibe AI, un assistant conversationnel qui change une envie vague (« quoi faire ce soir en 2h ? », « date pas cher ») en plan concret. Une couche communauté légère (mini-reviews, votes de vibe, nouveaux spots proposés avec badge Découvreur). Prototype interactif couvrant accueil mood-first, Vibe AI, STM Pulse, Explorer, fiches lieux enrichies, communauté et version bureau — mobile-first, mais navigable sur web et bureau.

Claude Design → Claude CodeHTML/CSS/JS (runtime dc)Prototype interactif mobile + web/bureauDesign system dark mode (tokens CSS)Poppins + MontserratSTM Pulse (carte métro interactive)Vibe AI (assistant conversationnel simulé)Recommandations mood-first (7 ambiances)
Mobile + web / bureau
STM Pulse · carte métro interactive
Vibe AI · plans en langage naturel
052025 · présentEn développementFondateur

DPM Elevate

Agenda, tâches, habitudes & focus · App web

Application web personnelle de planification — agenda, tâches, habitudes, objectifs et focus — que je conçois et développe en solo, aujourd'hui déployée. Née d'une maquette détaillée d'une vingtaine d'écrans, elle est devenue un vrai produit Next.js : synchronisation réelle des calendriers Google et Microsoft, authentification multi-fournisseurs (NextAuth v5 — Google, Microsoft, Apple, GitHub, OIDC) et une attention sérieuse à la sécurité et à la vie privée — jetons OAuth chiffrés au repos (AES-256-GCM), row-level security en défense en profondeur, limitation de débit — avec conformité Loi 25 : suppression de compte, export des données et journal d'audit en libre-service. Bilingue FR/EN, thème clair/sombre, sur tRPC et Prisma/PostgreSQL.

Next.js 14TypeScripttRPCPrismaPostgreSQL (Supabase)NextAuth v5Tailwind · Radixnext-intl (FR/EN)
Sync Google + Microsoft (réelle)
Auth multi-fournisseurs (NextAuth v5)
Jetons chiffrés · RLS · rate-limit
062026PrototypeCofondateur

Wise & Wealthy

Coach financier IA · Prototype mobile

Concept et prototype interactif de Wise & Wealthy, un coach financier personnel, assisté par l'IA, qui rend l'éducation financière plus accessible aux 18–35 ans peu à l'aise avec la finance. Le produit est pensé à partir d'un modèle d'affaires complet (12 pages : étude de marché, Business Model Canvas, analyse concurrentielle YNAB/Rocket Money/Wealthsimple, MVP, indicateurs) et d'un PRD de découverte, et se positionne à l'opposé des apps de trading : éducation, vulgarisation et accompagnement plutôt que spéculation. La maquette mobile couvre une vingtaine d'écrans et d'états — onboarding guidé, tableau de bord (revenus, dépenses, épargne, « série de clarté », action du jour), assistant conversationnel « Wiz », budget et budget setup, objectifs d'épargne, mini-leçons + flashcards + exercices, actualité financière vulgarisée, notifications, profil, confidentialité et paywall freemium. Identité rassurante et non intimidante (mascotte Wiz, verts apaisants, Bricolage Grotesque + Plus Jakarta Sans), bilingue FR/EN, thème clair/sombre. Plus qu'une seule app, c'est une petite suite : l'app adulte ; « Mes finances », surface de suivi avancée (Transactions, Prévu vs réel, Cashflow, Abonnements, Dettes, import banque/CSV) qui incarne le palier premium ; « Wise & Wealthy Kids », déclinaison ludique pour enfants (tirelire, pièces, étoiles, jalons) ; « Espace Famille », espace parents avec code PIN à 4 chiffres et profils enfants ; et Wiz, la mascotte réutilisable (6 humeurs) qui unifie le tout. Positionnement assumé : éducation financière, pas de conseil réglementé — orienté confiance et protection des données (Loi 25).

Claude Design → Claude Codedc-runtime (React 18)Suite de 5 surfaces (cadre téléphone)20+ écrans / étatsAssistant IA « Wiz » (coach financier)Dashboard · Budget · Objectifs · Leçons« Mes finances » : Transactions · Cashflow · Dettes · AbonnementsActualité financière vulgarisée
Suite : adulte · finances · Kids · Famille
20+écrans · assistant IA « Wiz »
Freemium · premium 9,99–19,99 $/mois
072026PrototypeClient

Kim Dubois Photographe

Site vitrine photographe animalière · Prototype

Reprise et refonte du site d'une photographe animalière primée à l'international (TIPPA 2024-2025, Bronze), dont le site Wix était resté inachevé. Démarche complète orientée premier client payant : formulaire de découverte Word de 60 questions, deck PowerPoint de 9 diapos pour cadrer l'appel, brief Claude Design structuré, puis maquette générée et implémentée. Au fil des itérations, le prototype est passé d'une page d'accueil unique à une maquette complète et interactive : multi-pages (accueil, galerie portfolio, page distinctions), une quinzaine de sections modulaires (héros, compteurs, parcours, forfaits, témoignages, boutique, espace client, infolettre, FAQ, pont de l'arc-en-ciel…), de vraies photos primées organisées par catégorie, un carrousel intelligent avec lightbox et un fil « cousu » animé au scroll. Le tout bilingue FR/EN, clair/sombre, sélecteur d'audience (particuliers/commercial), identité éditoriale dorée (Cormorant Garamond + Mulish), protection légère des images et un assistant-concierge menant à un contact réel. Un mode administrateur intégré — « liberté encadrée » — permet d'éditer contenu et apparence, masquer/réordonner les sections et gérer des codes promo, pour absorber les retours de la cliente sans jamais casser la maquette.

Claude Design → Claude CodeHTML/CSS/JS (React + Babel)Multi-pages (accueil · galerie · distinctions)~15 sections modulaires réordonnablesÉditeur visuel intégré (mode admin)Assistant-concierge (clavardage guidé)Carrousel intelligent + lightboxFil signature (CSS scroll-driven + repli rAF)
Maquette multi-pages bilingue · clair/sombre
~15sections modulaires + éditeur admin intégré
Vraies photos primées (TIPPA 2024-2025) + concierge
boa-traiteur
082026PrototypeClient

BOA — Chef privé

Site de réservation chef privé & service à table · Prototype bilingue

Conception et prototype interactif de BOA, la marque de chef privé et service à table à Montréal du chef Max. Repris d'un PRD rempli par le client (document Word) et d'une analyse concurrentielle (Take a Chef, The Culinistas, Cozymeal, Tock), le site vend une expérience — « When the love for food meets unforgettable memories » — plutôt qu'un simple traiteur : soupers privés, mariages, anniversaires et corporatif, préparés et servis à domicile. La maquette couvre tout le parcours : accueil éditorial (hero, piliers « l'art de recevoir », trust strip, « ce qui est inclus »), un concierge culinaire qui recommande un menu en 30 secondes (occasion, convives, budget, restrictions), les menus (fixe / événement / appel requis), les expériences, les lieux, une galerie photos, la présentation du chef et le contact. Le cœur est un parcours de réservation multi-étapes : menu → date (délai minimum 2 semaines, frais de dernière minute signalés, waitlist « me prévenir ») → format (service à table / table du chef / événement), convives (plafond 20, +20 → appel obligatoire), adresse (Île de Montréal · frais selon distance) et allergies → résumé (dépôt 25 % non remboursable, solde selon entente, taxes non appliquées) → paiement mocké (carte / débit / Interac) → confirmation (dépôt reçu, rappel 48 h, notification à Max). S'y ajoutent un chatbot « Concierge BOA » à réponses guidées, un sélecteur FR/EN, un thème clair/sombre bourgogne & crème (Newsreader + Hanken Grotesk + Allura), des animations premium respectant prefers-reduced-motion, et un mode administrateur avec emplacements photo en drag & drop pour brancher les vraies images. Tout est mocké proprement — aucun paiement réel, aucune IA branchée — en attendant de trancher prix, calendrier (Calendly), processeur de paiement (Stripe / Square) et textes légaux (Loi 25) avec le client.

Claude Design → Claude CodeHTML/CSS/JS (runtime dc)Bilingue FR/EN (dictionnaire maison)Thème clair/sombre (tokens CSS)Newsreader + Hanken Grotesk + AlluraPalette bourgogne #6E1F2E + crèmeConcierge culinaire (reco menu en 30 s)Chatbot « Concierge BOA » (mocké)
Bilingue FR/EN · clair/sombre
Réservation multi-étapes + dépôt 25 %
Concierge menu 30 s + chatbot BOA
crcc
092026PrototypeClient

CRCC — Refonte

Refonte de site OSBL · Maquette bilingue

Maquette de refonte complète pour le Club du Rex de Cornouailles du Canada (OSBL bilingue d'éleveurs). Site statique multi-pages organisé autour de trois parcours — adopter un chaton, devenir éleveur membre, soutenir le club. 10 pages (Accueil, La race, Annuaire des éleveurs, Codes & éthique, Règlements, Publications, Adhésion, Administrateurs & comités, Contact) avec explorateur d'anatomie interactif, carte de répartition filtrable et identité Rouge & Blanc dérivée du logo officiel. Bilingue FR/EN à bascule instantanée, thème clair/sombre, mobile-first (375px → bureau), accessibilité WCAG 2.2 AA, sans backend. Données réelles intégrées (11 chatteries, badges Anima-Québec, 7 associations félines, ressources officielles), sans inventer ni surpromettre.

Claude DesignHTML/CSS/JS statiquesCSS Custom Properties (tokens)i18n maison FR/ENJavaScript vanillaMontserratARIAWCAG 2.2 AA
10pages · bilingue FR/EN
Explorateur d'anatomie (10 parties)
11chatteries · données réelles
10Jan. 2026 · Avr. 2026Projet académiqueScolaire

FinanceJ

App desktop de finances personnelles

Application desktop Java de gestion de finances personnelles (revenus, dépenses, budgets). Équipe de 6 développeurs, cours LOG240 (Tests et Maintenance). 5 250+ LOC, 133 tests (100% couverture JaCoCo), 85 commits. Architecture MVC avec Singleton, DAO et AbstractTableModel. Contributeur le plus actif (28 commits).

Java 21MavenJava SwingApache DerbyJUnit 4AssertJ SwingJaCoCoCheckstyle
5 250+LOC
133tests · 100% couverture
85commits · 6 devs
tatzy
112025 · 2026PrototypeCofondateur

Tatzy

Réservation de taxi en ligne · Prototype

Site de réservation de taxi cofondé avec Aimen Djebbar. Monorepo web + API : page d'accueil, tunnel de réservation et fondations d'une API, en Next.js 14 (App Router) avec Prisma/PostgreSQL, bilingue FR/EN. Le prototype est déployé sur Vercel. Encore au stade prototype — pas de trafic client réel pour l'instant.

Next.js 14TypeScriptTailwind CSSPrismaPostgreSQLnext-intl (FR/EN)ZodVercel
Monorepo web + API
Bilingue FR/EN
Déployé sur Vercel
122026Projet académiqueScolaire

LOG430 — Architecture logicielle

Du monolithe aux microservices événementiels

Série de laboratoires du cours d'architecture logicielle à l'ÉTS : une même application de gestion de magasin est réarchitecturée d'un labo à l'autre. Le parcours va d'un monolithe conteneurisé (Docker, CI/CD) vers du client-serveur avec DAO, du CQRS avec persistance polyglotte (PostgreSQL + Redis), des API REST puis GraphQL, du cache et de la répartition de charge (Nginx, tests de charge Locust), de l'observabilité (Prometheus), puis une décomposition en microservices derrière une passerelle d'API, un microservice de paiement isolé, une saga orchestrée avec traçage distribué (Jaeger), de l'architecture événementielle avec Kafka (event sourcing, saga chorégraphiée, patron Outbox) et enfin des bases de données distribuées (YugabyteDB / CockroachDB). Chaque labo isole un patron sur la même application jouet. Le projet de session, CanTelcoX, est l'endroit où ces patrons sont assemblés dans un seul système sur un domaine métier réel — Phase 1 en microservices synchrones (5 services DDD derrière une passerelle Kong en haute disponibilité, cache Redis, observabilité Prometheus/Grafana), Phase 2 en architecture événementielle : voir la fiche dédiée.

PythonFlask / FastAPIDocker ComposePostgreSQLRedisApache KafkaGraphQLKong / KrakenD
12dépôts · monolithe → microservices
Projet de session : CanTelcoX (fiche dédiée)
REST · GraphQL · Kafka · Saga
132025Projet académiqueScolaire

LOG210 — Analyse et conception

Modélisation UML & conception OO · Équipe

Laboratoire d'analyse et de conception logicielle à l'ÉTS, en équipe de 6. À partir d'un squelette « jeu de dés », l'équipe modélise et implémente une application de gestion de cours et de devoirs : modèle du domaine UML, cas d'utilisation, conception en couches avec le patron GRASP Contrôleur, passerelle/adaptateur vers un backend, et une suite de tests Jest avec couverture. Le tout appuyé par des rapports d'itération.

TypeScriptNode.jsExpressJestUML (PlantUML)GRASP
Équipe de 6 · GitHub Classroom
Modèle du domaine UML · cas d'usage
Patron GRASP Contrôleur
gti350
142026Projet académiqueScolaire

Tron Light Cycles — GTI350

Jeu 2 joueurs · Interfaces & manipulation directe · Équipe

Jeu « Tron » 2 joueurs codé en JavaScript vanilla (sans librairie) pour le cours d'interfaces utilisateurs à l'ÉTS, en équipe de 2. Rendu sur Canvas HTML5, deux modes d'entrée (clavier avec gestion QWERTY/AZERTY et gestes de souris pour diriger la moto directement sur le canvas), détection de collisions (traînées + murs), score multi-manches, boutons virtuels pause/reprise/redémarrage et accélération progressive. Architecture modulaire (9 modules à responsabilité unique) pensée pour le travail en parallèle sur Git.

JavaScript (vanilla)Canvas HTML5Modules ES6HTML/CSS
Vanilla JS · Canvas HTML5
2modes d'entrée (clavier + souris)
9modules · ~460 lignes