Respondeo

Introduction

Welcome to the Respondeo documentation

Respondeo

A modern, full-stack quiz application built with Next.js 16, featuring OIDC authentication, real-time leaderboards, AI-powered quiz generation, and a comprehensive REST API.

Features

🎯 Quiz Management

Create, edit, and delete quizzes with multiple-choice questions

✨ AI Generated Content

Use AI to help generate questions and answers

🔎 Image Browser

Browse and select images via Unsplash API integration

🔐 OIDC Authentication

Secure sign-in via OpenID Connect

👑 Role-Based Access

Flexible permissions based on OIDC groups

🏆 Leaderboards

Per-quiz and global rankings

⏱️ Timed Quizzes

Optional time limits with timeout tracking

🔄 Randomization

Shuffle questions for each attempt

🔑 API Keys

Programmatic access with scoped permissions

📖 OpenAPI Docs

Interactive API documentation with Scalar

🌓 Dark Mode

System-aware theme switching

⚡ High Performance

Optional Redis/Valkey caching layer

Tech Stack

  • Monorepo: Bun workspaces + Turborepo 2.4+
  • Framework: Next.js 16 (App Router, Turbopack)
  • Runtime: Bun
  • Database: PostgreSQL with Drizzle ORM (via bun:sql)
  • Cache: Valkey/Redis (optional, via Bun native client)
  • Auth: BetterAuth with OIDC + API Key plugins
  • UI: shadcn/ui (Base UI - Nova), Lucide Icons
  • Validation: Zod
  • AI: AI SDK with multi-provider support
  • Images: Unsplash API integration

Prerequisites

  • Bun >= 1.3.8
  • PostgreSQL database
  • An OIDC provider (e.g., Keycloak, Auth0, Okta, Pocket ID)

Project Structure

This is a monorepo with:

  • apps/web — Main Next.js quiz application
  • apps/docs — Documentation site (you're reading it!)

All commands should be run from the repository root using Turborepo.

Support

License

MIT

On this page