Wyatt - JWL Marketing
Développeur produit — JWL Marketing

Je construis les outils internes que mon équipe utilise vraiment.

Applications mobiles, backend et infrastructure pour JWL Marketing — de la première idée jusqu'à la mise en production sur le Play Store, en passant par la conception, le code, les tests et le déploiement serveur.

jwl-app — bundleRelease
$ ./gradlew :app:bundleRelease
> Task :app:compileReleaseKotlin
> Task :app:minifyReleaseWithR8
> Task :app:bundleRelease
BUILD SUCCESSFUL in 1m 6s
$ curl -s .../auth/verify
> {"user": {"role": "client"}, "token": "…"}
✓ 200 — connexion client validée
PHOTO
Wyatt
Qui je suis

Autodidacte, orienté produit fini.

Je m'occupe de la partie technique de JWL Marketing : l'intranet de l'agence, son pont avec l'hébergement, et désormais l'application mobile et montre connectée utilisées au quotidien par l'équipe et par nos clients. Mon approche : partir d'un vrai besoin métier, itérer vite, et ne rien livrer qui n'ait pas été testé en conditions réelles. Le projet ci-dessous — l'application JWL Intranet — résume bien ma façon de travailler : un existant imparfait, un cahier des charges qui évolue en continu, et une volonté d'aller jusqu'au bout, jusqu'à la mise en ligne publique sur le Play Store.

Projet phare

JWL Intranet — l'agence dans la poche

Une application Android (et Wear OS) qui donne à l'équipe et aux clients de JWL Marketing un accès complet à l'intranet de l'agence : factures, devis, contrats, rendez-vous, messagerie — le tout connecté en direct à l'hébergement existant.

Le point de départ

Un intranet existant, aucune app mobile

JWL Marketing tournait déjà sur un intranet PHP maison, hébergé sur OVH. L'objectif : donner à l'équipe et aux clients un vrai accès mobile — natif, rapide, sécurisé — sans dupliquer la logique métier déjà en place côté serveur.

Le bug qui a tout changé

Un diagnostic qui a révélé un défaut structurel

Les comptes clients ne pouvaient tout simplement pas se connecter à l'application. En creusant, le constat : l'authentification mobile vérifiait une table de comptes conçue pour un tout autre logiciel interne — les clients n'y avaient jamais existé. La correction a nécessité de reconstruire tout le modèle d'authentification pour qu'il s'appuie directement sur les vrais comptes de l'intranet.

// avant — mauvaise table, clients invisibles
SELECT * FROM app_users WHERE email = ?

// apres — vrai compte intranet, admin + client
SELECT id, role, client_id, password FROM users WHERE email = ?
→ jetons desormais lies a l'identite reelle du compte
Sécurité, sans compromis

Verrouillage progressif, code PIN, biométrie

Inspiré des mécanismes des grands éditeurs : après plusieurs échecs de connexion, le délai d'attente grimpe progressivement avant suspension du compte. Côté appareil, un code personnel à 4 chiffres (avec retour haptique) prend le relais de la biométrie pour un déverrouillage plus rapide au quotidien.

Intégration tierce

Synchronisation Calendly en temps réel

Les rendez-vous pris sur le Calendly de l'agence remontent automatiquement dans l'application, rattachés au bon client par recoupement d'email — avec un rattachement manuel possible pour les cas particuliers.

Écosystème complet

Une seconde app, sur une seconde plateforme

Le module Wear OS partage la session du téléphone via l'API Data Layer de Google : si le téléphone est déjà connecté, la montre l'est aussi — sans ressaisie d'identifiants.

Ce que ça couvre

Vue d'ensemble de l'application

Admin

Pilotage complet

Factures, devis, contrats créés et suivis directement depuis l'app, avec notification automatique au client concerné.

Client

Espace dédié

Chaque client ne voit que ses propres documents, rendez-vous et échanges — cloisonnement strict côté serveur.

Confidentialité

Chiffres masqués

Le chiffre d'affaires et les statistiques sensibles restent masqués par défaut, révélables en un geste — utile en clientèle.

Méthode de travail

Itérer vite, vérifier en conditions réelles

01 — Cadrer

Comprendre le vrai besoin

Partir d'un usage concret plutôt que d'un cahier des charges figé — un client qui ne peut pas se connecter compte plus qu'une liste de fonctionnalités.

02 — Construire

Code, des deux côtés

Application Kotlin d'un côté, routes PHP de l'autre — les deux évoluent ensemble, jamais l'un sans vérifier l'impact sur l'autre.

03 — Vérifier

Déployer pour de vrai

Chaque changement serveur est mis en ligne et testé par une vraie requête avant d'être considéré comme terminé — jamais de "ça devrait marcher".

04 — Livrer

Jusqu'au Play Store

Signature de l'application, fiche store, politique de confidentialité, formulaire de sécurité des données — le travail ne s'arrête pas au code.

Autres travaux

Le reste de l'atelier

Bureau — Electron

JWL Workspace

Application de bureau (Windows + Mac) pour la gestion interne et le pointage horaire de l'équipe, avec verrouillage plein écran dédié.

Electron · GitHub Actions
Web — Vitrine

Site & pages de conformité JWL Marketing

Refonte des pages d'assistance Google Play (politique de confidentialité, support) avec l'identité visuelle de l'agence.

PHP · Design system JWL
Discutons

On construit quelque chose ensemble ?

wyatt.le@jwlmarketing.frJWL Marketing — Aix-en-Provence