healthai-admin
Interface d'administration de la plateforme HealthAI Coach.
- Repo : HealthAI-Corpo/healthai-web
- Image :
ghcr.io/healthai-corpo/healthai-admin - Port :
3000
Stack
| Couche | Technologie |
|---|---|
| Framework | Next.js 14 (App Router) |
| Styling | Tailwind CSS + CSS Variables |
| Composants UI | Radix UI |
| Graphiques | Recharts |
| Tableaux | TanStack Table v8 |
| Data fetching | TanStack Query v5 |
| Formulaires | React Hook Form + Zod |
| Tests E2E | Playwright + axe-core |
| Design system | Storybook 8 |
Installation
bash
npm install
cp .env.example .env.local
npm run dev
# → http://localhost:3000Variables 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:3002Variables 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 & CSVMode 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:uiDocker
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 sidebararia-sortsur les colonnes de tableau triables- Contraste couleurs conforme WCAG AA (vérifié via axe-core)