2.9 KiB
2.9 KiB
后台管理系统 - 进度报告
已完成的工作
1. 数据库设计和初始化 ✅
创建的数据库表:
-
users - 用户表
- id (主键)
- username (用户名,唯一)
- password_hash (密码哈希)
- email (邮箱)
- full_name (全名)
- is_active (激活状态)
- created_at, updated_at, last_login_at (时间戳)
-
roles - 角色表
- id (主键)
- name (角色名,如 'admin', 'user')
- display_name (显示名称)
- description (描述)
- created_at, updated_at
-
user_roles - 用户-角色关联表 (多对多)
- user_id, role_id (复合主键)
- created_at
-
menus - 菜单表
- id (主键)
- parent_id (父菜单ID,支持树形结构)
- name (菜单名)
- title (显示标题)
- icon (图标名)
- path (路由路径)
- component (组件路径)
- sort_order (排序)
- is_active (激活状态)
- description (描述)
- created_at, updated_at
-
role_menus - 角色-菜单关联表
- id (主键)
- role_id, menu_id
- created_at
2. 初始化数据 ✅
角色数据:
- admin - 管理员角色(拥有所有权限)
- user - 普通用户角色(基本访问权限)
管理员用户:
- 用户名:
cosmo - 密码:
cosmo - 邮箱:admin@cosmo.com
- 角色:admin
菜单结构:
├── 控制台 (/admin/dashboard)
└── 数据管理 (父菜单)
├── 天体数据列表 (/admin/celestial-bodies)
├── 静态数据列表 (/admin/static-data)
└── NASA数据下载管理 (/admin/nasa-data)
3. 代码文件
数据库模型 (ORM)
/backend/app/models/db/user.py- 用户模型/backend/app/models/db/role.py- 角色模型/backend/app/models/db/menu.py- 菜单模型
脚本
/backend/scripts/seed_admin.py- 初始化管理员数据的脚本
依赖
- 新增
bcrypt==5.0.0用于密码哈希
4. 执行的脚本
# 1. 创建数据库表
./venv/bin/python scripts/init_db.py
# 2. 初始化管理员数据
./venv/bin/python scripts/seed_admin.py
数据库表关系
users ←→ user_roles ←→ roles
↓
role_menus
↓
menus (支持父子关系)
下一步工作
根据用户要求,后续需要实现:
-
后台管理系统 - 天体数据列表
- API接口:CRUD操作
- 前端页面:列表、编辑、新增
-
后台管理系统 - 静态数据列表
- API接口:管理星座、星系等静态数据
- 前端页面:分类管理
-
后台管理系统 - NASA数据下载管理
- API接口:查看下载历史、触发数据更新
- 前端页面:数据下载状态监控
注意事项
- 所有密码使用 bcrypt 加密存储
- 菜单系统支持无限层级(通过 parent_id)
- 角色-菜单权限通过 role_menus 表控制
- 当前已创建管理员用户,可直接登录测试