这是我参与「第四届青训营 」笔记创作活动的的第3天
需求分析:
由于项目刚刚开始,功能先不要计划太多,优先把核心功能实现,其他基础功能逐步拓展即可
- 获取文章列表(分页)
- 获取文章详情 (根据文章id)
- 登录 / 注册
- 用户创建文章
- 用户发布文章 (与创建文章不一样,创建文章不发布的话,会存在草稿箱内)
- 用户查看本人已发布的文章列表
- 全局关键词搜索
至于文章与 标签表tags,分类表category,评论表comment,展示信息表show_info;还有用户的各项信息记录,更新,点赞收藏,关注及其他操作等以后有时间再进行拓展
技术选型
前端:
- 三件套 (后期可能加ts)
- vue3 / vite
- 组件库 Ant Design Vue
- VueX + Vue Router
- Scss
- axios
后端:
- Spring Boot 2.7.0
- Spring MVC
- MySQL 驱动
- MyBatis Plus
- Spring Session Redis 分布式登录
- Spring AOP
- Lombok 注解
- Swagger + Knife4j 接口文档
- Spring Boot 调试工具和项目处理器
数据库字段设计
文章表:
create table page_content(
article_id bigint auto_increment comment 'id' primary key,
cover_image varchar(1024) null comment '封面',
title varchar(1024) null comment '标题',
brief varchar(1024) null comment '简介',
user_name varchar(50) not null comment '文章作者名字',
avatar varchar(1024) null comment '头像',
content longtext not null comment '文章内容',
ctime int(11) comment '创建时间',
mtime int(11) comment '最后一次修改时间'
);
用户表
id(主键)bigint
username 昵称 varchar
userAccount 登录账号
avatarUrl 头像 varchar
gender 性别 tinyint
userPassword 密码 varchar
phone 电话 varchar
email 邮箱 varchar
userStatus 用户状态 int 0 - 正常
createTime 创建时间(数据插入时间)datetime
updateTime 更新时间(数据更新时间)datetime
isDelete 是否删除 0 1(逻辑删除)tinyint
userRole 用户角色 0 - 普通用户 1 - 管理员
# 第一次执行
# create database bytedance;
use bytedance;
# 用户表
create table user
(
id bigint auto_increment comment 'id' primary key,
username varchar(256) null comment '用户昵称',
userAccount varchar(256) null comment '账号',
avatarUrl varchar(1024) null comment '用户头像',
gender tinyint null comment '性别',
userPassword varchar(512) not null comment '密码',
phone varchar(128) null comment '电话',
email varchar(512) null comment '邮箱',
userStatus int default 0 not null comment '状态 0 - 正常',
createTime datetime default CURRENT_TIMESTAMP comment '创建时间',
updateTime datetime default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
isDelete tinyint default 0 not null comment '是否删除',
userRole int default 0 not null comment '用户角色 0 - 普通用户 1 - 管理员'
) comment '用户';
部署: 服务器(加不加docker都可以)
前端目标:
搭建完成 vue3 模板,集成一下上面的这些依赖,完成不带注册登录的 公用header部分,公用布局BaseLayout
前端任务分析:
按照模块划分
- 主页(文章列表页)
- 主页(登录注册,跳转或浮层)
- 文章详情页
- 写文章页
- 草稿箱