Files
OneMD/posts/blog/工作/项目/啥都评.md
T
2026-06-19 14:45:07 +08:00

341 lines
8.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: 啥都评
date: 2025-04-30
categories: [工作, 项目]
tags: [项目]
---
**10天开发计划**(7-15天区间里,10天足够完成可运行版本,预留时间可调度缓冲或提前做优化)。按你的技术栈:Vue 3 + Spring Boot + MySQL,目标是**开发出一个可部署、可使用的“啥都评”基础版**。
---
## 📅 10天开发计划(第一阶段)
---
- [ ] 📌 第 1 天:环境搭建 & 项目初始化
- 详情
- 搭建开发环境(JDK、MySQL、IDEA、Node、Nginx
- 新建 Spring Boot 项目,配置好 dev 配置、数据库连接、JWT 安全框架
- 新建 Vue 3 项目,安装 Element Plus / Tailwind CSS
- 搭建基础路由、Axios 封装、前后端联调代理配置
👉 **输出**:能跑起来的空白前后端项目+数据库连接成功
---
- [ ] 📌 第 2 天:用户系统开发
- 详情
**后端**
- 用户注册、登录、登出接口(JWT token)
- 用户表、token 验证、权限拦截
**前端**
- 登录/注册页面、表单校验、token 持久化
- 登录态前端路由守卫
👉 **输出**:登录注册功能能跑,登录后进入主页
---
- [ ] 📌 第 3 天:正经评 - 条目管理与展示
- 详情
**后端**
- 创建 `evaluation_item` 表,新增/获取条目接口
- 获取评分综合、维度分接口
**前端**
- 正经评页面,展示条目列表、详情页
- 发起评价页面(只管理员可发)
👉 **输出**:正经评页面展示+详情页基本完成
---
- [ ] 📌 第 4 天:正经评 - 评分与评论
- 详情
**后端**
- `user_score` 表,提交评分接口、评论接口、获取评论列表接口
- 评论点赞、举报接口
**前端**
- 条目评分组件(多维度打分)
- 评论展示、发布、点赞、举报功能
👉 **输出**:正经评评分+评论功能上线
---
- [ ] 📌 第 5 天:趣味评 - 发帖与展示
- 详情
**后端**
- `fun_topics` 表,发布趣味评接口、获取列表接口、详情接口
**前端**
- 趣味评广场页面,展示帖子列表
- 发帖页面,文字/图片/是否开启评论/投票选项
👉 **输出**:趣味评发帖+广场浏览功能完成
---
- [ ] 📌 第 6 天:趣味评 - 评论与互动
- 详情
**后端**
- `fun_comments` 表,发布评论、点赞、举报、设精选接口
- 评论回复机制(仅一级)
**前端**
- 趣味评帖子详情页,评论发布、回复、点赞、举报
- 精选评论标记(发帖人可设)
👉 **输出**:趣味评评论互动功能上线
---
- [ ] 📌 第 7 天:搜索、榜单、推荐功能
- 详情
**后端**
- 条目、帖子关键词模糊搜索接口
- 按热度、点赞数、评论数排行接口
**前端**
- 搜索框联想、结果展示页
- 首页榜单区域、推荐话题展示
👉 **输出**:搜索与榜单功能上线
---
- [ ] 📌 第 8 天:管理后台(简易版)
- 详情
**后端**
- 用户管理、举报内容列表、违规处理接口
**前端**
- 简易管理后台页面(可进首页手动跳转)
👉 **输出**:基本管理功能可用
---
- [ ] 📌 第 9 天:前端界面美化、细节完善
- 详情
- Tailwind / Element Plus 样式统一调整
- 评分动画、按钮 loading、响应式适配
- 图片上传预览、发帖限制校验
- 评论时间格式化、美化样式
👉 **输出**:整体前端页面清爽、可交互、无重大 bug
---
- [ ] 📌 第 10 天:联调测试 & 部署打包
- 详情
- 前后端联调,修复接口返回问题
- 前端打包 + Spring Boot 打包
- Docker/Nginx 配置部署测试
- 生成部署文档
👉 **输出**:项目部署运行,进入试用阶段
---
## 📊 最终效果:
- 用户能注册、登录、发帖、评分、评论
- 正经评+趣味评+搜索+榜单功能可用
- 管理后台能查看用户、举报、封禁
- 支持 PC + 手机访问,界面基础美化
- 可部署的正式版本,后续可升级优化
---
## 📦 项目目录结构草稿
### 后端(Spring Boot
```Plain
shadouping-server/
├── src/main/java/com/shadouping/
│ ├── config/ // 配置类
│ ├── controller/ // 控制器层
│ ├── service/ // 服务层
│ ├── dao/ // Mapper接口
│ ├── entity/ // 实体类
│ ├── security/ // 安全配置
│ ├── util/ // 工具类
│ └── ShadoupingApplication.java
├── resources/
│ ├── application.yml
│ └── static/
└── Dockerfile
```
### 前端(Vue 3 + Vite
```Plain
shadouping-web/
├── src/
│ ├── api/ // axios 接口封装
│ ├── assets/ // 静态资源
│ ├── components/ // 通用组件
│ ├── pages/ // 页面组件
│ ├── router/ // 路由配置
│ ├── store/ // pinia 状态管理
│ ├── utils/ // 工具方法
│ └── main.js
├── public/
└── vite.config.js
```
---
## 🗄️ 数据库建表 SQL
```SQL
-- 用户表
CREATE TABLE user (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(100) NOT NULL,
avatar VARCHAR(255),
role TINYINT DEFAULT 0, -- 0普通 1管理员
status TINYINT DEFAULT 0,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 正经评条目表
CREATE TABLE evaluation_item (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(100) NOT NULL,
category VARCHAR(50),
description TEXT,
cover_img VARCHAR(255),
create_time DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 正经评分记录表
CREATE TABLE user_score (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
user_id BIGINT,
item_id BIGINT,
score DECIMAL(3,1),
comment TEXT,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 正经评评论点赞表
CREATE TABLE score_comment_like (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
user_id BIGINT,
score_id BIGINT
);
-- 趣味评话题表
CREATE TABLE fun_topic (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
user_id BIGINT,
title VARCHAR(100) NOT NULL,
content TEXT,
img VARCHAR(255),
allow_comment TINYINT DEFAULT 1,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 趣味评评论表
CREATE TABLE fun_comment (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
topic_id BIGINT,
user_id BIGINT,
content TEXT,
parent_id BIGINT DEFAULT 0,
is_selected TINYINT DEFAULT 0,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 举报表
CREATE TABLE report (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
reporter_id BIGINT,
type VARCHAR(50), -- topic/comment/score
target_id BIGINT,
reason VARCHAR(255),
create_time DATETIME DEFAULT CURRENT_TIMESTAMP
);
```
---
## 📑 前后端接口清单
### 📌 用户接口
- POST /api/user/register 注册
- POST /api/user/login 登录
- GET /api/user/info 查询个人信息
- GET /api/user/list 管理员查用户列表
### 📌 正经评接口
- GET /api/item/list 条目列表
- GET /api/item/{id} 条目详情
- POST /api/item/add 新增条目
- POST /api/item/score 提交评分
- GET /api/item/score/list 某条目评论
- POST /api/item/score/like 点赞评论
### 📌 趣味评接口
- GET /api/topic/list 话题列表
- GET /api/topic/{id} 话题详情
- POST /api/topic/add 发布话题
- POST /api/topic/comment 发布评论
- POST /api/topic/comment/like 点赞评论
- POST /api/topic/comment/select 精选评论
### 📌 举报接口
- POST /api/report 举报
- GET /api/report/list 管理员查举报记录
### 📌 搜索 & 榜单接口
- GET /api/search 搜索条目/话题
- GET /api/rank/item 正经评榜单
- GET /api/rank/topic 趣味评榜单