Files
apex/README.md
T
2026-02-13 00:05:49 +01:00

96 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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).