From 81d2412835a9966242a59897beb0692e100e452e Mon Sep 17 00:00:00 2001 From: lejay Date: Fri, 13 Feb 2026 00:05:49 +0100 Subject: [PATCH] first commit --- README.md | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..13358cd --- /dev/null +++ b/README.md @@ -0,0 +1,95 @@ +# 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).