How devgaganin/quizbot works
Quizbot is a Telegram quiz platform with separate creator and runner bots, a shared MongoDB layer, and an optional FastAPI Mini App. The primary workflow is quiz authoring/import and access setup, followed by quiz delivery, answer scoring, and performance reporting. The README documents additional AI, payment, scheduling, sharing, and broadcast capabilities; their detailed wiring is not fully visible in the sampled source, so those links are shown only where the documented ownership is clear.
Main entry points: repositories.py Domain repositories · quiz_play.py Quiz sessions · creator_bot/bot.py Creator Bot · runner_bot/bot.py Runner Bot
Components 25
Quiz authoring
- Creator Bot
quizbot/creator_bot/bot.py - Quiz creation
quizbot/creator_bot/handlers/quiz_creation.py - Quiz imports
quizbot/creator_bot/handlers/file_import.py - Question parsing
quizbot/creator_bot/parsing.py - Quiz editing
quizbot/creator_bot/handlers/quiz_editing.py - Quiz management
quizbot/creator_bot/handlers/quiz_management.py - Access and batches
quizbot/creator_bot/handlers/auth.py - Premium payments
quizbot/creator_bot/handlers/payments.py
Quiz delivery
- Runner Bot
quizbot/runner_bot/bot.py - Quiz sessions
quizbot/runner_bot/handlers/quiz_play.py - AI quiz generation
quizbot/runner_bot/handlers/ai_quiz.py - Quiz scheduling
quizbot/runner_bot/handlers/scheduling.py - Analytics and reports
quizbot/runner_bot/handlers/reports.py
Shared data
- MongoDB
quizbot/database/db.py - Domain repositories
quizbot/database/repositories.py
Visual player
- Mini App server
quizbot/mini_app/server.py - Player API
quizbot/mini_app/routes.py - Session and scoring
quizbot/mini_app/player_service.py
Shared services
- HTML scorecards
quizbot/shared/html/quiz_report.py - Rich quiz rendering
quizbot/shared/rich_quiz.py
Other components
- Telegram users
- Telegram
- Razorpay
- AI providers
- Mini App players
Connections 30
- Telegram users → Creator Bot: send commands
- Creator Bot → Quiz creation: dispatches
- Creator Bot → Quiz imports: dispatches
- Quiz creation → Question parsing: parses text
- Quiz imports → Question parsing: cleans questions
- Quiz creation → Domain repositories: saves quizzes
- Quiz imports → Domain repositories: saves quizzes
- Quiz editing → Domain repositories: updates quizzes
- Quiz management → Domain repositories: manages quizzes
- Access and batches → Domain repositories: manages access
- Creator Bot → Premium payments: dispatches
- Premium payments → Razorpay: processes payments
- Telegram users → Runner Bot: play and configure
- Runner Bot → Quiz sessions: dispatches
- Quiz sessions → Domain repositories: loads quiz data
- Quiz sessions → Telegram: sends polls
- Quiz sessions → Domain repositories: stores results
- Quiz sessions → Rich quiz rendering: renders rich content
- Runner Bot → AI quiz generation: dispatches
- AI quiz generation → AI providers: requests generation
- Runner Bot → Quiz scheduling: dispatches
- Analytics and reports → Domain repositories: reads performance
- Analytics and reports → HTML scorecards: builds scorecards
- MongoDB → Domain repositories: provides collections
- Mini App players → Mini App server: opens player
- Mini App server → Player API: serves API
- Player API → Session and scoring: controls sessions
- Player API → Domain repositories: reads quizzes
- Session and scoring → Domain repositories: persists attempts
- Player API → Telegram: authenticates WebApp