- 扩展 User 模型,添加角色和状态字段 - 创建 Region 模型(省市县乡村层级结构) - 创建版主管理相关模型(申请、权限、支持、限制) - 创建 Article 模型(文章 + 审核流程) - 创建 FeaturedService 模型(特色服务 + 审核流程) - 创建交互功能模型(评论、评分、点赞、收藏) - 更新 Django settings 注册所有 apps - 创建需求实施文档 完整实现需求文档中的 12 个核心数据表和审核流程
9.0 KiB
9.0 KiB
城市手册项目需求文档
1. 项目概述
1.1 项目名称
城市手册
1.2 项目定位
地方志兼本地生活服务平台,记录每个城市的重要信息。
1.3 目标用户
- 本地居民:深度了解家乡
- 游客:快速熟悉到达的城市
- 研究者:了解城市文化和历史
1.4 主要使用场景
- 本地人通过平台深入了解家乡的历史文化、特色服务
- 游客快速获取城市基本信息、景点、美食、住宿等实用信息
- 发现和推荐体现本地特色的生活服务
1.5 产品形态
- 前期:网站
- 后期:考虑移动App
1.6 语言支持
- 前期:中文
- 后期:考虑多语言
1.7 MVP范围
第一版仅做少数几个城市作为样板,后续逐步扩展。
2. 数据来源
2.1 数据来源方式
- 抓取公开数据(百科、政府网站等)
- 用户贡献(UGC)
2.2 数据录入方式
- 第一版采用人工输入方式
- 数据抓取工具后续专门开发
3. 权限体系
3.1 用户角色
| 角色 | 职责 | 权限 |
|---|---|---|
| 普通用户 | 浏览内容、参与互动、申请版主 | 浏览、评论、评分、点赞、收藏、分享、申请版主、申请特色服务 |
| 版主 | 管理指定版块内容 | 管辖范围内内容初审、申请创建版块 |
| AI审核员 | 内容最终审核 | 版主审核通过后的内容进行最终审核,决定是否发布 |
| 管理员 | 全局管理 | 版主申请审核、版主权限管理、全局内容管理 |
3.2 版主权限规则
- 版主只能审核其管辖范围内的内容
- 上级版主不需要复核下级版主审核的内容
- 上级版主有权暂时限制下级版主的权限
- 版主权限限制可由上级版主或管理员操作
3.3 版主申请机制
- 用户可以申请成为特定版块的版主
- 创建版块需要管理员批准
- 版块创建后,特定时间内需要征集到足够支持人数
- 支持人数不足则取消版主权限
3.4 军衔体系
版主根据管辖层级对应不同军衔:
| 管辖层级 | 军衔 |
|---|---|
| 省级 | 将军 |
| 市级 | 校官 |
| 县级 | 尉官 |
| 镇村级 | 士兵 |
4. 版块层级结构
省 → 市 → 县 → 乡镇(街道) → 村(居委会)
5. 内容审核流程
5.1 内容提交流程
文章和特色服务提交需经过以下审核流程:
提交 → 版主初审 → AI审核 → 发布
↓ ↓
拒绝 拒绝
5.2 审核规则
- 版主审核通过后,内容进入AI审核
- AI审核通过后,内容正式发布
- 版主或AI审核拒绝后,内容不发布
- AI审核规则由后台AI自行设计
6. 核心功能
6.1 城市信息展示
城市页面包含:
- 基础信息卡片:地理位置、人口、气候、行政区划
- 历史:建立时间、重要历史事件、名人
- 文化:方言、习俗、节庆、特色小吃
- 实用:交通、教育、医疗、商业
- 生活:推荐餐厅、景点、活动、攻略
6.2 特色服务
分类:
- 衣:服装、特产
- 食:餐饮美食
- 住:住宿
- 行:交通、出行
- 娱乐:娱乐场所、活动
- 旅游:景点、游玩
- 文化:文化体验、博物馆、非遗等
6.3 搜索和导航
- 城市搜索:按名称、省份、特色搜索
- 首页导航结构
6.4 用户系统
注册登录:
- 用户注册(支持邮箱、手机号等)
- 用户登录
- 个人中心
个人中心功能:
- 个人信息管理
- 收藏列表(可收藏城市、特色服务)
- 申请管理(版主申请、特色服务申请)
6.5 交互功能
评分:
- 对城市和特色服务进行评分
- 评分采用几星制(待确认)
点赞:
- 对文章、特色服务进行点赞
收藏:
- 可收藏城市、特色服务
- 收藏列表在个人中心显示
分享:
- 支持分享到微信朋友圈、微博、复制链接
- 生成分享卡片
评论:
- 对文章和城市可以评论
- 评论内容由AI审核
7. 后台管理功能
7.1 内容管理
- 城市信息管理(添加、编辑、删除)
- 特色服务管理(添加、编辑、删除)
- 内容审核管理(查看待审核内容、查看审核历史)
7.2 用户管理
- 用户列表查看
- 用户信息管理
7.3 版主管理
- 版主申请审核
- 版主权限管理(授予、限制、取消)
- 版块管理
7.4 数据统计
- 用户统计
- 内容统计
- 互动统计
8. 数据库设计
8.1 核心数据表
-
用户表 (users)
- 用户ID
- 用户名
- 邮箱/手机号
- 密码(加密)
- 角色类型(普通用户/版主/管理员)
- 创建时间
- 状态(正常/禁用)
-
版块表 (regions)
- 版块ID
- 版块名称
- 版块级别(省/市/县/乡镇/村)
- 上级版块ID
- 创建时间
- 状态
-
版主申请表 (moderator_applications)
- 申请ID
- 申请者ID
- 申请的版块ID
- 申请时间
- 支持人数
- 截止时间
- 状态(待审核/已通过/已拒绝/已取消)
- 审核人ID
- 审核时间
-
版主权限表 (moderator_permissions)
- 权限ID
- 版主ID
- 管辖版块ID
- 军衔级别
- 权限状态(正常/限制/取消)
- 创建时间
- 限制时间(如有限制)
-
内容表 (articles)
- 内容ID
- 标题
- 内容
- 所属版块ID
- 内容类型(城市信息/历史/文化/实用/生活)
- 提交者ID
- 版主审核人ID
- 版主审核时间
- 版主审核状态(待审核/通过/拒绝)
- AI审核状态(待审核/通过/拒绝)
- AI审核时间
- 发布状态(未发布/已发布)
- 创建时间
- 更新时间
-
特色服务表 (featured_services)
- 服务ID
- 服务名称
- 服务描述
- 所属版块ID
- 服务分类(衣/食/住/行/娱乐/旅游/文化)
- 提交者ID
- 版主审核人ID
- 版主审核时间
- 版主审核状态(待审核/通过/拒绝)
- AI审核状态(待审核/通过/拒绝)
- AI审核时间
- 发布状态(未发布/已发布)
- 创建时间
- 更新时间
-
评论表 (comments)
- 评论ID
- 评论内容
- 评论对象ID(文章ID或特色服务ID)
- 评论对象类型(文章/特色服务)
- 评论者ID
- AI审核状态(待审核/通过/拒绝)
- 创建时间
-
收藏表 (favorites)
- 收藏ID
- 用户ID
- 收藏对象ID(城市ID或特色服务ID)
- 收藏对象类型(城市/特色服务)
- 创建时间
-
评分表 (ratings)
- 评分ID
- 用户ID
- 评分对象ID(城市ID或特色服务ID)
- 评分对象类型(城市/特色服务)
- 评分值
- 创建时间
-
点赞表 (likes)
- 点赞ID
- 用户ID
- 点赞对象ID(文章ID或特色服务ID)
- 点赞对象类型(文章/特色服务)
- 创建时间
-
版主支持表 (moderator_supports)
- 支持ID
- 支持者ID
- 版主申请ID
- 创建时间
-
权限限制表 (permission_restrictions)
- 限制ID
- 操作者ID(上级版主或管理员)
- 被限制版主ID
- 限制类型(部分限制/完全限制)
- 限制开始时间
- 限制结束时间
- 创建时间
9. 技术实现要点
9.1 版主审核权限判断逻辑
用户A可以审核内容B的条件:
- 用户A是版主且权限状态为正常
- 内容B的版块 == 用户A管辖的版块 或 内容B的版块在用户A管辖范围内
9.2 版块申请自动化逻辑
- 截止时间到达且支持人数不足 → 自动取消版主申请
- 版主申请取消后,相关支持记录保留但状态标记为已取消
9.3 内容审核流程自动化
- 版主审核通过 → 自动提交到AI审核队列
- AI审核完成 → 自动更新内容发布状态
9.4 支持人数统计
- 实时统计版主申请的支持人数
- 定期更新支持人数到版主申请表
10. 待确认细节
以下细节待进一步确认:
-
版块申请截止时间和支持人数
- 征集期具体时长?
- 多少人数算"足够支持人数"?
-
评分机制
- 评分采用几星制?(1-5星?)
- 评分是否需要写评价?
-
城市信息数据字段
- 固定模板 vs 灵活标签
-
AI审核拒绝后的处理
- 提交者能看到拒绝原因吗?
- 是否可以申诉?
-
分享卡片生成
- 卡片样式和内容格式?
-
版主权限限制的具体逻辑
- 部分限制限制哪些权限?
- 限制的最长时限?
11. 版本规划
1.0(MVP)
- 基础网站功能
- 少数样板城市
- 用户系统
- 评论、评分、点赞、收藏、分享
- 版主申请和审核机制
- 内容审核流程(版主+AI)
后续版本
- 扩展更多城市
- 移动App开发
- 多语言支持
- 数据抓取工具
- 商家入驻功能
- 高级统计和分析
12. 文档版本
| 版本 | 日期 | 说明 |
|---|---|---|
| 1.0 | 2026-04-09 | 初始版本 |