English | Chinese
📘 Project Introduction (Author: @1014TaoTao)
Fastapi-Vue3-Admin is a completely open-source, highly modular, and technologically advanced modern rapid development platform. Its aim is to help developers efficiently build high-quality enterprise-level mid - and back - end systems. This project adopts a front - end and back - end separation architecture, integrating the Python back - end framework FastAPI and the mainstream front - end framework Vue3 to achieve unified development across multiple terminals, providing a one - stop out - of - the - box development experience.
Original Design Concept: With modularity and loose coupling at its core, it pursues rich functional modules, simple and easy - to - use interfaces, detailed development documentation, and convenient maintenance methods. By unifying frameworks and components, it reduces the cost of technology selection, follows development specifications and design patterns, builds a powerful code hierarchical model, and comes with comprehensive local Chinese support. It is specifically tailored for team and enterprise development scenarios.
✨ Core Highlights
| Feature |
Description |
| 🔭 Rapid Development |
A completely open-source modern rapid development platform designed to help developers efficiently build high-quality mid- and back-end systems. |
| 🌐 Full-stack Integration |
Front-end and back-end separation, integrating Python (FastAPI) + Vue3 for multi-terminal development. |
| 🧱 Modular Design |
Highly decoupled system functions, facilitating easy expansion and maintenance. |
| ⚡️ High-performance Asynchronous |
Uses the FastAPI asynchronous framework + Redis cache to optimize API response speed. |
| 🔒 Secure Authentication |
Supports the JWT OAuth2 authentication mechanism to ensure system security. |
| 📊 Permission Management |
The RBAC model enables fine-grained permission control at the menu, button, and data levels. |
| 🚀 Rapid Deployment |
Supports one-click deployment with Docker/Docker Compose/Nginx. |
| 📄 Developer-friendly |
Provides comprehensive Chinese documentation, a Chinese interface, and a visual toolchain to reduce the learning curve. |
| 🚀 Quick Access |
Based on mainstream front-end technology stacks such as Vue3, Vite5, Pinia, and ElementPlus, it's ready to use out of the box. |
🛠️ Technology Stack Overview
| Type |
Technology Selection |
Description |
| Backend Framework |
FastAPI / Uvicorn / Pydantic 2.0 / Alembic |
A modern, high-performance asynchronous framework with enforced type constraints and data migration capabilities. |
| ORM |
SQLAlchemy 2.0 |
A powerful ORM library. |
| Scheduled Tasks |
APScheduler |
Easily implement scheduled tasks. |
| Authentication |
PyJWT |
Implement JWT authentication. |
| Frontend Framework |
Vue3 / Vite5 / Pinia / TypeScript |
Quickly develop Vue3 applications. |
| UI Library |
ElementPlus |
Quickly develop beautiful UI components. |
| Database |
MySQL / MongoDB |
Powerful databases. |
| Cache |
Redis |
A powerful caching database. |
| Documentation |
Swagger / Redoc |
Automatically generate API documentation. |
| Deployment |
Docker / Nginx / Docker Compose |
Quickly deploy projects. |
📌 Built-in Modules
| Module Name |
Sub-module Name |
Description |
| Dashboard |
Workbench, Analysis Page |
Entry for commonly used functions |
| System Management |
Includes sub-modules such as menu, department, position, role, user, log, configuration, announcement, dictionary, and task |
Main system functions |
| Monitoring Management |
Online users, server monitoring, cache monitoring |
System monitoring and management functions |
| Public Management |
Interface management, document management |
Project interface documentation |
🍪 Demo Environment
👷 Installation and Usage
Version Information
| Type |
Technology Stack |
Version |
| Backend |
Python |
>=3.10 |
| Backend |
FastAPI |
0.109 |
| Frontend |
Node.js |
>= 20.0 (It is recommended to use the latest version.) |
| Frontend |
npm |
16.14 |
| Frontend |
Vue3 |
3.3 |
| Database |
MySQL |
8.0 (It is recommended to use the latest version.) |
| Middleware |
Redis |
7.0 (It is recommended to use the latest version.) |
Get Code
Local Backend Start
Local Frontend Start
Local App H5 Start
Local Project Website Start
Local Access Address
Docker Build
🔧 Models
| Module |
Screenshot |
| Login |
 |
| Dashboard |
 |
| Analysis |
 |
| Menu |
 |
| Department |
 |
| Position |
 |
| Role |
 |
| User |
 |
| Log |
 |
| Config |
 |
| OnlineUser |
 |
| Server |
 |
| Cache |
 |
| Task |
 |
| Dict |
 |
| API Docs |
 |
| Theme |
 |
| Document |
 |
| Lock |
 |
移动端
| Module Name |
Screenshot |
| Login |
Under development... (To be completed) |
🛠️ Secondary Development Tutorial
Backend Part
- Write the Entity Class Layer: Create the ORM model for the demo in
backend/app/v1/models/demo/demo_model.py (corresponding to the entity class layer in Spring Boot).
- Write the Data Model Layer: Create the demo data model in
backend/app/v1/schemas/demo/demo_schema.py (corresponding to the DTO layer in Spring Boot).
- Write the Query Parameter Model Layer: Create the query parameter model for the demo in
backend/app/v1/params/demo/demo_param.py (corresponding to the DTO layer in Spring Boot).
- Write the Persistence Layer: Create the demo data layer in
backend/app/v1/cruds/demo/demo_crud.py (corresponding to the Mapper or DAO layer in Spring Boot).
- Write the Business Layer: Create the demo data layer in
backend/app/v1/services/demo/demo_service.py (corresponding to the Service layer in Spring Boot).
- Write the Interface Layer: Create the demo data layer in
backend/app/v1/controllers/demo/demo_controller.py (corresponding to the Controller layer in Spring Boot).
- Register Backend Routes: Register the demo routes in
backend/app/v1/urls/demo/demo_url.py.
- Register Routes to the FastAPI Service: Register the routes in
backend/plugin/init_app.py.
- Add the Demo Module to the System Initialization Script: Add it in
backend/app/scripts/initialize.py (if necessary, you can configure the demo menu permissions in backend/app/scripts/data/system_menu.json and backend/app/scripts/data/system_role_menus.json or from the frontend page menu).
- Add the Demo Module to the Database Migration Script: Add it in
backend/app/alembic/env.py.
Frontend Part
- Configure the Frontend to Access the Backend Interface Address: Configure it in
frontend/src/api/demo/example.ts.
- Write the Frontend Page: Write it in
frontend/src/views/demo/example/index.vue.
🙏 Thanks
Thanks to the contributions and support of the following projects, which have enabled the successful completion of this project:
| WeChat QR Code |
Group QR Code |
WeChat Pay QR Code |
 |
 |
 |
❤️ Star
If you like this project, please give it a ⭐️ Star to show your support! Thank you very much!