244 lines
5.6 KiB
Markdown
244 lines
5.6 KiB
Markdown
# 城市手册 - City Manual
|
||
|
||
地方志兼本地生活服务平台
|
||
|
||
## 项目状态
|
||
|
||
### ✅ 后端 (Django) - 已完成
|
||
- ✅ 用户系统(注册、登录、JWT 认证、权限管理)
|
||
- ✅ 区域管理(省市区乡镇村 5 级层级)
|
||
- ✅ 内容管理(文章、评论、评分、点赞、收藏)
|
||
- ✅ 特色服务(衣食住行娱乐旅游文化)
|
||
- ✅ 版主审核系统(申请、支持、审核流程)
|
||
- ✅ RESTful API(完整端点)
|
||
- ✅ Django Admin 后台
|
||
- ✅ 示例数据(6 省 8 市 7 文章 6 服务)
|
||
- ✅ PostgreSQL 数据库配置
|
||
|
||
### ✅ 前端 (React) - 核心功能完成
|
||
- ✅ 首页(Hero、省份导航、精选内容)
|
||
- ✅ 城市列表页(层级导航、面包屑)
|
||
- ✅ 区域详情页(标签页、统计信息)
|
||
- ✅ **登录页**(JWT 认证、错误处理)
|
||
- ✅ **注册页**(表单验证、自动登录)
|
||
- ✅ **导航栏状态切换**(登录/登出、用户名显示)
|
||
- ✅ API 集成(Axios + Token 管理)
|
||
- ✅ 响应式设计
|
||
|
||
### ✅ 部署 - 已完成
|
||
- ✅ Gunicorn(3 workers,端口 8000)
|
||
- ✅ Nginx(反向代理,端口 81)
|
||
- ✅ 静态文件服务
|
||
- ✅ 生产环境配置
|
||
|
||
### ⏳ 待开发
|
||
- 文章详情页
|
||
- 服务详情页
|
||
- 个人中心
|
||
- 搜索功能
|
||
- AI 审核集成
|
||
|
||
## 技术栈
|
||
|
||
### 后端
|
||
- Django 4.2
|
||
- Django REST Framework
|
||
- JWT 认证
|
||
- SQLite (开发环境)
|
||
|
||
### 前端
|
||
- React + Vite
|
||
- React Router
|
||
- Axios
|
||
- 原生 CSS
|
||
|
||
## 快速开始
|
||
|
||
### 开发环境
|
||
|
||
**后端启动**
|
||
```bash
|
||
cd backend
|
||
python3 manage.py runserver 0.0.0.0:8000
|
||
```
|
||
|
||
**前端启动**
|
||
```bash
|
||
cd frontend
|
||
npm install
|
||
npm run dev
|
||
```
|
||
|
||
### 生产环境(本地部署)
|
||
|
||
**访问地址**
|
||
- 主页:http://127.0.0.1:81/
|
||
- Admin: http://127.0.0.1:81/admin/
|
||
- API: http://127.0.0.1:81/api/
|
||
|
||
**服务状态**
|
||
- Gunicorn: 3 workers, 端口 8000
|
||
- Nginx: 反向代理,端口 81
|
||
|
||
### 测试账号
|
||
|
||
| 用户名 | 密码 | 说明 |
|
||
|--------|------|------|
|
||
| admin | (创建时设置) | 超级管理员 |
|
||
| demo | demo123 | 示例用户(已预创建) |
|
||
|
||
## API 端点
|
||
|
||
### 用户
|
||
- `POST /api/register/` - 用户注册
|
||
- `POST /api/token/` - 获取 JWT token
|
||
- `GET /api/users/me/` - 当前用户信息
|
||
|
||
### 区域
|
||
- `GET /api/regions/` - 区域列表
|
||
- `GET /api/regions/{id}/` - 区域详情
|
||
- `GET /api/regions/provinces/` - 省级区域
|
||
- `GET /api/regions/{id}/children/` - 子区域
|
||
|
||
### 文章
|
||
- `GET /api/articles/` - 文章列表
|
||
- `POST /api/articles/` - 创建文章(需登录)
|
||
- 查询参数:`?region={id}&type={type}`
|
||
|
||
### 特色服务
|
||
- `GET /api/services/` - 服务列表
|
||
- `POST /api/services/` - 创建服务(需登录)
|
||
- 查询参数:`?region={id}&category={category}`
|
||
|
||
### 评论
|
||
- `GET /api/comments/` - 评论列表
|
||
- `POST /api/comments/` - 创建评论(需登录)
|
||
|
||
### 评分
|
||
- `GET /api/ratings/` - 评分列表
|
||
- `POST /api/ratings/` - 创建评分(需登录)
|
||
|
||
### 版主申请
|
||
- `GET /api/moderator-applications/` - 申请列表
|
||
- `POST /api/moderator-applications/` - 创建申请(需登录)
|
||
- `POST /api/moderator-applications/{id}/support/` - 支持申请
|
||
|
||
## 数据库模型
|
||
|
||
### 核心模型
|
||
- User - 用户
|
||
- Region - 区域(省市区乡镇村)
|
||
- Article - 文章
|
||
- FeaturedService - 特色服务
|
||
- Comment - 评论
|
||
- Rating - 评分
|
||
- Like - 点赞
|
||
- Favorite - 收藏
|
||
- ModeratorApplication - 版主申请
|
||
- ModeratorPermission - 版主权限
|
||
|
||
## 审核流程
|
||
|
||
```
|
||
用户提交 → 版主初审 → AI 审核 → 发布
|
||
↓ ↓
|
||
拒绝 拒绝
|
||
```
|
||
|
||
## 示例数据
|
||
|
||
已导入以下示例数据:
|
||
|
||
**省份 (6 个)**
|
||
- 北京市、上海市、广东省、浙江省、四川省、陕西省
|
||
|
||
**城市 (8 个)**
|
||
- 广州市、深圳市、杭州市、宁波市、成都市、绵阳市、西安市、咸阳市
|
||
|
||
**文章 (7 篇)**
|
||
- 北京故宫游览攻略、上海外滩历史、广州早茶文化等
|
||
|
||
**特色服务 (6 个)**
|
||
- 全聚德烤鸭、东方明珠塔、广州塔、楼外楼、宽窄巷子、大唐不夜城
|
||
|
||
## 功能清单
|
||
|
||
### 用户系统
|
||
- [x] 用户注册
|
||
- [x] 用户登录(JWT)
|
||
- [x] 用户登出
|
||
- [x] Token 自动管理
|
||
- [x] 登录状态持久化
|
||
- [x] 401 自动跳转登录
|
||
- [ ] 个人中心
|
||
- [ ] 密码修改
|
||
- [ ] 头像上传
|
||
|
||
### 区域系统
|
||
- [x] 省市区乡镇村 5 级层级
|
||
- [x] 区域列表/详情
|
||
- [x] 父子区域查询
|
||
- [x] 区域代码管理
|
||
- [x] 区域激活/禁用
|
||
|
||
### 内容系统
|
||
- [x] 文章 CRUD
|
||
- [x] 文章按区域筛选
|
||
- [x] 评论系统
|
||
- [x] 评分系统
|
||
- [x] 点赞功能
|
||
- [x] 收藏功能
|
||
- [ ] 文章详情页
|
||
- [ ] 富文本编辑器
|
||
- [ ] 图片上传
|
||
|
||
### 特色服务
|
||
- [x] 服务 CRUD
|
||
- [x] 服务分类(衣食住行娱乐旅游文化)
|
||
- [x] 服务按区域筛选
|
||
- [ ] 服务详情页
|
||
- [ ] 服务预约
|
||
|
||
### 版主系统
|
||
- [x] 版主申请
|
||
- [x] 用户支持申请
|
||
- [x] 申请状态管理
|
||
- [ ] AI 审核集成
|
||
- [ ] 版主审核后台
|
||
|
||
### 其他功能
|
||
- [ ] 搜索功能
|
||
- [ ] 分页优化
|
||
- [ ] 数据统计面板
|
||
- [ ] 消息通知
|
||
|
||
## 开发日志
|
||
|
||
### 2026-04-12
|
||
- ✅ 实现登录页面(JWT 认证)
|
||
- ✅ 实现注册页面(表单验证)
|
||
- ✅ 导航栏登录状态切换
|
||
- ✅ 修复 API 路径问题
|
||
- ✅ 部署到 Nginx 81 端口
|
||
- ✅ Git 提交并推送
|
||
|
||
### 2026-04-10
|
||
|
||
## 开发日志
|
||
|
||
### 2026-04-10
|
||
- ✅ 创建 Django 项目结构
|
||
- ✅ 设计数据库模型
|
||
- ✅ 实现用户系统
|
||
- ✅ 实现区域管理
|
||
- ✅ 实现内容管理
|
||
- ✅ 实现特色服务
|
||
- ✅ 实现版主审核系统
|
||
- ✅ 配置 REST API
|
||
- ✅ 启动开发服务器
|
||
- ✅ 创建示例数据导入命令
|
||
- ✅ 导入示例数据(6 省 8 市 7 文章 6 服务)
|
||
- ✅ 前端页面开发(首页/城市列表/区域详情)
|
||
- ✅ API 集成(axios + react-router)
|
||
- ✅ Git 提交
|