quickbot - Rapid Application Development Framework for Telegram Bots
Project description
Telegram Bots Rapid Application Development (RAD) Framework.
QuickBot is a library for fast development of Telegram bots and mini-apps following the RAD (Rapid Application Development) principle in a declarative style.
Key Features
- Automatic CRUD Interface Generation – Manage objects effortlessly without manual UI coding.
- Built-in Field Editors – Includes text inputs, date/time pickers, boolean switches, enums, and entity selectors.
- Advanced Pagination & Filtering – Easily organize and navigate large datasets.
- Authentication & Authorization – Role-based access control for secure interactions.
- Context Preservation – Store navigation stacks and user interaction states in the database.
- Internationalization Support – Localizable UI and string fields for multilingual bots.
QuickBot powered by FastAPI, SQLModel & aiogram – Leverage the full capabilities of these frameworks for high performance and flexibility.
Benefits
- Faster Development – Automate repetitive tasks and build bots in record time.
- Highly Modular – Easily extend and customize functionality.
- Less Code Duplication – Focus on core features while QuickBot handles the rest.
- Enterprise-Grade Structure – Scalable, maintainable, and optimized for real-world usage.
Example
class AppEntity(BotEntity):
"""
BotEntity - business entity. Based on SQLModel, which provides ORM functionality,
basic CRUD functions and additional metadata, describing entities view and behaviour
"""
bot_entity_descriptor = Entity( # metadata attribute
name = "bot_entity", # Entity - descriptor for entity metadata
...
)
name: str # entity field with default sqlmodel's FieldInfo descriptor
# and default quickbot's field descriptor
description: str | None = Field( # field with sqlmodel's descriptor
sa_type = String, index = True) # and default quickbot's descriptor
age: int = EntityField( # field with quickbot's descriptor
caption = "Age",
)
user_id: int | None = EntityField( # using both descriptors
sm_descriptor=Field(
sa_type=BigInteger,
foreign_key="user.id",
ondelete="RESTRICT",
nullable=True,
),
is_visible=False,
)
user: Optional[User] = EntityField( # using Relationship as sqlmodel descriptor
sm_descriptor=Relationship(
back_populates="entities",
sa_relationship_kwargs={
"lazy": "selectin",
"foreign_keys": "Entity.user_id",
}
),
caption="User",
)
app = QuickBot() # bot application based on FastAPI application
# providing Telegram API webhook handler
@app.command( # decorator for bot commands definition
name="menu",
caption="Main menu",
show_in_bot_commands=True, # shows command in bot's main menu
clear_navigation=True, # resets navigation stack between bot dialogues
)
async def menu(context: CommandCallbackContext):
context.message_text = "Main menu" # message text
context.keyboard_builder.row( # and buttons will be shown to user
InlineKeyboardButton(
text="Entities",
callback_data=ContextData( # callback query dataclass representing
command=CallbackCommand.ENTITY_LIST, # navigation context and its parameters
entity_name="bot_entity"
).pack(),
)
)
Result
<iframe width="100%" height="691" src="https://www.youtube.com/embed/ptTnoppkYfM" title="QuickBot Framework – The Open-Source RAD Tool for Telegram Bots" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>Here you can see the result - YouTube Video with Bot
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file quickbot-0.1.1.tar.gz.
File metadata
- Download URL: quickbot-0.1.1.tar.gz
- Upload date:
- Size: 65.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff3e6cc8e6b94c7c39e7ad81f9a58b0ddf0086b179901ffec3fdce02d6cfef05
|
|
| MD5 |
65d9b405b838add8c1e0581fc80b9588
|
|
| BLAKE2b-256 |
b0b4a3929c7ac203459a7199f24d7c2c75f26a2ac311a9e7a45259a42b8188da
|
File details
Details for the file quickbot-0.1.1-py3-none-any.whl.
File metadata
- Download URL: quickbot-0.1.1-py3-none-any.whl
- Upload date:
- Size: 91.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ea07658aad3b2088f53d4798cec11b135e8f390ee06b20d339f4b90d7722fbf0
|
|
| MD5 |
532751e5089eee7d8ec6de0d0802bf7a
|
|
| BLAKE2b-256 |
e6bd3016a8d23698ac149909c08554cb30399f65ccf1d72f3c6c59f8cd47018b
|