这是我自己手搓的一个网页,当时是想着看看微博这个网站是怎么做的,于是就一比一还原了一下
点击空白处退出提示
这是我自己手搓的一个网页,当时是想着看看微博这个网站是怎么做的,于是就一比一还原了一下
本项目是一个基于前后端分离架构的生活兴趣社区平台,旨在为用户提供内容分享、社交互动和个性化推荐服务。项目包含以下核心功能模块:
**1. 用户认证与授权模块**:提供用户注册、登录功能,采用JWT令牌机制实现无状态身份认证,支持密码加密存储和用户会话管理。
**2. 帖子内容管理模块**:用户可发布包含文字、图片的帖子,支持编辑、删除操作。帖子支持多种可见性设置(公开、仅关注者可见等),并提供转发功能。
**3. 社交互动模块**:实现点赞、收藏、评论、转发等核心互动功能。评论支持多级回复,形成完整的评论树结构。用户可对帖子进行收藏管理,查看个人收藏列表。
**4. 信息流系统模块**:提供多种信息流类型,包括个性化推荐流(基于用户行为和兴趣标签)、关注流(展示关注用户和话题的动态)、热门流(按热度排序)、本地流(同城内容)和分类流(按内容分类筛选)。
**5. 话题系统模块**:支持话题创建、关注和管理,用户可为帖子添加话题标签。提供话题详情页、话题下的帖子列表,以及热搜话题排行榜功能。
**6. 用户关系管理模块**:实现用户关注、粉丝管理、用户拉黑功能。用户可查看关注列表、粉丝列表,管理个人社交关系,并支持屏蔽特定用户的内容。
**7. 搜索功能模块**:提供综合搜索和分类搜索功能,支持搜索用户、帖子、话题。搜索结果按类型分组展示,支持分页浏览。
**8. 个性化推荐系统模块**:基于用户行为数据(浏览、点赞、评论、收藏等)和兴趣标签,实现个性化内容推荐算法。对于新用户提供冷启动推荐策略,基于兴趣标签和平台热门内容进行推荐。
**9. 通知系统模块**:实时推送用户相关的互动通知,包括点赞通知、评论通知、关注通知、转发通知等。支持未读消息计数和批量标记已读功能。
**10. 个人中心模块**:提供个人主页展示、个人资料编辑、头像上传功能。用户可查看
1. **后端架构设计与开发**:采用Spring Boot 3.2.0框架构建RESTful API服务,使用Java 17进行开发。设计并实现了分层架构(Controller-Service-Mapper),确保代码结构清晰、职责分明。
2. **数据库设计与ORM映射**:使用MyBatis-Plus作为持久层框架,设计了用户、帖子、评论、话题、关注关系、通知等核心数据表,实现了自动填充、逻辑删除等特性。
3. **安全认证系统实现**:集成Spring Security框架,实现基于JWT的无状态认证机制。设计了JWT令牌生成、验证和刷新流程,实现了密码加密存储(BCrypt)和用户权限控制。
4. **推荐算法开发**:设计并实现了基于协同过滤和内容推荐的混合推荐算法,综合考虑用户行为数据、内容热度、时间因子和多样性,为新用户提供冷启动策略。
5. **搜索功能实现**:基于MySQL的LIKE查询和索引优化,实现了用户、帖子、话题的综合搜索功能,支持分页和结果分类展示。
6. **文件存储服务**:实现了图片上传和存储功能,支持本地文件系统存储,提供了文件URL生成和访问接口。
7. **异常处理与统一响应**:设计了全局异常处理机制,实现了统一的API响应格式(ApiResponse),提供了业务异常和系统异常的分类处理。
8. **前端页面开发**:使用Vue 3 + TypeScript + Vite构建单页面应用,采用Element Plus组件库实现UI界面。使用Pinia进行状态管理,Vue Router实现路由导航和权限控制。
9. **前后端数据交互**:使用Axios封装HTTP请求,实现了请求拦截器(添加JWT令牌)和响应拦截器(统一错误处理),确保前后端数据交互的可靠性。
**技术栈与架构**:
- **后端技术栈**:





评论