Skip to content

A dynamic admin panel for Ktor applications, supporting ORM structures without predefined schemas and simplifying data management with advanced features.

License

Notifications You must be signed in to change notification settings

amirroid/KtorAdmin

Repository files navigation

KtorAdmin – The All-in-One Admin Panel for Ktor 🚀

KtorAdmin Banner

Java 17 Maven Central Ktor PostgreSQL MySQL JDBC SQL MongoDB

🌟 Overview

KtorAdmin is a powerful and flexible library that effortlessly creates an admin panel for your Ktor-based applications. Unlike traditional admin panels that rely on predefined database schemas, KtorAdmin dynamically detects and adapts to your ORM structure, making it a perfect solution for managing both relational and NoSQL databases.

Name Dark Mode Light Mode
Dashboard Dark Light
Panel Dark Light
Add, Edit Dark Light

🎬 Demo

To see the demo, visit the following link:
🔗 KtorAdmin Live Demo

For the source code, check out the repository:
🔗 KtorAdmin Demo Repository


🔥 Key Features

Schema-Free Setup – No need for predefined database schemas! KtorAdmin automatically detects ORM structures.
Multi-ORM Support – Works seamlessly with Hibernate, Exposed, and MongoDB.
Dynamic UI Generation – Auto-generates an admin panel based on entity definitions.
Event-Driven Architecture – Supports event listeners for insert, update, and delete operations.
File Handling – Easily manage file uploads, including automatic thumbnail generation.
Role-Based Access Control (RBAC) – Fine-grained user roles & permissions management.
Custom Actions – Add your own admin actions tailored to your needs.
Multiple Authentication Providers – Compatible with various authentication methods.
Data Export – Export data in multiple formats with ease.
Rich Text Editor – Built-in content editing support.
Advanced Filtering & Search – Quickly filter & find data with powerful search capabilities.
Optimized for Performance – Designed for high performance in production environments.
Flexible Multilingual Support – UI is ready for localization with support for multiple languages. While not all languages are pre-included, you can easily add custom translations to fit your needs.


💡 Why Choose KtorAdmin?

KtorAdmin removes unnecessary boilerplate code and provides a schema-independent, dynamic, and extensible solution for admin panel creation. Whether you're handling relational databases like MySQL & PostgreSQL or working with NoSQL databases like MongoDB, KtorAdmin gives you an effortless way to manage and monitor your app’s data.


🚀 Getting Started

Setting up KtorAdmin is straightforward and follows the same installation process as any other Ktor plugin. With just a few simple steps, you can integrate an admin panel into your Ktor application effortlessly.

Step 1: Add Dependency

First, add KtorAdmin to your build.gradle.kts:

plugins {
    id("com.google.devtools.ksp") version "2.1.0-1.0.29"
}

repositories {
    mavenCentral()
}

dependencies {
    // KtorAdmin library
    implementation("io.github.amirroid:KtorAdmin:latest_version")
    ksp("io.github.amirroid:KtorAdmin:latest_version")
}

Step 2: Install KtorAdmin Plugin

Next, install the KtorAdmin plugin in your Ktor application by adding the following code:

fun Application.configureAdmin() {
    install(KtorAdmin)
}

Step 3: Enable KtorAdmin in Your Application Module

Finally, integrate configureAdmin() into your application's main module:

fun Application.module() {
    // Your existing application setup
    ...

    // Enable KtorAdmin
    configureAdmin()
}

Access the Admin Panel

Now, you can access the admin panel by navigating to:

http://localhost:8080/admin

📖 Documentation: For more detailed usage and advanced configurations, visit the Documentation.


License

This package is created and modified by Amirroid and has been released under the MIT License.

About

A dynamic admin panel for Ktor applications, supporting ORM structures without predefined schemas and simplifying data management with advanced features.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published