96 lines
3.4 KiB
Markdown
96 lines
3.4 KiB
Markdown
# 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).
|