docv/docs/overview.md

60 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

### 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 dauthentification 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 denvironnement)
- **Outils 4NK**: `lib/4nk` (MessageBus, UserStore, MockService, EventBus)
- **Divers**: `postcss`, `autoprefixer`, `date-fns`, `uuid`
### Structure principale
- `app/`
- `page.tsx`: page daccueil publique (sections produit, sécurité, tarifs, liens vers formation, login)
- `layout.tsx`: layout racine de lapp (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 denvoi demails (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 dun 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 dun email structuré via `nodemailer` (action serveur `submitContactForm`)
- **Demande de devis formation**: envoi dun email structuré via `nodemailer` (action serveur `submitFormationForm`)
- **Authentification 4NK**:
- Modal dauthentification 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 dentreprise 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 denvironnement 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 dattention
- `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 demails exigent des variables denvironnement valides côté serveur (build/exec)