• Projets
  • Expertise
  • Ingénierie
  • Services
  • Tarifs
  • À propos
  • Contact
Discuter d’un projet
  • Projets
  • Expertise
  • Ingénierie
  • Services
  • Tarifs
  • À propos
  • Contact
Discuter d’un projet
Valerii Vvedenskyi

Les études de cas décrivent de vrais produits sur lesquels j'ai travaillé ; chaque fait de ce site en provient.

Sections

  • Projets
  • Expertise
  • Ingénierie
  • Services
  • Tarifs
  • À propos
  • Contact

Langues

  • English
  • Українська
  • Русский
  • Қазақша
  • Français
  • Deutsch
  • Español
  • Português

Contact

valerii.vvedenskyi@gmail.com

Toronto, Canada

LinkedIn

© 2026 Valerii Vvedenskyi. Tous droits réservés.

Politique de confidentialité

Conçu et développé par Valerii Vvedenskyi avec Next.js.

  • English
  • Українська
  • Русский
  • Қазақша
  • Français
  • Deutsch
  • Español
  • Português
  • English
  • Українська
  • Русский
  • Қазақша
  • Français
  • Deutsch
  • Español
  • Português
Tous les travaux

Fitofan

Plateforme sportive : web, applications mobiles et le backend derrière elles

Une seule plateforme pour les athlètes, entraîneurs, clubs et fans : une application web en 11 langues, des applications iOS et Android et un seul backend dont je porte la responsabilité de bout en bout.

Rôle
Senior Full-Stack & Mobile Engineer
Période
2024 – 2026

Contexte

Fitofan s’adresse aux athlètes, entraîneurs, parents, clubs et ligues avec une application web Next.js, des applications Flutter pour iOS et Android et un backend NestJS. J’assure la livraison sur toute la stack : architecture, API, données, infrastructure et releases, et depuis 2026 je maintiens seul l’application mobile.

Le défi

Garder un produit cohérent sur trois bases de code et 11 langues tout en ajoutant données sportives en direct, paiements, publication sociale et fonctions IA sans ralentir les releases.

Construit sur toutes les couches

  • Application web Next.js 16 en Feature-Sliced Design : plus de 140 pages, 11 locales, environ 10 000 clés de traduction avec parité vérifiée en CI
  • Backend NestJS de plus de 90 modules, PostgreSQL et plus de 290 migrations, Swagger et health checks
  • Synchronisation événementielle via RabbitMQ avec consommateurs idempotents, dead-letter queue et identifiants de corrélation
  • Cache Redis avec invalidation pilotée par décorateurs ; passerelles Socket.IO pour les commentaires et les sessions en direct
  • Calendriers, résultats et cotes en direct depuis Sportmonks et API-Football ; publication sociale vers Meta, TikTok, LinkedIn et YouTube
  • Abonnements Finix plus vérificateurs de paiement pour Stripe, Square, PayPal, LiqPay, Mercado Pago, GCash et Monopay
  • Assistant OpenAI avec appel d’outils, transcription Whisper et génération d’images Replicate
  • Application Flutter : BLoC, cache hors ligne Hive, Socket.IO, notifications push, AdMob, Live Activities iOS, 12 locales, plus de 360 tests
  • CI/CD : contrôles lint et i18n, Jest, Docker multi-étapes, registre de conteneurs, déploiement SSH ; web sur Vercel
  • Packages d’inscription et de création de club partagés, réutilisés par GymTeam via un contrat d’hôte injectable
  • R&D IA et vision dans le même écosystème : une application d’évaluation sportive pour enfants avec estimation de pose sur l’appareil en Flutter et abonnements intégrés, et une analyse de technique de taekwondo dans le navigateur avec MediaPipe et TensorFlow.js

Points d’ingénierie

  • Consommateurs d’événements idempotents : chaque message est enregistré avant d’être acquitté, donc les retries et les rejeux ne s’appliquent jamais deux fois
  • Architecture imposée par l’outillage : règles de couches, une baseline lint figée qui ne peut que rétrécir, détection des cycles de dépendances et parité i18n sur chaque pull request
  • Live Activities iOS natives pilotées depuis Flutter via un pont method channel
  • Un seul parcours d’inscription packagé derrière un contrat d’hôte et consommé par deux produits

Ce que cela permet

Les fonctionnalités sortent sur le web, le mobile et le backend en un seul changement, et la plateforme échange les données de clubs avec GymTeam en temps réel.

Preuves

  • Scores en direct, événements de match et commentaires diffusés en temps réel sur le web et le mobile
  • Paiements via Finix, avec des vérificateurs Stripe, PayPal, Square, LiqPay et Mercado Pago
  • Assistant IA avec 15 outils métier, transcription vocale et médias générés
  • Live Activities iOS pour les scores de match en direct, une extension native autour de Flutter
  • Site web
  • App Store
  • Google Play

Stack

  • Next.js
  • NestJS
  • Flutter
  • PostgreSQL
  • RabbitMQ
  • Redis
  • Socket.IO
  • OpenAI API
  • Finix
  • Docker

Cas suivant

GymTeam
Discuter d’un projet