# Avvio locale — Krèios Guida per avviare l'ambiente completo di sviluppo: **backoffice Laravel** (API + pannello admin) che serve anche il **configuratore 3D** e l'**app cliente** per i preventivi. ## Panoramica Un solo server: **Laravel su ** serve API, pannello admin e i due frontend, che sono progetti Vite compilati dentro `backoffice/public`. | Componente | Sorgenti | Stack | URL dev | |---|---|---|---| | Configuratore 3D | `.` (root del repo) | Vite 6 + Three.js + jQuery | | | App cliente (preventivo) | `backoffice/cliente/` | Vue 3 + Vite | | | Backoffice (API + admin) | `backoffice/` | Laravel 13 + Filament 3 + MySQL | , admin su | **Come si collegano:** tutto è sulla stessa origine, quindi configuratore e app cliente chiamano `/api/...` senza configurazione né CORS. Architettura e variabili in [PREVENTIVI_BACKOFFICE.md](PREVENTIVI_BACKOFFICE.md). ## Requisiti | Strumento | Versione minima | Note | |---|---|---| | Node.js | 20+ | per compilare i frontend (Vite) | | pnpm | 8+ | package manager della root e dell'app cliente (`pnpm-lock.yaml` è il lockfile di riferimento) — `npm i -g pnpm` o `corepack enable` | | PHP | 8.3+ | richiesta da `composer.json` (`"php": "^8.3"`) | | Composer | 2+ | dipendenze Laravel | | MySQL | 8 | host `127.0.0.1`, user `root`, **nessuna password** | | Python 3 | 3.10+ | **opzionale**: solo per rigenerare i listini PVC | ## 1) Backoffice Laravel (API + admin) — porta 8000 ```bash cd backoffice composer install ``` ### Database Creare il database (una volta sola): ```sql CREATE DATABASE kreios_preventivi CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` ### `.env` Il backoffice ignora il suo `.env` in git: in un clone fresco va creato: ```bash cp .env.example .env php artisan key:generate ``` Poi impostare le variabili di sviluppo (in questo repo il `.env` è già configurato così): ```ini DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=kreios_preventivi DB_USERNAME=root DB_PASSWORD= APP_URL=http://localhost:8000 ADMIN_NOTIFY_EMAIL=tua-email@example.com MAIL_MAILER=log ``` | Variabile | Descrizione | |---|---| | `APP_URL` | Base URL del backoffice (e quindi di `/configuratore/` e `/preventivo/`) | | `ADMIN_NOTIFY_EMAIL` | Email che riceve la notifica di nuovo preventivo | | `CONFIGURATOR_SESSION_DAYS` | Durata (giorni) della sessione di login del configuratore | | `MAIL_MAILER` | `log` in dev: le email finiscono in `storage/logs/laravel.log` (incluso il PDF allegato) | ### Migrations, seed e asset ```bash php artisan migrate --seed # crea le tabelle + l'utente admin php artisan storage:link npm install # asset Vite del pannello (nessun lockfile; .npmrc ha ignore-scripts=true) ``` ### Avvio ```bash php artisan serve --port=8000 ``` - API: - Pannello admin: - Email: `admin@kreiosinfissi.it` — Password: `password` (seed di default) - Le email di conferma preventivo sono inviate **in modo sincrono** (`Mail::send`): in dev non serve avviare `queue:listen`. > Alternativa: `composer dev` avvia in parallelo server, queue, log (`pail`) e Vite. ## 2) Frontend (configuratore + app cliente) ```bash pnpm install # root: configuratore (cd backoffice/cliente && pnpm install) # app cliente ./build.sh # compila entrambi in backoffice/public/{configuratore,preventivo} ``` Dopo la build, con il solo `php artisan serve` attivo: - configuratore: - `sistema`: `pvc` | `alluminio` | `legno` | `acciaio` - `type`: id modello valido per quel sistema (elenco in [URL_PARAMS.md](URL_PARAMS.md)) - app cliente: In produzione il configuratore gira dentro un `