docv/docs/overview.md

3.5 KiB
Raw Blame History

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)