# Wikwok **Repository Path**: joey2022/wikwok ## Basic Information - **Project Name**: Wikwok - **Description**: 模仿tiktok的短视频平台 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-11-07 - **Last Updated**: 2025-11-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基础功能模块 #### 本项目是一个基础的短视频平台,主要实现了用户系统、视频上传和管理、视频播放和推荐、互动功能、搜索和分类、内容审核和安全管理等功能模块。下面是这些功能模块的详细介绍。 1. 用户系统: - 用户注册、登录、注销功能。 - 个人资料管理,包括头像、昵称、个性签名等。 - 关注、取关功能,方便用户关注其他内容创作者。 2. 视频上传和管理: - 视频上传功能,支持本地视频上传,或直接录制上传。 - 视频管理功能,用户可以查看和删除自己上传的短视频。 - 视频压缩和格式转换,以减少存储占用和流量消耗。 3. 视频播放和推荐: - 视频播放功能,支持短视频的自动播放和循环播放。 - 视频流的推荐算法,使用简单的推荐策略(如随机推荐、基于用户偏好的推荐等)。 - 视频点赞、评论、分享功能。 4. 互动功能: - 点赞、评论功能,用户可以对视频进行点赞和评论互动。 - 评论管理功能,支持用户管理自己发布的评论。 - 消息通知功能,提醒用户有人点赞、评论或关注了他们。 5. 搜索和分类: - 视频搜索功能,支持通过关键词搜索视频。 - 分类和标签功能,将视频划分为不同类别,方便用户浏览和筛选内容。 6. 后台管理系统: - 管理员后台可以管理视频、用户、评论等信息。 - 内容审核和处理举报的后台接口。 #### 这些是实现一个基础短视频平台的主要功能模块。随着项目的发展,可以逐步添加更复杂的推荐算法、直播功能、广告投放等高级功能。 #### 前端推动到 wrk 分支,后端推动到 wsj 分支,最终合并到 master 分支。 #### 项目的目录结构如下: #### 前端所需接口 1. 用户系统 - 用户注册接口:/user/register (POST) - 请求参数: ```json { "username": "string", "password": "string" } ``` - 返回数据: ```json { "success": true, "message": "User registered successfully", "data": { "token": "eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3MzM0OTg3MjgsInVzZXJJZCI6Nn0.sFwiejSiivuhTZU5xHWjfcW___eUT2fGPBZm2kd_kBA" } } ``` - 用户登录接口:/user/login (POST) - 请求参数: ```json { "username": "string", "password": "string" } ``` - 返回数据: ```json { "success": true, "message": "User login successful", "data": { "token": "eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE3MzM0OTg3MjgsInVzZXJJZCI6Nn0.sFwiejSiivuhTZU5xHWjfcW___eUT2fGPBZm2kd_kBA" } } ``` - 用户注销接口:/user/logout (POST) - 请求参数:无 - 返回数据: ```json { "success": true, "message": "User logged out successfully" } ``` - 用户信息接口:/user/info (GET) - 请求参数:无 - 返回数据: - 用户信息接口:/user/info (GET) - 请求参数:无 - 返回数据: ```json { "success": true, "message": "User information retrieved successfully", "data": { "user": { "id": 4, "name": "user4", "password": "无权限访问", "imgurl": null, "descrip": null }, "likedVideos": [ { "id": 1, "title": "视频1标题", "uploaderid": 1, "uploadtime": "2024-12-05T10:33:58.000+00:00", "videopath": "/videos/video1.mp4", "description": "视频1的一些描述内容" }, { "id": 2, "title": "视频2标题", "uploaderid": 2, "uploadtime": "2024-12-05T10:33:58.000+00:00", "videopath": "/videos/video2.mp4", "description": "视频2的一些描述内容" } ], "likedUpMasters": [ { "id": 1, "name": "user1", "password": "无权限访问", "imgurl": null, "descrip": null }, { "id": 5, "name": "user5", "password": "无权限访问", "imgurl": null, "descrip": null } ], "uploadedVideos": [ { "id": 4, "title": "视频4标题", "uploaderid": 4, "uploadtime": "2024-12-05T10:33:58.000+00:00", "videopath": "/videos/video4.mp4", "description": "视频4的一些描述内容" } ], "followers": 2, "following": 2 } } ``` ``` ``` - 用户关注接口:/interaction/follow (POST) - 请求参数: ```json { "userId": "string" } ``` - 返回数据: ```json { "success": true, "message": "User followed successfully", "data": null } ``` - 用户取关接口:/interaction/unfollow (POST) - 请求参数: ```json { "userId": "string" } ``` - 返回数据: ```json { "success": true, "message": "User unfollowed successfully", "data": null } ``` //file为头像文件,格式为png、jpg、jpeg,大小不超过100M。 - 用户更改信息接口:/user/update/info (POST) - 请求参数: ```json { "username": "string", "file": "file", "descrip": "string" } ``` - 返回数据: ```json { "success": true, "message": "User information updated successfully" } ``` 2. 视频上传和管理 - 视频上传接口:/video/upload (POST) - 请求参数: ```json { "title": "string", "description": "string", "file": "file" } ``` - 返回数据: ```json { "success": true, "message": "Video uploaded successfully", "data": { "videoId": "string" } } ``` - 视频列表接口:/video/list (GET) - 请求参数: ```json { "offset": "string" } ``` - 返回数据: ```json { "success": true, "message": "Video list retrieved successfully", "data": [ { "video": { "id": 1, "title": "视频1标题", "uploaderid": 1, "uploadtime": "2024-12-05T10:33:58.000+00:00", "videopath": "/videos/video1.mp4", "description": "视频1的一些描述内容" }, "likes": 1, "comments": 2, "collects": 4, "author": { "id": 1, "name": "user1", "password": "无权限访问", "imgurl": null, "descrip": null } }, { "video": { "id": 2, "title": "视频2标题", "uploaderid": 2, "uploadtime": "2024-12-05T10:33:58.000+00:00", "videopath": "/videos/video2.mp4", "description": "视频2的一些描述内容" }, "likes": 2, "comments": 2, "collects": 4, "author": { "id": 2, "name": "user2", "password": "无权限访问", "imgurl": "test1", "descrip": "helloworld" } }, { "video": { "id": 3, "title": "视频3标题", "uploaderid": 3, "uploadtime": "2024-12-05T10:33:58.000+00:00", "videopath": "/videos/video3.mp4", "description": "视频3的一些描述内容" }, "likes": 2, "comments": 2, "collects": 4, "author": { "id": 3, "name": "user3", "password": "无权限访问", "imgurl": null, "descrip": null } }, { "video": { "id": 5, "title": "视频5标题", "uploaderid": 5, "uploadtime": "2024-12-05T10:33:58.000+00:00", "videopath": "/videos/video5.mp4", "description": "视频5的一些描述内容" }, "likes": 2, "comments": 2, "collects": 4, "author": { "id": 5, "name": "user5", "password": "无权限访问", "imgurl": null, "descrip": null } } ] } ``` - 视频删除接口:/video/delete (POST) - 请求参数: ```json { "videoId": "string" } ``` - 返回数据: `json { "success": true, "message": "Video deleted successfully", "data": null } ` // - 视频点赞接口:/interaction/like (POST) - 请求参数: ```json { "videoId": "string" } ``` - 返回数据: ```json { "success": true, "message": "Video liked successfully", "data": null } ``` - 视频取消点赞接口:/interaction/unlike (POST) - 请求参数: ```json { "videoId": "string" } ``` - 返回数据: ```json { "success": true, "message": "Video unliked successfully", "data": null } ``` - 视频收藏接口:/interaction/collect (POST) - 请求参数: ```json { "videoId": "string" } ``` - 返回数据: ```json { "success": true, "message": "Video collected successfully", "data": null } ``` - 视频取消收藏接口:/interaction/uncollect (POST) - 请求参数: ```json { "videoId": "string" } ``` - 返回数据: ```json { "success": true, "message": "Video uncollected successfully", "data": null } ``` - 获取视频评论接口:/video/comments (GET) - 请求参数: ```json { "videoId": "string" } ``` - 返回数据: ```json { "success": true, "message": "Comment list retrieved successfully", "data": [ { "comment": { "id": 1, "videoid": 1, "userid": 2, "content": "这是对视频1的评论内容", "createtime": "2024-12-05T10:33:58.000+00:00" }, "author": { "id": 2, "name": "user2", "password": "无权限访问", "imgurl": "test1", "descrip": "helloworld" } } ] } ``` - 视频评论接口:/interaction/comment (POST) - 请求参数: ```json { "videoId": "string", "content": "string" } ``` - 返回数据: ```json { "success": true, "message": "Comment added successfully", "data": null } ``` - 视频取消评论接口:/interaction/uncomment (POST) - 请求参数: ```json { "videoId": "string", "commentId": "string" } ``` - 返回数据: ```json { "success": true, "message": "Comment deleted successfully", "data": null } ``` - 视频评论接口:/interaction/comment (POST) - 请求参数: ```json { "videoId": "string", "content": "string" } ``` - 返回数据: ```json { "success": true, "message": "Second comment added successfully", "data": null } ``` - 视频取消二级评论接口:/interaction/unsecendComment (POST) - 请求参数: ```json { "commentId": "string" } ``` - 返回数据: ```json { "success": true, "message": "Second comment deleted successfully", "data": null } ``` - 获取视频评论接口:/video/secendComments (GET) - 请求参数: ```json { "videoId": "string", "commentId": "string" } ``` - 返回数据: ```json { "success": true, "message": "Secondary comment list retrieved successfully", "data": [ { "comment": { "id": 14, "commentid": 10, "userid": 2, "createtime": "2024-12-07T10:14:44.000+00:00", "content": "guiqbdi" }, "author": { "id": 2, "name": "user2", "password": "无权限访问", "imgurl": "test1", "descrip": "helloworld" } } ] } ``` - 视频播放接口:/video/display (POST/GET) - 请求参数: ```json { "url": "string" } ``` - 返回数据: ```json { "file":"file" } ``` - 视频查找接口:/search/video (GET) - 请求参数: ```json { "keyword": "string" } ``` - 返回数据: ```json { "success": true, "message": "Search results retrieved successfully", "data": [ { "video": { "id": 2, "title": "视频2标题", "uploaderid": 2, "uploadtime": "2024-12-05T10:33:58.000+00:00", "videopath": "/videos/video2.mp4", "description": "视频2的一些描述内容" }, "likes": 2, "comments": 2, "collects": 4, "author": { "id": 2, "name": "user2", "password": "无权限访问", "imgurl": "test1", "descrip": "helloworld" } } ] } ``` - 用户头像获取接口:/user/getImg (GET) - 请求参数: ```json { "url": "string" } ``` - 返回数据: ```json { "file":"file" } ```