# Configurateur d'armoires sur mesure — SIGNATURE (V1) Application web open source : site vitrine + configurateur d'armoires modulaires avec prix instantané en CHF. - **Stack** : React (Vite) + Node.js (Express) + SQLite - **Licence** : MIT ## Prérequis - Node.js 18+ ## Installation ### 1. Base de données (SQLite) Aucune installation de serveur DB : SQLite utilise un fichier local (`server/data/configurateur.db`, créé automatiquement). Le driver est **sql.js** (pur JavaScript, pas de compilation native) — pratique sur Windows sans Visual Studio / Windows SDK. Variables d'environnement (optionnel) : copier `server/.env.example` vers `server/.env` pour changer le port ou le chemin de la base : ```bash # optionnel DATABASE_PATH=./data/configurateur.db PORT=3001 ``` ### 2. Schéma et données initiales **Depuis la racine du projet (`F:\apex`)** : ```bash npm run install:all # installe les deps du server et du client npm run db:init # crée server/data/ et applique le schéma SQLite npm run db:seed # applique les données initiales ``` Ou en allant dans chaque dossier : `cd server` puis `npm install`, `npm run db:init`, `npm run db:seed`. ### 3. Lancer l'API **Depuis la racine** : ```bash npm run server ``` Ou `cd server` puis `npm start`. L'API écoute sur http://localhost:3001 ### 4. Lancer le frontend Dans un **autre terminal**, depuis la racine : ```bash npm run client ``` Ou `cd client` puis `npm run dev`. L'application est disponible sur http://localhost:5173 (proxy `/api` vers le serveur). ## Variables d'environnement | Variable | Description | Défaut | |------------------|--------------------------------------|---------------------------------| | `DATABASE_PATH` | Chemin du fichier SQLite (serveur) | `server/data/configurateur.db` | | `PORT` | Port du serveur API | `3001` | ## Structure - `server/` — API Express, moteur de prix, schéma et seeds PostgreSQL - `client/` — SPA React (Vite), pages Accueil et Configurateur ## Routes - `/` — Page vitrine (hero, pourquoi SIGNATURE, comment ça marche, tarifs, CTA) - `/configurateur` — Configurateur (paramètres, récap, prix CHF, commande / lead) ## API - `GET /api/products` — Produits actifs - `GET /api/block-types` — Types de blocs (prix, largeurs min/max) - `GET /api/finishes` — Finitions avec format de panneau (dimensions, prix) - `GET /api/service-options` — Options (mesure, montage) - `GET /api/settings` — Paramètres globaux (forfait kit, plinthe, etc.) - `POST /api/price` — Calcul du prix (body : configuration) → `{ totalChf, details?, errors? }` - `POST /api/orders` — Enregistrement commande / lead (config + coordonnées) ## Aperçu 3D (V2) La zone d'aperçu du configurateur est prévue pour intégrer une iframe Spline. Paramètres à transmettre à la scène 3D : largeur, hauteur, profondeur, nombre de blocs, largeur par bloc, type de portes, nombre de vantaux coulissants, hauteur de plinthe, finition. Voir le brief freelance 3D pour les détails. ## Build sur Windows En cas d’erreur **spawn EPERM** ou de build qui bloque (par ex. après désinstallation d’outils de dev Windows), voir **[docs/WINDOWS.md](docs/WINDOWS.md)** : réinstallation du Visual C++ Redistributable et des dépendances client suffit souvent. ## Licence MIT — voir [LICENSE](LICENSE).