Elone Maccioni, développeur web freelance — retour à l’accueil
← Retour aux projets

Foot5 Match — mise en relation pour le foot amateur

À propos du projet

Application de mise en relation pour le foot à 5 en Île-de-France : une équipe à qui il manque un joueur publie sa demande, l'application lui propose les profils les plus pertinents à proximité. Le projet est un monorepo TypeScript dont je développe l'API en Node.js avec Prisma, sur PostgreSQL et son extension géographique PostGIS pour les recherches par distance, Supabase assurant l'authentification et le stockage. Le moteur de matching combine quatre critères pondérés — poste, fiabilité, proximité et niveau — et chaque joueur porte un score de fiabilité qui évolue avec ses présences et ses désistements. Ces deux calculs sont écrits en TypeScript pur, hors base de données : ce sont les endroits où une régression silencieuse coûte le plus cher, ils doivent rester testables sans infrastructure.

Technologies utilisées

TypeScriptNode.jsPrismaPostgreSQLPostGISSupabaseVitest

Fonctionnalités clés

  • Moteur de matching pondéré : poste, fiabilité, proximité et niveau.
  • Score de fiabilité par joueur, recalculé selon les présences et les désistements.
  • Recherche géographique par distance grâce à PostGIS.
  • Règles métier regroupées dans un fichier unique, importé aussi bien par le moteur que par les tests.
  • Monorepo avec un paquet de contrats partagés entre l'API et le client.
  • Authentification et stockage des fichiers délégués à Supabase.

Liens