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
- Production : https://quizz.rilindra.fr
- Dépôt : github.com/DevRedious/quiz
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.