Objet connecté NFC · PWA + backend Flask · Productivité freelance · 2026

YUKUBE

  • Next.js 14.2 · PWA
  • Flask 3 · SQLAlchemy 2
  • PostgreSQL · Redis Streams
  • OVH S3 · faster-whisper
  • Web Push · VAPID
  • — Client
    Yukube
  • — Année
    2026
  • — Statut
    Hardware + soft en production
  • — Live
    yukube.com
— Contexte

Un objet physique sans mode d'emploi numérique : six faces NFC à relier à des actions utiles. L'enjeu : une expérience plug & play — poser le téléphone, l'action se lance — sans app store ni configuration.

Objet connecté et sa plateforme complète : un cube 60 mm imprimé 3D, six puces NFC NTAG215, une PWA Next.js et une API Flask développée de bout en bout. Chaque tap frappe une route serveur qui résout la face en moins de 300 ms et redirige vers l'action assignée, l'événement partant dans un flux Redis drainé en tâche de fond vers PostgreSQL (14 tables). Backend riche : catalogue de 41 actions déterministes (timers, captures, facturation freelance, compteurs, lanceurs, webhooks, routines), authentification maison email/mot de passe à session glissante, « login par tap » du cube, mémos vocaux transcrits en local par Whisper, et notifications Web Push planifiées côté serveur, envoyées même application fermée.

— Résultats
  • 01

    Cube 60 mm imprimé 3D · 6 puces NFC NTAG215 · résolution serveur < 300 ms

  • 02

    41 actions déterministes + 12 fonctions · onboarding < 90 s · 0 app store requis

  • 03

    Back-office de fabrication : cube provisionné → 7 URLs NFC à encoder + suivi d'activation et KPIs

— Ce qui a été livré
  • Frontend PWA Next.js 14.2 (App Router, Tailwind, shadcn/ui) installable iOS/Android : onboarding 90 s, dashboard, reconfiguration des 6 faces en drag-and-drop (@dnd-kit), graphes recharts
  • API Flask 3 + SQLAlchemy 2 sur 14 tables PostgreSQL : hot-path NFC < 300 ms, taps encaissés via Redis Streams puis écrits en base par un worker systemd (fallback synchrone si Redis tombe)
  • Catalogue serveur de 41 actions déterministes + 12 fonctions et leurs presets : timers focus (respiration, ambiance, DND), captures texte/vocal, facturation client au TJM, compteurs, lanceurs, webhooks, routines de journée
  • Auth développée sur-mesure : email/mot de passe (bcrypt), cookie signé HTTP-only, session glissante 365 j, plus « cube-as-auth » — taper le cube ou sa carte reconnecte le propriétaire sur n'importe quel appareil (Clerk conservé en fallback legacy)
  • Mémos vocaux : upload direct par URL présignée vers OVH Object Storage (S3, boto3), transcription locale faster-whisper (français, timestamps par mot, statut poll par le front)
  • Web Push maison (clés VAPID auto-générées et persistées) : timers et rappels planifiés côté serveur, tirés à échéance par le worker de fond ; abonnement, test et annulation gérés en base
  • Analytics serveur : focus du jour, score de momentum 0-100 à décroissance exponentielle, heatmap des taps par heure, stats projets, journal composite par jour et rétrospective « On This Day »
  • Back-office de production (API /api/admin + CLI Flask, protégé par token admin) : fabrication d'un cube (UID, n° de série YUKUBE-AAAA-NNNN, carte d'activation) renvoyant les 7 URLs NFC à encoder, liste et suivi d'activation des cubes, KPIs business (users, cubes, taps, sessions, notes)
  • Hardware : cube 60 mm Elegoo Centauri Carbon 2 (PLA mat), 6 puces NTAG215 password-protégées + carte d'activation, 3 éditions (classic / signal / noir), hébergement OVH VPS (Nginx + Gunicorn + systemd)
— Voir en production
yukube.com
Site en production réelle. Lien direct, sans démo.
— Un projet comme celui-ci ?

Décrivez le vôtre en trois phrases. Réponse du studio sous 24 h ouvrées, sans intermédiaire.

Créer un projet similaire