Back to Projects
NestJSSource

WAHCHY

Full-stack fitness coaching platform (Next.js + NestJS/PostgreSQL) with a freemium model, an OpenAI-powered assistant with quotas and safety guardrails, and a coach marketplace — contract-first, RBAC, JWT auth and 190+ automated tests.

Demo

Demo video coming soon — stay tuned!

Overview

WAHCHY is a French-language, fully responsive web platform connecting fitness clients and coaches, built around a freemium model. Users discover workout programs, track their sessions and use an AI assistant with usage limits; a subscription unlocks premium content.

Coaches build public profiles, publish offers and receive client requests through a moderated marketplace — all supervised from an admin back office. Access is governed by 3 roles (client / coach / admin) with role-based access control.

The backend is a NestJS modular monolith in strict TypeScript on PostgreSQL + Prisma: JWT auth with an in-memory access token and HttpOnly refresh cookie, a REST API versioned under /api/v1 with Swagger/OpenAPI, Resend email, Supabase (storage only) and GitHub Actions CI. The frontend is a Next.js App Router app with Tailwind CSS, shadcn/ui, TanStack Query and an API client auto-generated from the backend's OpenAPI contract.

The architecture is contract-first — the OpenAPI spec is the single source of truth and frontend types are generated, never hand-written. The project ships 192 tests across unit / e2e / integration suites enforced in CI, follows security-first practices (RBAC, structured logging without sensitive data, secrets isolated in env, premium unlocked only by a signed backend webhook) and is an i18n-ready modular monolith designed so mobile apps and advanced marketplace features can be added without rework.

NestJSNext.jsPostgreSQLPrismaOpenAIStripeTanStack Query

Key Features

  • 3 roles (client / coach / admin) with role-based access control
  • Free & premium workout program library + session tracking
  • AI assistant (OpenAI, backend-only, usage-quota based) with safety guardrails — refuses medical advice, fully disableable
  • Freemium subscription — Stripe-ready via a swappable payment-provider abstraction
  • Coach marketplace — public profiles, offers, contact-request workflow with status tracking
  • Admin console — users, content, offers and moderation with audit history
  • Contract-first architecture — frontend types generated from the OpenAPI spec, never hand-written
  • 192 tests across unit / e2e / integration suites, enforced in CI
  • JWT auth — in-memory access token + HttpOnly refresh cookie, REST API under /api/v1 with Swagger/OpenAPI
  • Security-first — premium unlocked only by a signed backend webhook, structured logging without sensitive data
  • i18n-ready modular monolith, designed for mobile apps and marketplace growth

Have a project in mind?

I'm open to internships, collaborations and exciting engineering challenges.

Get in Touch