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
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.
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.
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