QuizBot is a Telegram bot with which you can create and attempt quizzes. A quiz is a collection of possibly random questions.
Try it out! The bot is live on Telegram: @antonysquizbot
The processes and conversation of creating, attempting to, renaming, and removing existing quizzes can be shown as automata-diagrams. Please take a look at the docs.
What is QuizBot?
- A Telegram bot
- A python application
- A city
Answer: A Telegram bot, A python application
What is Quizbot?
- A Telegram bot
- A dish
- A fish
Answer: A Telegram bot
Is Quizbot a telegram bot?
- yes
- no
Answer: yes
In which year was QuizBot created?
Answer: 2020
Where can you contribute?
Answer: Github
my_quiz = Quiz()my_attempt = Attempt(my_quiz)- Copy
.env.exampleto.envand setTELEGRAM_TOKEN(get one from @BotFather) - Install dependencies and run migrations:
uv sync --dev DATABASE_URL=sqlite:///dev.db uv run alembic upgrade head
- Start the bot in polling mode:
uv run python quizbot/bot/bot.py
Common scripts are also available via hatch run:
| Script | Command |
|---|---|
test |
hatch run test — run the test suite |
test-cov |
hatch run test-cov — run tests with coverage |
migrate |
hatch run migrate — run Alembic migrations |
start |
hatch run start — start the bot in polling mode |
| Variable | Required | Description |
|---|---|---|
TELEGRAM_TOKEN |
Yes | Telegram bot token from @BotFather |
DATABASE_URL |
Yes | Database URL (e.g. sqlite:///dev.db for local dev) |
WEBHOOK |
No | Webhook URL for production (omit for polling mode) |
PORT |
No | Webhook port (default: 8443) |
The bot deploys to Render via Docker. See render.yaml for the Blueprint configuration. Alembic migrations run automatically at container startup.
