La community sceglie. Io eseguo.
Paid challenge marketplace per la community K-Quest. Gli utenti propongono sfide a 5€, votano le altre a 50¢ (via crediti prepagati), e la sfida più votata diventa il prossimo video. Tutto trasparente: archivio pubblico, delivery rate, rimborso automatico se mancata consegna entro 7 giorni.
🌐 Sito: https://999purple999.github.io/k-quest/ 🔌 API: https://k-quest-api.accessisoftwarefrancesco.workers.dev
┌──────────────────────────────────────────────────────────┐
│ GitHub Pages (frontend statico) │
│ React + Vite + Tailwind + Framer Motion + react-i18next │
│ 10 lingue · pixel-art Minecraft theme · purple palette │
└──────────────────────────┬───────────────────────────────┘
│ fetch (CORS)
▼
┌──────────────────────────────────────────────────────────┐
│ Cloudflare Workers (API) │
│ Hono · TypeScript · edge deploy │
│ + D1 SQLite (users · quests · votes · payments) │
│ + KV (rate-limit · sessions) │
│ + R2 (server pack downloads, paid only) │
│ + Stripe (Checkout + webhook) │
│ + Turnstile (anti-bot) │
└──────────────────────────────────────────────────────────┘
Il pannello admin è un Worker dedicato separato (non in questo repo), gated da password + TOTP (Google Authenticator).
- Frontend: React 18 · Vite 6 · TypeScript 5.7 · Tailwind 3.4 · Framer Motion · lucide-react · react-i18next (10 lingue)
- Backend: Hono 4 · Cloudflare Workers · D1 · KV · R2
- Pagamenti: Stripe Checkout (hosted, PCI compliant)
- Anti-spam: Stripe payment barrier + Cloudflare Turnstile + KV rate-limit + manual moderation queue
.
├── .github/workflows/ GitHub Action: deploy auto su Pages
├── src/ React app
│ ├── components/ Navbar, Hero, HowItWorks, Features, ActiveQuests,
│ │ Rewards, Credits, FAQ, CTAFinal, Footer, Logo
│ ├── pages/ Landing · Quests · Submit · Leaderboard · PastQuests
│ ├── i18n/ 10 locale files (it/en/es/fr/de/pt/ru/ja/zh/hi)
│ └── lib/ cn helper · API client
├── public/ static assets (favicon, .nojekyll)
├── workers/ Cloudflare Workers API
│ ├── src/
│ │ ├── index.ts
│ │ ├── middleware/ cors · rateLimit · turnstile
│ │ └── routes/ quests · votes · checkout · webhook · auth · admin · downloads
│ ├── migrations/ D1 schema (0001_initial + 0002_admin_and_saturation)
│ └── wrangler.toml
├── legal/ IT-language ToS · Privacy · Cookie · Refund templates
├── ARCHITECTURE.md decisioni architetturali
├── DEPLOY.md deploy guide step-by-step
├── DEPLOY_CLOUDFLARE.md setup automation per Cloudflare
├── index.html
├── package.json
├── vite.config.ts
└── tsconfig.json
# Frontend dev server
npm install
npm run dev # http://localhost:5173
# API dev server (parallelo)
cd workers
npm install
npx wrangler dev # http://localhost:8787Crea .env.local per il frontend:
VITE_API_BASE=http://localhost:8787
Auto via .github/workflows/deploy-pages.yml ad ogni push su main.
Build con VITE_BASE_PATH=/k-quest/ per project page.
cd workers
npx wrangler deployVedi DEPLOY_CLOUDFLARE.md per setup completo da zero (D1, KV, R2, secrets).
- Submit quest (5€) → moderazione → pubblicazione
- Vote (50¢ via crediti prepagati) → real-time leaderboard
- Settimanale: vincente realizzato in video entro 7 giorni
- Auto-refund se delivery mancata oltre 7 giorni
- Vacation Week (4/anno) e Deferral (max 2/quest) per gestire saturazione
- Combo Quest: 2-3 quest in 1 video
- Past Archive: trasparenza totale storico
- Rewards: episodi uncut 2h+ · early access 24h · nome nei credits / NPC server · Discord VIP · co-op session · voto x2 nei combo
- Multi-lingua 10 lingue tradotte realmente: 🇮🇹 🇬🇧 🇪🇸 🇫🇷 🇩🇪 🇵🇹 🇷🇺 🇯🇵 🇨🇳 🇮🇳
- Stripe secrets gestiti via
wrangler secret put, mai in source - Stripe Restricted API Keys (scope minimi)
- Webhook firma verificata server-side
- Email memorizzate solo come hash SHA-256
- IP memorizzati solo come hash SHA-256
- Magic link expires 15 min
- Sessioni 30 giorni, revocabili
- Turnstile su submit + vote (anti-bot)
- Manual moderation queue (anti-spam)
- Admin panel su Worker separato (NON in questo repo) gated da password + TOTP RFC 6238
- D1 prepared statements (no SQL injection)
- TLS 1.3 obbligatorio
Proprietary — © 2026 K-Quest. Tutti i diritti riservati.