🇨🇭 Riduzione del danno • Svizzera
Features • Tech Stack • Development • Deploy
Un portale interattivo di riduzione del danno che fornisce informazioni scientificamente accurate su sostanze, rischi, interazioni e servizi di Drug Checking in Svizzera.
"L'ignoranza non protegge nessuno. L'informazione sì."
| Feature | Descrizione |
|---|---|
| 🧪 Sostanze | Database dettagliato con effetti, dosi, rischi e farmacologia |
| Guida completa a set & setting, mix pericolosi, safer use | |
| 📖 Glossario | Terminologia scientifica spiegata in modo accessibile |
| 🔬 Drug Checking | Mappa servizi svizzeri con dati reali |
| 💬 Consulenza | Link diretto a SafeZone.ch e servizi professionali |
| 🧠 Quiz | 80+ domande scientifiche, 20 random/sessione, pause/resume |
| ⚖️ Comparatore | Confronto side-by-side tra sostanze |
| ⚡ Mix Checker | Matrice interazioni in tempo reale |
| 🔬 Molecole 3D | Strutture molecolari reali da PubChem via 3Dmol.js |
| 🌓 Tema Auto | Light/dark automatico (7-19 chiaro) + toggle manuale |
| 📱 PWA | Installabile offline come app nativa |
React 18 + TypeScript + Vite
├── 🎨 Tailwind CSS v4 → Design system moderno
├── 🌀 Framer Motion → Animazioni fluide
├── 🎮 React Three Fiber → Background 3D immersivo
├── 🧬 3Dmol.js → Visualizzazione molecolare reale
├── 🔍 PubChem API → Dati molecolari scientifici (NCBI)
├── 📱 PWA → Service Worker + manifest
├── 🔎 SEO → Meta tags dinamici per ogni route
└── 🌓 Theme System → Auto/light/dark con CSS variables
# Clone
git clone https://github.com/[username]/dannoch-clone.git
cd dannoch-clone
# Install
npm install
# Dev server
npm run dev
# Build
npm run buildsrc/
├── components/
│ ├── canvas/ # Scene 3D (Three.js)
│ ├── dom/ # Navigation, Footer, CustomCursor
│ ├── icons/ # Icone custom SVG
│ ├── SEO.tsx # Meta tags dinamici
│ └── ThemeProvider.tsx
├── data/ # Database sostanze, rischi, glossario, quiz
├── pages/ # Route pages (20+)
└── main.tsx # Entry point con ThemeProvider
Il sito si deploya automaticamente su GitHub Pages ad ogni push su main.
.github/workflows/deploy.yml
├── Build con Node 20
├── Deploy su GitHub Pages
└── SPA routing via 404.html
Setup una tantum: Settings → Pages → Source → GitHub Actions
| Metrica | Target |
|---|---|
| 🎮 3D Background | DPR adattivo, PerformanceMonitor |
| ⚡ Transitions | < 250ms, spring damping |
| 🧈 Scrolling | 60fps con stagger caps |
| 📦 Bundle | Code splitting per route |
| Fonte | Utilizzo |
|---|---|
| danno.ch | Contenuti originali |
| PubChem / NCBI | Dati molecolari |
| SafeZone.ch | Consulenza online |
| DIB / Drug Information Bern | Drug Checking |
L'informazione è il primo passo della prevenzione.
Built with ⚗️ by Antigravity AI