60 lines
3.5 KiB
Markdown
60 lines
3.5 KiB
Markdown
### Aperçu du dépôt
|
||
|
||
Ce projet est une application web basée sur Next.js (App Router) avec React et TypeScript. Elle propose un site public (accueil, formation, contact) et un espace authentifié de type « dashboard » intégrant un flux d’authentification 4NK via iframe, avec un mode démonstration activable.
|
||
|
||
### Pile technique
|
||
|
||
- **Framework**: `next` 15 (App Router dans `app/`)
|
||
- **Langage**: `typescript` 5
|
||
- **UI**: `react` 19, composants `shadcn/ui` (via `components/ui`), `lucide-react`
|
||
- **Styles**: `tailwindcss` 4, fichiers dans `styles/` et `app/globals.css`
|
||
- **Formulaires/Validation**: `react-hook-form` et `zod` (validation côté serveur dans les actions)
|
||
- **Emailing**: `nodemailer` (configuration SMTP via variables d’environnement)
|
||
- **Outils 4NK**: `lib/4nk` (MessageBus, UserStore, MockService, EventBus)
|
||
- **Divers**: `postcss`, `autoprefixer`, `date-fns`, `uuid`
|
||
|
||
### Structure principale
|
||
|
||
- `app/`
|
||
- `page.tsx`: page d’accueil publique (sections produit, sécurité, tarifs, liens vers formation, login)
|
||
- `layout.tsx`: layout racine de l’app (police, métadonnées, `globals.css`)
|
||
- `contact/page.tsx`: formulaire de contact (client) + action serveur `app/actions/contact.ts`
|
||
- `formation/page.tsx`: page formations (CTA vers devis); `formation/devis` (présent en dossier) si implémenté
|
||
- `login/page.tsx`: écran de login (auth 4NK via modal + mode démo)
|
||
- `dashboard/`: layout + pages (mock data en mode démo)
|
||
- `actions/`: actions serveur pour `contact` et `formation`
|
||
- `components/`
|
||
- `ui/`: primitives UI (boutons, cards, inputs, etc.)
|
||
- `4nk/`: composants spécifiques 4NK (`AuthModal`, `Iframe`, `DebugInfo` si utilisé)
|
||
- `lib/`
|
||
- `email.ts`: fonctions d’envoi d’emails (contact, formation)
|
||
- `4nk/`: bus de messages, stockage utilisateur, services mock
|
||
- `public/`: assets (logos, placeholders)
|
||
- `styles/`: styles globaux
|
||
- `next.config.mjs`: configuration Next (build sans bloquer sur ESLint/TS, images non optimisées)
|
||
- `tsconfig.json`: configuration TypeScript
|
||
- `package.json`: scripts Next (`dev`, `build`, `start`, `lint`) et dépendances
|
||
- `vite.config.ts` et `src/`: présence d’un squelette Vite non référencé par les scripts NPM (probablement résiduel)
|
||
|
||
### Fonctionnalités clés
|
||
|
||
- **Site public**: présentation du produit DocV, références, offre tarifaire, formations
|
||
- **Formulaire de contact**: envoi d’un email structuré via `nodemailer` (action serveur `submitContactForm`)
|
||
- **Demande de devis formation**: envoi d’un email structuré via `nodemailer` (action serveur `submitFormationForm`)
|
||
- **Authentification 4NK**:
|
||
- Modal d’authentification intégrant une `iframe` 4NK
|
||
- Protocole côté client via `MessageBus` (LISTENING → REQUEST_LINK → LINK_ACCEPTED → GET_PAIRING_ID)
|
||
- **Mode démonstration**: saisir `1234` comme identifiant d’entreprise sur `/login` active le mock local
|
||
- **Dashboard**: statistiques et listes « récentes » simulées en mode démo, navigation latérale, vérification token en mode non-mock
|
||
|
||
### Variables d’environnement importantes
|
||
|
||
- SMTP: `SMTP_HOST`, `SMTP_PORT`, `SMTP_SECURE`, `SMTP_USER`, `SMTP_PASSWORD`, `SMTP_FROM`
|
||
- Auth 4NK (UI): `NEXT_PUBLIC_4NK_IFRAME_URL` (ex. `https://dev.4nk.io`)
|
||
|
||
### Points d’attention
|
||
|
||
- `next.config.mjs` désactive les erreurs ESLint/TS au build (utile pour démo, à challenger pour la prod)
|
||
- Le dossier `src/` et `vite.config.ts` semblent non utilisés par les scripts; valider leur pertinence
|
||
- Les envois d’emails exigent des variables d’environnement valides côté serveur (build/exec)
|