# KtorAdmin

**Overview**

KtorAdmin is a **powerful and flexible library** designed to generate an **admin panel** for applications built with **Ktor**. Unlike traditional admin panels that require **predefined database schemas**, KtorAdmin **dynamically detects and adapts** to your ORM structure, making it a seamless solution for managing both **relational and NoSQL databases**.

### **Key Features**

* **Schema-Free Configuration** – No need for predefined database schemas; KtorAdmin automatically detects ORM structures.
* **Multi-ORM Support** – Compatible with **Hibernate, Exposed, and MongoDB**.
* **Dynamic UI Generation** – Automatically creates an **admin panel** based on entity definitions.
* **Event-Driven Architecture** – Provides **event listeners** for insert, update, and delete operations.
* **File Handling** – Supports **file uploads** and allows automatic **processing of files** like generating thumbnails.
* **Role-Based Access Control (RBAC)** – Fine-grained control over **user roles and permissions**.
* **Custom Actions** – Define and execute **custom admin actions**.
* **Multiple Authentication Providers** – Supports **various authentication mechanisms**.
* **Data Export Functionality** – Easily **export data** in multiple formats.
* **Rich Text Editor** – Built-in **support for content editing**.
* **Advanced Filtering & Search** – Efficiently manage and **filter data** with predefined filters.
* **Scalable & High Performance** – Optimized for **production use** with minimal overhead.

***

### **Why Use KtorAdmin?**

KtorAdmin simplifies **admin panel creation** by eliminating **unnecessary boilerplate code** and providing a **schema-independent, dynamic, and extensible approach**. Whether you are managing **relational databases** like **MySQL and PostgreSQL** or working with **NoSQL solutions** such as **MongoDB**, KtorAdmin offers a **seamless way to control and monitor** your application's data with ease.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://amirreza-gholami.gitbook.io/ktor-admin/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
