Skip to content

healthai-admin

Interface d'administration de la plateforme HealthAI Coach.

Stack

CoucheTechnologie
FrameworkNext.js 14 (App Router)
StylingTailwind CSS + CSS Variables
Composants UIRadix UI
GraphiquesRecharts
TableauxTanStack Table v8
Data fetchingTanStack Query v5
FormulairesReact Hook Form + Zod
Tests E2EPlaywright + axe-core
Design systemStorybook 8

Installation

bash
npm install
cp .env.example .env.local
npm run dev
# → http://localhost:3000

Variables d'environnement

ini
# Auth Zitadel (next-auth)
AUTH_SECRET=<openssl rand -base64 32>
AUTH_URL=http://localhost:3000
ZITADEL_ISSUER=http://localhost:8080
ZITADEL_CLIENT_ID=<client_id>
ZITADEL_CLIENT_SECRET=<client_secret>

# API NestJS
NEXT_PUBLIC_NESTJS_URL=http://localhost:3001
NEXT_PUBLIC_API_KEY=<api_key>
NEXT_PUBLIC_CLIENT_ID=healthai-admin-front

# ETL FastAPI
NEXT_PUBLIC_FASTAPI_URL=http://localhost:8000

# Mode mock (développement sans backend)
NEXT_PUBLIC_USE_MOCK=false

# Metabase
NEXT_PUBLIC_METABASE_URL=http://localhost:3002

Variables injectées au build

Les variables NEXT_PUBLIC_* sont injectées au moment du build Docker via ARG/ENV. Changer ces valeurs après le build nécessite un rebuild de l'image.

Pages principales

src/app/
├── (dashboard)/
│   ├── overview/      # KPIs + métriques temps réel
│   ├── analytics/     # Graphiques utilisateurs, nutrition, fitness
│   └── pipelines/     # Monitoring des flux ETL
└── (admin)/
    ├── datasets/      # Consultation & correction des datasets
    ├── validation/    # Workflow d'approbation
    └── exports/       # Export JSON & CSV

Mode mock

Contrôlé par la variable de build NEXT_PUBLIC_USE_MOCK :

ini
NEXT_PUBLIC_USE_MOCK=false   # API réelle (production)
NEXT_PUBLIC_USE_MOCK=true    # Données fictives (développement sans backend)

Tests

bash
# Tests unitaires Vitest
npm run test

# Tests E2E Playwright
npm run test:e2e

# Mode UI interactif
npm run test:e2e:ui

Docker

bash
docker build \
  --build-arg NEXT_PUBLIC_USE_MOCK=false \
  --build-arg NEXT_PUBLIC_NESTJS_URL=http://localhost:3001 \
  --build-arg NEXT_PUBLIC_FASTAPI_URL=http://localhost:8000 \
  -t healthai-admin:local .

Accessibilité (RGAA AA)

  • Skip link sur toutes les pages
  • Navigation clavier complète
  • aria-current="page" sur le lien actif de la sidebar
  • aria-sort sur les colonnes de tableau triables
  • Contraste couleurs conforme WCAG AA (vérifié via axe-core)