# VRP - VittRos Platform - B100 (Analisi)

**Stato:** APERTO 2026-07-02 - Fase **B100 (analisi)**. Documenti prima,
codice poi (una cosa alla volta). Vedi le fasi Siemens B100 -> B500.

---

## 1. Cos'e' (visione)

La **VRP** e' lo strato di servizi e utility condiviso che sta **sotto** le app
VittRos: VRV (diario), foto/leNostre, wiz_foto, VRS (share), maps.

Radice concettuale: il **guardian** che vitti scrisse in Siemens (OMC+ / GSM) -
un substrato config-driven a cui i processi si **registravano** e che li teneva
in piedi. La VRP e' quel guardian che diventa **piattaforma**: un solo posto per
config, avvio, helper comuni, media/foto, auth. Meno duplicazione fra le app,
piu' coerenza.

---

## 2. Principi fermi (gia' decisi - non si ridiscutono)

1. **Configurazione = file JSON in `meta/`.**
   Es. `meta/version.json`: `channel`, `base_url`, `debug_on`, `paths`.
   NIENTE `config.php`: e' un **relitto inerte** (define con `if(!defined)`,
   gia' vinti dal loader). Da rimuovere dai release.

2. **Bootstrap = `3_2_1_Go.php`.**
   E' IL loader dell'applicazione. La parola "bootstrap" NON e' il nome del
   nostro avvio: al massimo "bootstrap" indica un framework HTTP. Non
   chiamare mai `bootstrap.php` il nostro loader. (Refactor pendente:
   `bootstrap.php` -> `3_2_1_Go.php`.)

3. **Il ruolo lo dice il symlink, non la cartella.**
   I nomi fisici delle release sono timbri-data **neutri** (`vv_<TS>`); chi e'
   prod/test lo dice il symlink (`/srv/http/vv`, `/srv/http/vv_test`) + il campo
   `channel` nel JSON. I nomi fisici "fuorvianti" sono voluti.

4. **Dati mutabili FUORI dal codice.**
   `uploads/ logs/ foto/ audio/ musica/ ...` sono **symlink** a
   `/srv/http/vittrosviaggi_shared/` (ACL `group:http:rwx`). Le release sono
   codice ~read-only; lo storage e' condiviso fra le versioni. -> Questo
   `vittrosviaggi_shared/` e' gia' un **proto-strato-VRP**: la piattaforma lo
   formalizza ed estende.

5. **Naming.** File nuovi con trattino (`vrp-nome.*`), classi `vrp-nome-*`,
   zero stili inline.

---

## 3. Cosa ci portiamo dentro (un pezzo alla volta, SOLO il necessario)

- [ ] loader config (JSON `meta/`)
- [ ] avvio `3_2_1_Go.php` generalizzato
- [ ] media/foto: `img.php` responsivo + thumbs (de-dup gia' impostata)
- [ ] auth / ruoli
- [ ] (idea) tabella DB indice foto: path / nome / lat-lon
- [ ] ...

> Regola d'ingaggio: non si "migra tutto". Si porta un pezzo quando SERVE,
> e nello stesso momento si scrive la sua riga di documentazione qui.

---

## 4. Domande aperte (B100)

- **Casa fisica della VRP.** Per ora `Lab = /srv/http/lab`. Se e quando servira'
  web-serving, chiuderlo come `/wiz_foto` (nginx allow 192.168.1.0/24, deny all).
  Casa definitiva: da decidere.
- **Confini:** cosa e' "piattaforma" e cosa resta dentro la singola app?
- **DB:** l'indice foto e' VRP o resta dell'app?

---

## 5. Fasi

- **B100 analisi** <- qui, 2026-07-02
- B200 disegno
- B300 coding - B400 dev test - B500 rilascio (festa)
