SmartRootsSrl 2a13365871 feat: integrazione hCaptcha nel form contatti
- contatti.astro: widget hCaptcha, token incluso nel payload,
  messaggio di errore se challenge non completata
- docs/INFRA.md: documentata configurazione hCaptcha (site key,
  secret key in appSettings, flusso di verifica)

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-05-21 14:11:08 +02:00
2026-05-15 09:52:56 +02:00
2026-05-15 09:52:56 +02:00
2026-05-15 09:52:56 +02:00
2026-05-15 09:52:56 +02:00
2026-05-15 09:52:56 +02:00

Smart Roots — Sito Web

Stack: Astro 4 (static output) · CSS custom · Deploy su IIS 10 / Windows Server 2016


Struttura del progetto

/
├── docs/
│   └── INFRA.md         ← documentazione infrastruttura IIS e deploy
├── public/
│   ├── assets/          ← immagini, loghi (copiati as-is nel build)
│   └── web.config       ← configurazione IIS (copiata as-is nel build)
├── src/
│   ├── components/
│   │   ├── Layout.astro ← head HTML, meta SEO, font
│   │   ├── Nav.astro    ← navbar (variante full o back)
│   │   └── Footer.astro ← footer con dati societari
│   ├── pages/
│   │   ├── index.astro    ← Home / Landing page
│   │   ├── contatti.astro ← Form contatti → WebAPI
│   │   ├── privacy.astro  ← Privacy Policy
│   │   └── termini.astro  ← Termini e condizioni
│   └── styles/
│       └── global.css   ← CSS variables, nav, footer, form, responsive
├── astro.config.mjs
└── package.json

Setup locale

Prerequisiti

  • Node.js 18+ (solo per sviluppo/build, non necessario in produzione)
npm install
npm run dev      # avvia dev server su http://localhost:4321
npm run build    # genera cartella /dist pronta per il deploy

Deploy su IIS 10

npm run build
Copy-Item -Path "dist\*" -Destination "C:\inetpub\wwwroot\smartroots-site\" -Recurse -Force

Il web.config viene copiato automaticamente da Astro durante la build.

Per la configurazione IIS completa (Virtual Applications, Virtual Directories, note critiche sul web.config) vedere docs/INFRA.md.

Prerequisiti IIS


Form contatti — WebAPI

Il form invia a https://api.smart-roots.net/api/contatti via fetch POST JSON.

Payload inviato:

{
  "nome": "Mario Rossi",
  "azienda": "Acme S.r.l.",
  "email": "mario@azienda.it",
  "ambito": "smartdb",
  "messaggio": "..."
}

Controller: SmartRootsServices/SRServices/Controllers/SmartRootsSite/ContattiController.cs CORS abilitato per https://www.smart-roots.net. Validazione lato server: campi obbligatori, lunghezza minima messaggio (10 caratteri), rate limiting (3 invii/ora per IP), honeypot anti-bot.


Aggiungere nuove pagine

  1. Creare src/pages/nuova-pagina.astro
  2. Usare il componente Layout con titolo e descrizione
  3. npm run build e rideploy della cartella /dist

TODO

  • Aggiungere immagine hero-dashboard.png in /public/assets/
  • Aggiungere immagine og-image.jpg in /public/assets/ (1200×630px)
  • Integrare hCaptcha nel form contatti (frontend + verifica backend)
Description
Sito aziendale sviluppato in Astro + Tailwind CSS
Readme 854 KiB
Languages
Astro 89.5%
CSS 10.2%
JavaScript 0.3%