跳到主要内容
Skip to content
logo

FastApiAdmin v3.0.0

Modern, Open Source, Full-Stack Rapid Development Platform

If you like this project, please give it a ⭐️!

Project Introduction

FastApiAdmin is a completely open-source, highly modular, and technologically advanced modern rapid development platform designed to help developers efficiently build high-quality enterprise-level systems. It adopts a frontend-backend separation architecture, integrating the Python backend framework FastAPI and the frontend framework Vue3 for multi-platform unified development.

Design Philosophy: With modularity and loose coupling at its core, pursuing rich functionality, clean APIs, comprehensive documentation, and easy maintenance.

Engineering Structure

sh
FastapiAdmin/
├─ backend/               # Backend (FastAPI + Python)
├─ frontend/              # Frontend projects
   ├── web/              # Web frontend (Vue3 + Element Plus)
   ├── app/              # Mobile (UniApp)
   └── docs/             # Documentation site (VitePress)
├─ docker/                # Docker deployment config
   ├── backend/          # Backend Dockerfile
   ├── nginx/            # Nginx config + static files
   ├── mysql/            # MySQL data directory
   └── redis/            # Redis data directory
├─ deploy.sh              # Deployment script
├─ deploy.bat             # Windows startup script
├─ LICENSE                # MIT License
└─ README.md              # Project docs

Detailed directory structures: Frontend, Backend, Mobile, Deployment.

Core Highlights

FeatureDescription
🌐 Full-StackFrontend-backend separation, Python (FastAPI) + Vue3
🧱 ModularHighly decoupled, plug-in architecture, auto route discovery
⚡️ High PerformanceAsync framework + Redis caching
🔒 SecurityJWT OAuth2, RBAC permission control
🚀 DeploymentDocker Compose one-click deployment
📖 Developer FriendlyComplete documentation + Chinese UI + visual toolchain
📱 Mobile SupportUniApp-based FastApp, multi-platform (H5, Mini Program, App)
🛠️ Code GeneratorBuilt-in code generation tools

Technology Stack

TypeTechnology
Backend FrameworkFastAPI / Uvicorn / Pydantic 2.0 / Alembic
ORMSQLAlchemy 2.0
Scheduled TasksAPScheduler
AuthPyJWT
Frontend FrameworkVue3 / Vite / Pinia / TypeScript
Web UIElement Plus
MobileUniApp / Wot Design Uni
DatabaseMySQL / PostgreSQL / SQLite
CacheRedis
DeploymentDocker / Nginx / Docker Compose

Built-in Modules

ModuleFeaturesDescription
DashboardWorkbench, AnalysisSystem overview and data analysis
System ManagementUsers, Roles, Menus, Departments, Positions, Dictionaries, Config, NoticesCore system management
MonitoringOnline users, Server, CacheSystem health monitoring
Task ManagementScheduled tasksAsync task scheduling
Log ManagementOperation logsUser behavior auditing
Development ToolsCode generation, Form builder, API docsDeveloper productivity tools
File ManagementFile storageUnified file management

Package Architecture: Domain Vertical Slice vs Layer-First

This is about source directory organization, separate from the MVC/Controller-Service-CRUD logical layering which still exists.

ApproachOrganizationTypical Structure
Layer-FirstGroup by technical layerTop-level models/, schemas/, services/, controllers/
Vertical Slice (this project)Group by business domainapi/v1/module_*/ with controller.py, service.py, crud.py, model.py, schema.py

This project uses vertical slice by domain.

Rationale:

  • Domain boundaries as units: Modules like system management and monitoring each have independent directories. Parallel development avoids conflicts.
  • Future-proof extraction: To split a module into its own service/repo, move one directory. Layer-first requires pulling from multiple top-level dirs.
  • Layering still exists: Controller → Service → CRUD → Model logical layers are nested inside each domain package, rather than being the primary organizational axis.