TestMe
AI-Powered Quiz Generator that generates intelligent quizzes from multiple content sources using advanced AI. Built with modern technologies and designed for scalability, it supports YouTube videos, PDFs, images, and custom text to create engaging multiple-choice, true/false, and mathematical questions.
Install / Use
/learn @nosisky/TestMeREADME
TestMe - AI-Powered Quiz Generator
Transform any content into engaging quizzes with the power of AI
TestMe is a production-ready, full-stack web application that generates intelligent quizzes from multiple content sources using advanced AI. Built with modern technologies and designed for scalability, it supports YouTube videos, PDFs, images, and custom text to create engaging multiple-choice, true/false, and mathematical questions.
🎯 Perfect for: Educators, content creators, training organizations, and anyone looking to create interactive learning experiences.
🚀 Live Demo: https://test-me-beta.vercel.app
📑 Table of Contents
- Quick Start
- Features
- Demo
- Technology Stack
- Getting Started
- AI Provider Setup
- API Keys Setup Guide
- Enhanced Large Quiz Generation
- Development
- Deployment
- Configuration Management
- Architecture
- Contributing
- License
- Developer
⚡ Quick Start
Want to get TestMe running quickly? Follow these essential steps:
# 1. Clone and install
git clone https://github.com/nosisky/testme.git
cd testme
npm install
# 2. Setup environment (copy and fill with your API keys)
cp env.example .env.local
# 3. Start development server
npm run dev
Essential environment variables to configure:
OPENAI_API_KEY- For AI quiz generationGOOGLE_CLIENT_ID&GOOGLE_CLIENT_SECRET- For authenticationMONGODB_URI- For database storageYOUTUBE_API_KEY- For YouTube video processing
📚 Detailed setup instructions are available in the Getting Started section below.
✨ Features
🎯 Core Functionality
- Multi-Source Content: Generate quizzes from YouTube videos, PDFs (up to 5 pages), images, and custom text
- AI-Powered Knowledge Gap Analysis: Automatically identifies learning gaps and key topics
- Smart Question Generation: Creates multiple-choice, true/false, and mathematical questions
- Adaptive Difficulty: Customizable difficulty levels (easy, medium, hard, expert)
- LaTeX Math Support: Full mathematical equation rendering with MathJax
🎨 User Experience
- Interactive Quiz Interface: Animated quiz-taking experience with real-time feedback
- Responsive Design: Optimized for desktop, tablet, and mobile devices
- Professional UI: Modern design with consistent theming
- Quiz Sharing: Share quizzes via secure links
- Performance Analytics: Detailed quiz statistics and user performance tracking
🔐 Security & Authentication
- Google OAuth Integration: Secure authentication with Google accounts
- User Management: Role-based access control (admin/user)
- Data Privacy: Secure storage of user data and quiz results
- Anonymous Quiz Taking: Option for users to take quizzes without registration
🤖 AI Integration
- Multiple AI Providers: Support for OpenAI, Anthropic Claude, DeepSeek, and AWS Bedrock
- Environment-Based Configuration: Secure API key management
- Enhanced Large Quiz Generation: Dynamic token management for 15+ questions
- Fallback Systems: Robust error handling with mock service support
- Cost Optimization: Choose providers based on budget and performance needs
🚀 Demo
Visit our live demo: https://test-me-beta.vercel.app
Test Account: Use Google OAuth to create your account or try the demo content.
🛠 Technology Stack
Frontend
- Framework: Next.js 15 with App Router
- Language: TypeScript
- Styling: SCSS Modules with CSS Variables
- UI Components: Custom React components with responsive design
- Math Rendering: MathJax for LaTeX equation support
Backend
- Runtime: Node.js with Next.js API Routes
- Database: MongoDB with Mongoose ODM
- Authentication: NextAuth.js with Google OAuth
- File Processing: PDF parsing, image analysis, YouTube transcript extraction
AI Integration
- AI SDK: Vercel AI SDK for unified provider interface
- Providers: OpenAI, Anthropic Claude, DeepSeek, AWS Bedrock
- Vision: OpenAI GPT-4 Vision for image text extraction
Deployment & DevOps
- Platform: Vercel (recommended) or Docker
- Monitoring: Built-in analytics and error tracking
- CI/CD: GitHub Actions ready
🚀 Getting Started
Prerequisites
- Node.js: Version 18 or higher
- npm or yarn: Package manager
- MongoDB: Local instance or MongoDB Atlas
- Git: Version control
Installation
-
Clone the repository
git clone https://github.com/nosisky/testme.git cd testme -
Install dependencies
npm install -
Environment setup
cp env.example .env.local
Environment Configuration
Create a .env.local file in the root directory with the following configuration:
# =================================================================
# APPLICATION CONFIGURATION
# =================================================================
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your_nextauth_secret_here
# =================================================================
# AUTHENTICATION (Required)
# =================================================================
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
# =================================================================
# DATABASE (Required)
# =================================================================
MONGODB_URI=mongodb://localhost:27017/testme
# Or for MongoDB Atlas:
# MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/testme
# =================================================================
# EXTERNAL APIs (Required)
# =================================================================
YOUTUBE_API_KEY=your_youtube_api_key
# =================================================================
# AI PROVIDER CONFIGURATION
# =================================================================
# Choose your primary AI provider (openai, claude, deepseek, bedrock)
DEFAULT_AI_PROVIDER=openai
# Configure API keys for your chosen provider(s)
# OpenAI (Recommended - reliable, fast, good quality)
OPENAI_API_KEY=your_openai_api_key
# Anthropic Claude (Best for detailed explanations)
CLAUDE_API_KEY=your_claude_api_key
# DeepSeek (Most cost-effective option)
DEEPSEEK_API_KEY=your_deepseek_api_key
# AWS Bedrock (Enterprise-grade, requires AWS setup)
AWS_ACCESS_KEY_ID=your_aws_access_key_id
AWS_SECRET_ACCESS_KEY=your_aws_secret_access_key
AWS_REGION=us-east-1
# =================================================================
# DEVELOPMENT & TESTING
# =================================================================
# Set to 'true' to use mock AI service for testing (no API costs)
USE_MOCK_AI=false
# Set to 'development' for detailed logging
NODE_ENV=development
🤖 AI Provider Setup
OpenAI (Recommended)
Best for: General use, reliable performance, fastest responses
- Models: GPT-4o-mini (default), GPT-4, GPT-3.5-turbo
- Pricing: ~$0.0001 per 1K tokens (very affordable)
- Setup: Get API key
DEFAULT_AI_PROVIDER=openai
OPENAI_API_KEY=sk-your-openai-key-here
Anthropic Claude
Best for: Detailed explanations, complex reasoning, educational content
- Models: Claude-3-haiku (default), Claude-3-sonnet
- Pricing: ~$0.00025 per 1K tokens
- Setup: Get API key
DEFAULT_AI_PROVIDER=claude
CLAUDE_API_KEY=sk-ant-your-claude-key-here
DeepSeek
Best for: Cost-effective alternative, budget-conscious deployments
- Models: deepseek-chat (default)
- Pricing: ~$0.00014 per 1K tokens (most affordable)
- Setup: Get API key
DEFAULT_AI_PROVIDER=deepseek
DEEPSEEK_API_KEY=sk-your-deepseek-key-here
AWS Bedrock
Best for: Enterprise use, enhanced security, compliance requirements
- Models: Claude-3.7-Sonnet (via inference profile)
- Pricing: Variable based on AWS pricing
- Setup: Requires AWS account and Bedrock access
DEFAULT_AI_PROVIDER=bedrock
AWS_ACCESS_KEY_ID=your-aws-access-key
AWS_SECRET_ACCESS_KEY=your-aws-secret-key
AWS_REGION=us-east-1
Important: Bedrock uses inference profiles for newer Claude models. The system automatically uses us.anthropic.claude-3-7-sonnet-20250219-v1:0 which is the cross-region inference profile for Claude 3.7 Sonnet.
JSON Output: Since Bedrock Claude models don't have native JSON mode, TestMe uses clear delimiters (<JSON_START> and <JSON_END>) to ensure reliable JSON extraction from responses.
Supported regions: us-east-1, us-east-2, us-west-2 (automatically routed based on availability)
Provider Comparison
| Provider | Cost | Speed | Quality | Best Use Case | |----------|------|-------|---------|---------------| | OpenAI | 💰💰 | ⚡⚡⚡ | ⭐⭐⭐ | General purpo
