flutter_adminpanel 2.0.3 copy "flutter_adminpanel: ^2.0.3" to clipboard
flutter_adminpanel: ^2.0.3 copied to clipboard

A comprehensive Flutter admin panel library similar to react-admin with universal REST API adapter for any backend

Flutter AdminPanel #

A comprehensive Flutter admin panel library inspired by react-admin, with a universal adapter system for any data source.

pub package License: MIT

๐Ÿ“š Documentation #

Read the full documentation on GitBook โ†’

โœจ Features #

  • ๐ŸŽจ Modern UI - Clean, Material Design 3 interface
  • ๐Ÿ”Œ Universal Adapters - Connect to any data source with REST API
  • ๐Ÿ”ง Plug-and-Play - No forced dependencies, use only what you need
  • ๐Ÿ—“๏ธ Event Management - Complete event lifecycle with automatic status updates
  • ๐Ÿ“ฑ Cross-Platform - Works on Web, Mobile, and Desktop
  • ๐Ÿ”’ Type Safe - Written in Dart with strong typing
  • โšก High Performance - Optimized for large datasets
  • ๐ŸŒ Offline Support - Built-in caching and sync
  • ๐ŸŽฏ Production Ready - Battle-tested in real-world applications

๐Ÿ“ฆ Supported Data Sources #

Built-in (No Extra Dependencies) #

  • โœ… REST API - Works with any RESTful backend

๐Ÿ“ฆ Installation #

dependencies:
  flutter_adminpanel: ^1.4.1
flutter pub get

๐Ÿ“– Full Installation Guide โ†’

โšก Quick Start #

Step 1: Choose Your Data Provider #

import 'package:flutter/material.dart';
import 'package:flutter_adminpanel/flutter_adminpanel.dart';
import 'package:flutter_adminpanel/adapters/rest.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // Register REST API provider
  final provider = await registerRestProvider(
    baseUrl: 'https://api.example.com',
  );
  
  runApp(MyAdminApp(provider: provider));
}

Step 2: Build Your Admin Panel #

class MyAdminApp extends StatelessWidget {
  final DataProvider provider;
  
  const MyAdminApp({Key? key, required this.provider}) : super(key: key);
  
  @override
  Widget build(BuildContext context) {
    return AdminApp(
      title: 'My Admin Panel',
      dataProvider: provider,
      resources: [
        Resource(
          name: 'products',
          list: ProductListScreen(),
          create: ProductCreateScreen(),
          edit: ProductEditScreen(),
        ),
      ],
    );
  }
}

Step 3: Define Your Resource #

class ProductListScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ResourceList(
      resource: 'products',
      columns: [
        ColumnConfig(field: 'id', label: 'ID', width: 80),
        ColumnConfig(field: 'name', label: 'Name', sortable: true),
        ColumnConfig(
          field: 'price',
          label: 'Price',
          sortable: true,
          format: (value) => '\$${value.toStringAsFixed(2)}',
        ),
      ],
    );
  }
}

๐Ÿ“– Complete Quick Start Guide โ†’

๐Ÿ”Œ Universal Adapter System #

Connect to any data source without adding unnecessary dependencies:

// REST API
import 'package:flutter_adminpanel/adapters/rest.dart';
final provider = await registerRestProvider(baseUrl: 'https://api.example.com');

๐Ÿ“– Full Adapters Guide โ†’

๐Ÿ“š Documentation #

Getting Started #

Data Providers #

Features #

Reference #

๐ŸŽฏ Example Application #

See the example directory for a complete admin panel with:

  • REST API data provider
  • Event management
  • Onboarding flow
  • File uploads

View Example โ†’

๐Ÿงช Testing #

# Run unit tests
flutter test

# Run integration tests
cd example
flutter test integration_test/

๐Ÿ—๏ธ Architecture #

AdminApp
โ”œโ”€โ”€ Data Provider Registry (Adapter System)
โ”‚   โ”œโ”€โ”€ REST API Adapter
โ”‚   โ””โ”€โ”€ Custom Adapters
โ”œโ”€โ”€ Resources
โ”‚   โ”œโ”€โ”€ List View
โ”‚   โ”œโ”€โ”€ Create Form
โ”‚   โ”œโ”€โ”€ Edit Form
โ”‚   โ””โ”€โ”€ Show View
โ””โ”€โ”€ Services
    โ”œโ”€โ”€ Event Management
    โ”œโ”€โ”€ Offline Storage
    โ””โ”€โ”€ File Handling

Read Architecture Guide โ†’

๐Ÿ”„ Comparison with react-admin #

Feature react-admin flutter_adminpanel
Framework React (Web) Flutter (Cross-platform)
Language JavaScript/TypeScript Dart
Data Providers Multiple Universal Adapter System
UI Components Material-UI Material Design 3
Platform Web only Web, Mobile, Desktop
Type Safety TypeScript Dart (built-in)
Offline Support Limited Built-in with RADA

๐Ÿค Contributing #

We welcome contributions! See our GitHub repository for:

๐Ÿ“„ License #

MIT License - see LICENSE file for details.

๐Ÿ“ž Support #


Made with โค๏ธ by NativeMind