Skip to content

999purple999/k-quest

Repository files navigation

K-Quest

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


Architettura

┌──────────────────────────────────────────────────────────┐
│  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).


Stack

  • 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

Struttura del repo

.
├── .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

Sviluppo locale

# Frontend dev server
npm install
npm run dev              # http://localhost:5173

# API dev server (parallelo)
cd workers
npm install
npx wrangler dev         # http://localhost:8787

Crea .env.local per il frontend:

VITE_API_BASE=http://localhost:8787

Deploy

Frontend → GitHub Pages

Auto via .github/workflows/deploy-pages.yml ad ogni push su main. Build con VITE_BASE_PATH=/k-quest/ per project page.

Backend → Cloudflare Workers

cd workers
npx wrangler deploy

Vedi DEPLOY_CLOUDFLARE.md per setup completo da zero (D1, KV, R2, secrets).


Features principali

  • 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: 🇮🇹 🇬🇧 🇪🇸 🇫🇷 🇩🇪 🇵🇹 🇷🇺 🇯🇵 🇨🇳 🇮🇳

Sicurezza

  • 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

Licenza

Proprietary — © 2026 K-Quest. Tutti i diritti riservati.

About

K-Quest - paid challenge marketplace + Minecraft Fabric server

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors