🎯 From "What's an API?" to AI-powered quiz machine in 7 days!
The mind-reading quiz system that generates contextual questions from your actual course content
📖 Read the Full Journey Story → | 📰 LinkedIn Article | 🎥 Video Demo
ALM Kawaii Quiz is a native extension for Adobe Learning Manager that brings the power of AI to your learning platform. It automatically generates contextual quizzes based on your actual course content, making quiz creation effortless for instructors and engaging for learners.
- 🤖 AI-Powered Generation: Uses Anthropic's Claude Haiku to create intelligent, contextual questions
- 📚 Course-Aware: Reads your actual course content to generate relevant questions
- 🎮 Dual Mode System:
- Instructor mode for creating and assigning quizzes
- Learner mode with priority system (assigned quizzes first, then fun games)
- 🔄 Always-On: Lives in the sidebar, ready whenever you need it
- 📊 Full xAPI Tracking: Every score, every attempt, properly recorded
- 🔐 Self-Healing Auth: Automatic token refresh with Discord webhook monitoring
- ⚡ Zero Setup: Deploys instantly to every course instance
Generate contextual quiz questions with one click
Smart priority system - assigned quizzes appear automatically
Clean, engaging quiz interface with kawaii-inspired design
Adobe Learning Manager
├── Native Extension Framework
│ ├── Instance Bar Integration (Instructors)
│ └── Sidebar Widget (Learners)
├── API Integration
│ ├── Course Content API
│ ├── User/Enrollment API
│ └── xAPI for Score Tracking
└── External Services
├── Anthropic Claude Haiku (Quiz Generation)
├── PHP Backend (Token Management)
└── Discord Webhooks (Monitoring)
- Adobe Learning Manager account with Integration Admin access
- PHP 7.4+ hosting environment
- Anthropic API key
- Basic understanding of ALM native extensions
git clone https://github.com/yourusername/ALM-Kawaii-Quiz.git
cd ALM-Kawaii-Quizcp config.php.example config.php
# Edit config.php with your credentials:
# - ALM Client ID & Secret
# - Anthropic API Key
# - Your ALM instance URL# Upload files to your PHP server
# Ensure proper permissions on token storage directory
chmod 755 tokens/- Log in as Integration Admin
- Navigate to Native Extensions
- Register new extension pointing to your server
- Configure scopes (Admin read/write)
- Instructors: Look for "PoP Quiz" in any course instance menu
- Learners: Check the sidebar for the quiz widget
config.php- Main configuration (API keys, URLs)app.js- Frontend quiz interfacequiz-api.php- Backend API handlertoken-service.php- OAuth token managementgenerate-quiz.php- AI quiz generation logic
The system uses a multi-layered approach to ensure 100% uptime:
- Automatic refresh every 6 days (tokens last 7)
- Cron job validation every 48 hours
- Real-time validation on each API call
- Discord webhook alerts for any failures
// Initial setup
const auth = await getAccessToken(clientId, clientSecret);
// Automatic refresh (handled by server)
// Tokens refresh before expiration
// No manual intervention needed!// 1. Get course content
const content = await fetchCourseContent(courseId);
// 2. Generate quiz with AI
const quiz = await generateQuizFromContent(content);
// 3. Save for learners
await saveQuizToInstance(courseId, quiz);Edit quiz-prompts-enhanced.js to customize:
- Question types
- Difficulty levels
- Topic focus
- Language style
styles.css- Main interface stylesquiz-modal-override.css- Quiz popup styling- Icons in
/icons/- Kawaii-inspired UI elements
- Create webhook in your Discord server
- Add webhook URL to
config.php - Receive instant alerts for:
- Token refresh failures
- API errors
- System health checks
We welcome contributions! Please see our Contributing Guide for details.
- Additional language support
- New question types
- Analytics dashboard
- Mobile app integration
- Performance optimizations
- Fixed: X-Frame-Options blocking iframe embedding in Firefox
- Status: Fully functional in Adobe Learning Manager
- Deployment: Live at https://p0qp0q.com/alm-quiz/
CORS restrictions require backend proxy for API calls✅ FixedX-Frame-Options blocking iframe embedding✅ Fixed- Quiz state persists in localStorage (clear if needed)
- Maximum 10 questions per generation (Haiku limitation)
"Reduced quiz creation time from hours to seconds. Our instructors love it!"
- Enterprise Learning Manager
"The smart priority system means learners always see what matters most."
- L&D Director
MIT License - See LICENSE file for details
- Adobe Learning Manager team for the extensible platform
- Anthropic for Claude Haiku API
- The patient Adobe engineers who answered endless questions
- Green tea, for fuel
- GitHub Issues: Report bugs or request features
- Blog Series: Read the journey
- Email: support@your-domain.com
Built with ❤️ and lots of melting green tea by Dr. Allen Partridge
From "What's an API?" to production deployment in 7 days. If we can do it, so can you!
