Cheikhna SakhoFR/EN · Version française
All projects
Personal2025 – 2026

GPConnect

A France ↔ West Africa parcel marketplace where trust is enforced by code.

unit tests
270
API e2e tests
73
Playwright journeys
22
lines of TypeScript
~36k
  1. 01 Problem

    Between France and West Africa, travellers ("GPs") sell the spare kilos in their luggage. This informal market runs on WhatsApp groups: no verified identity, no proof of handover, no recourse when things go wrong.

  2. 02 Solution

    A Next.js PWA and a NestJS API that add trust at every step: identity checks (OTP, SMS, Stripe Identity KYC), negotiation in real-time chat, OTP codes as proof of handover and delivery, mutual ratings and admin-arbitrated disputes. Every external service sits behind a port, with one adapter per provider.

  3. 03 My role

    Solo, end to end: product, architecture, front, back, tests, CI/CD and deployment. It's my final-year project at ETNA.

Technical highlights

  • Radius search on listings with PostgreSQL 16 and PostGIS; 27 Prisma models.
  • Passwordless auth: OTP, Google/Apple/Facebook OAuth, RS256 JWT in httpOnly cookies and a global CSRF guard.
  • A Playwright journey plays the shipper and the carrier in two browsers; any 5xx error fails the test.
  • CI runs the tests against an ephemeral PostGIS, and a pre-commit hook rejects dead code and duplication.

Stack

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