3.5 KiB
3.5 KiB
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:
next15 (App Router dansapp/) - Langage:
typescript5 - UI:
react19, composantsshadcn/ui(viacomponents/ui),lucide-react - Styles:
tailwindcss4, fichiers dansstyles/etapp/globals.css - Formulaires/Validation:
react-hook-formetzod(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 serveurapp/actions/contact.tsformation/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 pourcontactetformation
components/ui/: primitives UI (boutons, cards, inputs, etc.)4nk/: composants spécifiques 4NK (AuthModal,Iframe,DebugInfosi 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 globauxnext.config.mjs: configuration Next (build sans bloquer sur ESLint/TS, images non optimisées)tsconfig.json: configuration TypeScriptpackage.json: scripts Next (dev,build,start,lint) et dépendancesvite.config.tsetsrc/: 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 serveursubmitContactForm) - Demande de devis formation: envoi d’un email structuré via
nodemailer(action serveursubmitFormationForm) - Authentification 4NK:
- Modal d’authentification intégrant une
iframe4NK - Protocole côté client via
MessageBus(LISTENING → REQUEST_LINK → LINK_ACCEPTED → GET_PAIRING_ID) - Mode démonstration: saisir
1234comme identifiant d’entreprise sur/loginactive le mock local
- Modal d’authentification intégrant une
- 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.mjsdésactive les erreurs ESLint/TS au build (utile pour démo, à challenger pour la prod)- Le dossier
src/etvite.config.tssemblent non utilisés par les scripts; valider leur pertinence - Les envois d’emails exigent des variables d’environnement valides côté serveur (build/exec)