← All templates

Quiz Platform

Education · React + Node (Express) · 20 @molecule/* packages

Kahoot-like quiz platform with timed questions, scoring, and leaderboards — with built-in Stripe-backed subscription tiers

Open in Molecule

What is inside

  • auth
  • realtime
  • search
  • leaderboard
  • subscriptions

Screens (16)

  • Landing /
  • Login /login
  • Signup /signup
  • ForgotPassword /forgot-password
  • ResetPassword /reset-password
  • Discover /discover (signed in)
  • QuizPlay /quiz/:id/play (signed in)
  • QuizBuilder /quiz/:id/edit (signed in)
  • MyQuizzes /my-quizzes (signed in)
  • Results /quiz/:id/results (signed in)
  • Leaderboard /leaderboard (signed in)
  • Settings /settings (signed in)
  • QuizDetail /quiz/:id (signed in)
  • HostLobby /quiz/:id/lobby (signed in)
  • Profile /u/:username (signed in)
  • Notifications /notifications (signed in)

Data model (11 tables)

  • devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
  • payments — id, createdAt, updatedAt, userId, transactionId, productId, platformKey, data, …
  • notifications — id, user_id, type, title, body, href, read, created_at
  • questions — id, quiz_id, position, type, prompt, choices, correct_answer, points, …
  • quiz_sessions — id, quiz_id, host_id, join_code, status, current_question, started_at, finished_at, …
  • quizzes — id, creator_id, title, description, category, status, cover_url, time_per_question_s, …
  • reactions — id, resourceType, resourceId, userId, type, createdAt, updatedAt
  • resource_tags — id, tagId, resourceType, resourceId, createdAt
  • session_answers — id, session_id, user_id, question_id, answer, time_taken_ms, is_correct, points_earned, …
  • session_participants — id, session_id, user_id, nickname, score, joined_at, created_at
  • tags — id, name, slug, color, description, createdAt, updatedAt

API (6 handlers)

  • \_seed api/src/handlers/_seed.ts
  • leaderboard api/src/handlers/leaderboard.ts
  • notifications api/src/handlers/notifications.ts
  • questions api/src/handlers/questions.ts
  • quizzes api/src/handlers/quizzes.ts
  • sessions api/src/handlers/sessions.ts

Subscription tiers

free / pro / team — gated by: maxLeaderboard, maxQuestions, maxQuizzes, maxSessions, advancedFeatures, canExport, retentionDays

Built from 20 @molecule/* packages

Browse all @molecule/* packages →

Required secrets

  • DATABASE_URL PostgreSQL connection string
  • S3_BUCKET S3 bucket for quiz images

The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing