Aller au contenu principal

ARK Quiz

Nom du paquet : quiz (v1.0.0)
Rôle : plateforme de quiz interactive pour communautés Discord (classement, récompenses, administration).

Accès

Stack

Next.js 14, React 18, TypeScript, Tailwind CSS, shadcn/ui, Supabase (données), NextAuth.js 4 (Discord), Zod (validation d’environnement), Vitest.

Fonctionnalités principales

  • Moteur de quiz : navigation entre questions, barre de progression, réponses persistées (localStorage), protection beforeunload.
  • Authentification : OAuth2 Discord via NextAuth ; session avec Discord ID, pseudo et avatar.
  • Classement : leaderboard trié par pourcentage (départage par date) ; scores calculés côté serveur (les bonnes réponses ne sont pas exposées au client).
  • Récompenses : paliers de Rilinium par tranche de pourcentage (20–100 %), bonus configurables par question.
  • Administration : CRUD quiz / questions, configuration des gains, seed, envoi des résultats via webhook Discord (fermeture / publication).
  • Sécurité : RLS Supabase, validation server-side, rate limiting, protection contre l’open redirect sur les URL de callback.

API (aperçu)

Exemples de routes documentées dans le dépôt : GET /api/quizzes (liste sans champ correct), POST /api/quiz/result (soumission authentifiée), GET /api/quiz/leaderboard, POST /api/quiz/close-and-post (admin, Discord). Les détails et le schéma des tables (quizzes, quiz_questions, quiz_attempts, etc.) sont dans le README du projet quiz.

Développement local

npm install
# Configurer les variables d'environnement (Discord, NextAuth, Supabase)
npm run dev

Configuration (variables, routes)

Vue agrégée : Quiz — configuration.