first commit
This commit is contained in:
@@ -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).
|
||||
Reference in New Issue
Block a user