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
Quick Links
Getting Started
Install and run the app locally
Configuration
Environment variables and setup
Authentication
OIDC provider setup
API Reference
REST API documentation
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
- GitHub: sebdanielsson/quiz-app
- Issues: Report a bug
License
MIT