Skip to main content

Overview

The tag analysis system in IntelliQ automatically processes quiz content to generate relevant tags and categories, maintaining user statistics for both user-provided and AI-generated tags. This system works asynchronously using QStash to ensure smooth quiz submission experience.

Flow Diagram

Data Structure

The system maintains two levels of tag data:
  1. Quiz Level (in quizzes table):
  1. User Level (in userAnalysis table):

Response Examples

Technical Implementation

  1. QStash Integration
    • Uses @upstash/qstash for reliable async processing
    • Configurable delay to batch process tags
    • Automatic retries on failure
  2. Cache Management
    • User cache version incremented after analysis
    • Ensures frontend receives updated statistics
  3. Database Schema

Error Handling

The system handles various error cases:
  • Failed AI tag generation
  • Database transaction failures
  • Invalid quiz references
  • Rate limiting
  • Cache invalidation issues
Each error is logged and retried through QStash’s built-in retry mechanism.

Security Considerations

  1. Tag analysis endpoint protected by admin token
  2. User analysis data access restricted to owner
  3. Rate limiting on analysis requests
  4. Sanitization of AI-generated tags
  5. Validation of user-provided tags

Benefits

  1. Asynchronous Processing
    • No delay in quiz submission
    • Better user experience
    • Reduced server load
  2. Rich Metadata
    • Improved quiz discovery
    • Better content organization
    • Personalized recommendations
  3. User Insights
    • Track user interests
    • Identify popular categories
    • Guide content creation
Written by Ricky Raveanu