first commit

This commit is contained in:
lejay
2026-02-13 00:05:49 +01:00
commit 81d2412835
+95
View File
@@ -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).