{"id":14979059,"url":"https://github.com/mizhexiaoxiao/vue-fastapi-admin","last_synced_at":"2025-05-14T20:02:21.477Z","repository":{"id":188427184,"uuid":"677332098","full_name":"mizhexiaoxiao/vue-fastapi-admin","owner":"mizhexiaoxiao","description":"⭐️ 基于 FastAPI+Vue3+Naive UI 的现代化轻量管理平台 A modern and lightweight management platform based on FastAPI, Vue3, and Naive UI.","archived":false,"fork":false,"pushed_at":"2025-03-03T02:44:49.000Z","size":2366,"stargazers_count":1102,"open_issues_count":2,"forks_count":217,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-04-06T16:05:19.330Z","etag":null,"topics":["admin","fastapi","fastapi-admin","fastapi-vue-admin","fastapi-vuejs-template","jwt","naive-ui","naive-ui-admin","pinia","pydantic","pydantic-v2","python","swaager","tortoise-orm","vite","vue","vue-admin","vue3"],"latest_commit_sha":null,"homepage":"http://vue-fastapi-admin.com","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mizhexiaoxiao.png","metadata":{"files":{"readme":"README-en.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-11T09:57:40.000Z","updated_at":"2025-04-05T03:06:14.000Z","dependencies_parsed_at":"2024-03-05T08:28:39.893Z","dependency_job_id":"22dbca05-72f7-40d1-8500-a8735feb05bd","html_url":"https://github.com/mizhexiaoxiao/vue-fastapi-admin","commit_stats":{"total_commits":80,"total_committers":6,"mean_commits":"13.333333333333334","dds":0.1875,"last_synced_commit":"dd896992bf4ac011b3ac52d2a294c1c994569830"},"previous_names":["mizhexiaoxiao/vue-fastapi-admin"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mizhexiaoxiao%2Fvue-fastapi-admin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mizhexiaoxiao%2Fvue-fastapi-admin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mizhexiaoxiao%2Fvue-fastapi-admin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mizhexiaoxiao%2Fvue-fastapi-admin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mizhexiaoxiao","download_url":"https://codeload.github.com/mizhexiaoxiao/vue-fastapi-admin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248759716,"owners_count":21157214,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["admin","fastapi","fastapi-admin","fastapi-vue-admin","fastapi-vuejs-template","jwt","naive-ui","naive-ui-admin","pinia","pydantic","pydantic-v2","python","swaager","tortoise-orm","vite","vue","vue-admin","vue3"],"created_at":"2024-09-24T13:59:05.644Z","updated_at":"2025-04-13T18:27:29.257Z","avatar_url":"https://github.com/mizhexiaoxiao.png","language":"Vue","funding_links":[],"categories":["Vue"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/mizhexiaoxiao/vue-fastapi-admin\"\u003e\n    \u003cimg alt=\"Vue FastAPI Admin Logo\" width=\"200\" src=\"https://github.com/mizhexiaoxiao/vue-fastapi-admin/blob/main/deploy/sample-picture/logo.svg\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003evue-fastapi-admin\u003c/h1\u003e\n\nEnglish | [简体中文](./README.md)\n\nvue-fastapi-admin is a modern front-end and back-end separation development platform that combines FastAPI, Vue3, and Naive UI. It incorporates RBAC (Role-Based Access Control) management, dynamic routing, and JWT (JSON Web Token) authentication, making it ideal for rapid development of small to medium-sized applications and also serves as a valuable learning resource.\n\n### Features\n- **Popular Tech Stack**: The backend is developed with the high-performance asynchronous framework FastAPI using Python 3.11, while the front-end is powered by cutting-edge technologies such as Vue3 and Vite, complemented by the efficient package manager, pnpm.\n- **Code Standards**: The project is equipped with various plugins for code standardization and quality control, ensuring consistency and enhancing team collaboration efficiency.\n- **Dynamic Routing**: Backend dynamic routing combined with the RBAC model allows for fine-grained control of menus and routing.\n- **JWT Authentication**: User identity verification and authorization are handled through JWT, enhancing the application's security.\n- **Granular Permission Control**: Implements detailed permission management including button and interface level controls, ensuring different roles and users have appropriate permissions.\n\n### Live Demo\n- URL: http://139.9.100.77:9999\n- Username: admin\n- Password: 123456\n\n### Screenshots\n\n#### Login Page\n![Login Page](https://github.com/mizhexiaoxiao/vue-fastapi-admin/blob/main/deploy/sample-picture/login.jpg)\n\n#### Workbench\n![Workbench](https://github.com/mizhexiaoxiao/vue-fastapi-admin/blob/main/deploy/sample-picture/workbench.jpg)\n\n#### User Management\n![User Management](https://github.com/mizhexiaoxiao/vue-fastapi-admin/blob/main/deploy/sample-picture/user.jpg)\n\n#### Role Management\n![Role Management](https://github.com/mizhexiaoxiao/vue-fastapi-admin/blob/main/deploy/sample-picture/role.jpg)\n\n#### Menu Management\n![Menu Management](https://github.com/mizhexiaoxiao/vue-fastapi-admin/blob/main/deploy/sample-picture/menu.jpg)\n\n#### API Management\n![API Management](https://github.com/mizhexiaoxiao/vue-fastapi-admin/blob/main/deploy/sample-picture/api.jpg)\n\n### Quick Start\nPlease follow the instructions below for installation and configuration:\n\n#### Method 1：dockerhub pull image\n\n```sh\ndocker pull mizhexiaoxiao/vue-fastapi-admin:latest \ndocker run -d --restart=always --name=vue-fastapi-admin -p 9999:80 mizhexiaoxiao/vue-fastapi-admin\n```\n\n#### Method 2: Build Image Using Dockerfile\n##### Install Docker\n\n```sh\nyum install -y docker-ce\nsystemctl start docker\n```\n\n##### Build the Image\n\n```sh\ngit clone https://github.com/mizhexiaoxiao/vue-fastapi-admin.git\ncd vue-fastapi-admin\ndocker build --no-cache . -t vue-fastapi-admin\n```\n\n##### Start the Container\n\n```sh\ndocker run -d --restart=always --name=vue-fastapi-admin -p 9999:80 vue-fastapi-admin\n```\n\n##### Access the Service\n\nhttp://localhost:9999\n\nusername：admin\n\npassword：123456\n\n### Local Setup\n#### Backend\nThe backend service requires the following environment:\n- Python 3.11\n\n#### Method 1 (Recommended): Install Dependencies with uv\n1. Install uv\n```sh\npip install uv\n```\n\n2. Create and activate virtual environment\n```sh\nuv venv\nsource .venv/bin/activate  # Linux/Mac\n# or\n.\\.venv\\Scripts\\activate  # Windows\n```\n\n3. Install dependencies\n```sh\nuv add pyproject.toml\n```\n\n4. Start the backend service\n```sh\npython run.py\n```\n\n#### Method 2: Install Dependencies with Pip\n1. Create a Python virtual environment:\n```sh\npython3 -m venv venv\nsource venv/bin/activate  # Linux/Mac\n# or\n.\\venv\\Scripts\\activate  # Windows\n```\n\n2. Install project dependencies:\n```sh\npip install -r requirements.txt\n```\n\n3. Start the backend service:\n```sh\npython run.py\n```\nThe backend service is now running, and you can visit http://localhost:9999/docs to view the API documentation.\n\n#### Frontend\nThe frontend project requires a Node.js environment (recommended version 18.8.0 or higher).\n- node v18.8.0+\n\n1. Navigate to the frontend project directory:\n```sh\ncd web\n```\n\n2. Install project dependencies (pnpm is recommended: https://pnpm.io/zh/installation)\n```sh\nnpm i -g pnpm # If pnpm is already installed, skip this step\npnpm i # Or use npm i\n```\n\n3. Start the frontend development server:\n```sh\npnpm dev\n```\n\n### Directory Structure Explanation\n\n```\n├── app                   // Application directory\n│   ├── api               // API interface directory\n│   │   └── v1            // Version 1 of the API interfaces\n│   │       ├── apis      // API-related interfaces\n│   │       ├── base      // Base information interfaces\n│   │       ├── menus     // Menu related interfaces\n│   │       ├── roles     // Role related interfaces\n│   │       └── users     // User related interfaces\n│   ├── controllers       // Controllers directory\n│   ├── core              // Core functionality module\n│   ├── log               // Log directory\n│   ├── models            // Data models directory\n│   ├── schemas           // Data schema/structure definitions\n│   ├── settings          // Configuration settings directory\n│   └── utils             // Utilities directory\n├── deploy                // Deployment related directory\n│   └── sample-picture    // Sample picture directory\n└── web                   // Front-end web directory\n    ├── build             // Build scripts and configuration directory\n    │   ├── config        // Build configurations\n    │   ├── plugin        // Build plugins\n    │   └── script        // Build scripts\n    ├── public            // Public resources directory\n    │   └── resource      // Public resource files\n    ├── settings          // Front-end project settings\n    └── src               // Source code directory\n        ├── api           // API interface definitions\n        ├── assets        // Static resources directory\n        │   ├── images    // Image resources\n        │   ├── js        // JavaScript files\n        │   └── svg       // SVG vector files\n        ├── components    // Components directory\n        │   ├── common    // Common components\n        │   ├── icon      // Icon components\n        │   ├── page      // Page components\n        │   ├── query-bar // Query bar components\n        │   └── table     // Table components\n        ├── composables   // Composable functionalities\n        ├── directives    // Directives directory\n        ├── layout        // Layout directory\n        │   └── components // Layout components\n        ├── router        // Routing directory\n        │   ├── guard     // Route guards\n        │   └── routes    // Route definitions\n        ├── store         // State management (pinia)\n        │   └── modules   // State modules\n        ├── styles        // Style files directory\n        ├── utils         // Utilities directory\n        │   ├── auth      // Authentication related utilities\n        │   ├── common    // Common utilities\n        │   ├── http      // Encapsulated axios\n        │   └── storage   // Encapsulated localStorage and sessionStorage\n        └── views         // Views/Pages directory\n            ├── error-page // Error pages\n            ├── login      // Login page\n            ├── profile    // Profile page\n            ├── system     // System management page\n            └── workbench  // Workbench page\n```\n\n### Visitors Count\n\n\u003cimg align=\"left\" src = \"https://profile-counter.glitch.me/vue-fastapi-admin/count.svg\" alt=\"Loading\"\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmizhexiaoxiao%2Fvue-fastapi-admin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmizhexiaoxiao%2Fvue-fastapi-admin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmizhexiaoxiao%2Fvue-fastapi-admin/lists"}