Cheikhna SakhoFR/EN · English version
Tous les projets
Perso2025 – 2026

GPConnect

Une marketplace de colis France ↔ Afrique de l'Ouest, où la confiance est garantie par le code.

tests unitaires
270
tests e2e API
73
parcours Playwright
22
lignes de TypeScript
~36k
  1. 01 Problème

    Entre la France et l'Afrique de l'Ouest, des voyageurs (les « GP ») revendent les kilos libres de leurs bagages. Ce marché informel repose sur des groupes WhatsApp : pas d'identité vérifiée, pas de preuve de remise, aucun recours en cas de litige.

  2. 02 Solution

    Une PWA Next.js et une API NestJS qui ajoutent la confiance à chaque étape : vérification d'identité (OTP, SMS, KYC Stripe Identity), négociation dans le chat en temps réel, codes OTP comme preuve de remise et de livraison, notation mutuelle et litiges arbitrés par un admin. Chaque service externe est derrière un port, avec un adapter par fournisseur.

  3. 03 Mon rôle

    Seul de bout en bout : produit, architecture, front, back, tests, CI/CD et déploiement. C'est mon projet de fin d'études à l'ETNA.

Points techniques

  • Recherche d'annonces par rayon avec PostgreSQL 16 et PostGIS ; 27 modèles Prisma.
  • Auth sans mot de passe : OTP, OAuth Google/Apple/Facebook, JWT RS256 en cookies httpOnly et guard CSRF global.
  • Un parcours Playwright joue l'expéditeur et le transporteur dans deux navigateurs ; toute erreur 5xx fait échouer le test.
  • La CI lance les tests sur un PostGIS éphémère et un hook pre-commit refuse le code mort et la duplication.

Stack

  • Next.js 14
  • NestJS 10
  • PostgreSQL
  • PostGIS
  • Prisma
  • Socket.io
  • Stripe Identity
  • Playwright
  • Docker
  • GitHub Actions