# AI-Nav **Repository Path**: slcnx/ai-nav ## Basic Information - **Project Name**: AI-Nav - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-02 - **Last Updated**: 2024-12-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI-Nav AI-Nav 是一个现代化的导航和权限管理系统,基于 Django + React (UmiJS) 构建。本系统提供完整的用户权限管理、设备控制和系统配置功能。 ## 项目结构 ``` . ├── README.md ├── test-server # Django 后端服务 │ ├── accounts # 用户账户管理模块 │ │ ├── admin.py # Django admin 配置 │ │ ├── apps.py # 应用配置 │ │ ├── decorators.py # 自定义装饰器 │ │ ├── models.py # 数据模型定义 │ │ ├── permissions.py # 权限定义 │ │ ├── serializers.py # 序列化器 │ │ ├── urls.py # URL 路由配置 │ │ └── views.py # 视图处理逻辑 │ ├── core # 核心配置模块 │ │ ├── settings.py # Django 项目设置 │ │ ├── urls.py # 主 URL 配置 │ │ └── wsgi.py # WSGI 服务器配置 │ ├── navigation # 导航管理模块 │ │ ├── admin.py # 导航管理后台配置 │ │ ├── models.py # 导航相关模型(分类/标签/链接) │ │ ├── serializers.py # 导航数据序列化器 │ │ ├── urls.py # 导航API路由配置 │ │ └── views.py # 导航相关视图和API │ ├── deploy # 部署脚本 │ │ ├── postgres.sh # PostgreSQL 部署脚本 │ │ └── redis.sh # Redis 部署脚本 │ └── token_blacklist # Token 管理模块 │ ├── authentication.py # 认证逻辑 │ ├── models.py # Token 相关模型 │ ├── schema.py # API Schema 定义 │ └── utils.py # 工具函数 └── test-ui # React 前端项目 ├── mock # 模拟数据 │ ├── auth.ts # 认证相关模拟 │ └── userAPI.ts # 用户 API 模拟 ├── scripts │ └── generate-api.sh # API 代码生成脚本 └── src # 源代码目录 ├── access.ts # 权限控制 ├── app.tsx # 应用入口 ├── components # 通用组件 │ ├── Guide # 引导组件 │ └── Permission # 权限组件 ├── constants # 常量定义 │ ├── config.ts # 配置常量 │ └── index.ts # 常量导出 ├── pages # 页面组件 │ ├── Access # 权限页面 │ ├── system # 系统管理 │ │ ├── roles # 角色管理 │ │ ├── settings # 系统设置 │ │ └── users # 用户管理 │ └── login # 登录页面 ├── services # API 服务 │ ├── api.ts # API 配置 │ ├── auth.ts # 认证服务 │ └── generated # 生成的 API 客户端 └── utils # 工具函数 ├── format.ts # 格式化工具 └── request.ts # 请求工具 ``` ## 特性 ### 用户管理 - 完整的用户 CRUD 操作 - 基于角色的权限管理 - 设备管理和登录控制 - 支持多设备同时登录 - 设备踢出功能 ### 权限系统 - 细粒度的权限控制 - 自动权限注册 - 权限缓存机制 - 支持自定义权限描述 - 支持按角色分配权限 ### 导航管理 - 分类管理 * 支持多级分类结构 * 分类排序功能 * 分类描述和元数据 - 链接管理 * 支持链接分类和标签 * 链接描述和图标 * 公开/私有链接控制 * 链接排序功能 - 标签系统 * 灵活的标签管理 * 标签搜索功能 * 支持多标签筛选 - 高级搜索 * 支持按分类筛选 * 支持标签过滤 * 支持关键词搜索 ## 技术栈 #### 后端 - Python 3.12 - Django - Django REST Framework - SimpleJWT(Token 认证) - Redis(缓存) #### 前端 - React - TypeScript - UmiJS - Ant Design Pro Components - OpenAPI ## 环境要求 ### 后端 - Python 3.12+ - PostgreSQL 14+ - Redis 6+ ### 前端 - Node.js 18+ - pnpm 8+ ## 安装部署 ### 后端设置 ```bash # 进入后端目录 cd test-server # 安装依赖 poetry install # 初始化数据库 ./deploy/postgres.sh ./deploy/redis.sh # 数据库迁移 poetry run python manage.py migrate # 启动服务 poetry run python manage.py runserver ``` ### 前端设置 ```bash # 进入前端目录 cd test-ui # 安装依赖 pnpm install # 生成 API 接口代码 pnpm run gen # 启动开发服务器 pnpm start ``` ## 快速开始 ### 后端设置 ```bash cd test-server python -m venv .venv source .venv/bin/activate pip install -r requirements.txt python manage.py migrate python manage.py runserver ``` ### 前端设置 ```bash cd test-ui pnpm install # 生成 API 接口代码 pnpm run gen # 启动开发服务器 pnpm start ``` ## API 文档 - OpenAPI 文档:http://localhost:8000/api/docs/ - Swagger UI:http://localhost:8000/api/docs/swagger/ ## 主要功能 ### 1. 用户认证 - JWT Token 认证 - Token 刷新机制 - 设备指纹识别 - 多设备管理 ### 2. 权限管理 - 基于角色的权限系统 - 动态权限注册 - 权限缓存优化 - 自定义权限装饰器 ### 3. 设备管理 - 设备登录记录 - 设备在线状态监控 - 设备踢出功能 - 批量设备管理 ## 开发指南 ### 后端开发 #### 添加新的权限 ```python @register_action_permission("Can perform custom action") @action(detail=True, methods=['post']) def custom_action(self, request, pk=None): pass ``` #### 自定义认证装饰器 ```python @device_required @permission_required('custom_permission') def custom_view(request): pass ``` ### 前端开发 #### 权限控制 ```tsx import { Access } from '@/components'; const Page: React.FC = () => { return ( ); }; ``` #### API 调用 ```typescript import { userAPI } from '@/services'; // 使用生成的 API 客户端 const response = await userAPI.getUserInfo(); ``` ## 文档 - API 文档:http://localhost:8000/api/docs/ - Swagger UI:http://localhost:8000/api/docs/swagger/ - 前端文档:http://localhost:3000/docs ## 贡献指南 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 提交 Pull Request ## 许可证 本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件