# TravelPlaform **Repository Path**: xbkmagic/travel-plaform ## Basic Information - **Project Name**: TravelPlaform - **Description**: 一个基于React + Vite + TypeScript的前端和Node.js后端的旅游日记平台开发方案。 ## 总体架构 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2025-11-11 - **Last Updated**: 2025-11-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 旅游日记平台项目总体介绍 ## 项目概述 旅游日记平台是一个允许用户分享旅游经历、发布游记、浏览他人游记的综合性移动应用。平台包含移动端用户系统和PC端管理系统两大部分,采用前后端分离架构,前端使用React+Vite+TypeScript构建,后端基于Node.js实现。 ## 项目架构 ``` 旅游日记平台 ├── 移动端用户系统(React + Vite + TS) │ ├── 首页(游记列表、搜索功能) │ ├── 游记详情页(点赞、评论功能) │ ├── 发布游记页面(图片、视频上传) │ ├── 个人中心页面(我的游记、登录注册) │ └── 公共组件 │ ├── PC端审核管理系统(React + Vite + TS) │ ├── 管理员登录页面 │ ├── 游记审核列表 │ ├── 审核详情操作页面 │ └── 系统管理页面 │ └── 后端服务(Node.js + Express) ├── 用户认证模块 ├── 游记管理模块 ├── 审核管理模块 ├── 文件上传模块 └── 数据库交互模块 ``` ## 技术栈 ### 前端技术栈 - **基础框架**: React 18 + Vite + TypeScript - **UI组件库**: 移动端使用Ant Design Mobile,管理端使用Ant Design - **状态管理**: 使用Context API和React Hooks - **路由管理**: React Router v6 - **HTTP请求**: Axios - **样式处理**: CSS Modules + 原生CSS - **移动端适配**: 响应式设计,适配不同尺寸设备 - **媒体处理**: html2canvas用于分享功能的截图 ### 后端技术栈 - **框架**: Express.js + Node.js - **数据库**: MongoDB - **认证**: JWT (JSON Web Token) - **文件存储**: 阿里云OSS - **API文档**: Swagger ## 核心功能实现 ### 移动端用户系统 1. **首页游记列表** - 瀑布流布局展示游记 - 搜索功能支持按标题、内容和地点搜索 - 性能优化:图片懒加载、虚拟滚动 2. **游记详情** - 图片轮播和视频播放功能 - 支持WiFi环境下视频自动播放 - 点赞功能与用户互动 - 评论系统 - 社交媒体分享功能 3. **发布游记** - 多图片上传(最多9张)和图片压缩 - 视频上传功能 - 表单验证和错误提示 - 阿里云OSS集成实现文件上传 4. **用户中心** - 用户注册与登录 - 个人游记管理 - 用户信息展示 - 退出登录功能 ### PC端管理系统 1. **管理员登录** - 安全认证 - 权限控制 2. **游记审核** - 游记列表展示(待审核、已通过、已拒绝) - 审核操作(通过/拒绝) - 拒绝原因填写 ## 项目亮点 1. **技术架构** - 清晰的前后端分离架构 - TypeScript全栈应用,类型安全 - Vite构建系统提供快速开发体验 2. **UI/UX设计** - 统一的色彩主题(rgb(27, 188, 155)) - 响应式设计,支持多种移动设备 - 动画过渡效果增强用户体验 3. **性能优化** - 图片加载优化:懒加载、预加载策略 - 内容可见性优化(content-visibility) - 避免布局抖动(CLS优化) - GPU加速提升动画和渲染性能 4. **媒体处理** - 大文件上传支持 - 阿里云OSS集成 - 图片压缩处理 - 响应式视频播放器 5. **社交分享** - 自定义分享卡片设计 - 使用html2canvas实现截图分享 - 支持多个社交平台分享 6. **工程化管理** - 良好的分支管理和版本控制 - 模块化组件设计 - 代码复用和可维护性 ## 成员分工 ### 杨文暄(队长) - **技术架构设计**:制定整体技术选型和架构设计 - **代码review**:保证代码质量和规范 - **项目管理**:召开会议、协调团队工作 - **移动端开发**: - 首页瀑布流游记列表实现 - 搜索功能开发 - 游记详情页的样式和功能 - 点赞评论系统实现 - **参与其他模块**: - 上传游记样式修改和阿里云OSS接入 - 我的页面样式修改 - **部分后端接口**:与移动端相关的API实现 ### 樊佳 - **PC端管理系统开发**: - 管理员登录界面 - 游记审核列表 - 审核操作实现 - **后端开发**: - 数据库设计和实现 - API接口开发 - 服务器部署 - 文件存储配置 ### 易梦佳 - **移动端开发**: - 发布游记页面实现 - 注册页面开发 - 登录页面开发 - 我的游记页面登录/登出功能完善 - **性能优化**: - 首页游记列表图片加载性能优化 - CSS优化:content-visibility、aspect-ratio等 - 避免布局抖动(CLS) - 图片预加载和懒加载策略 ## 项目灵感 项目灵感来源于当今人们对旅行分享的热情。在社交媒体时代,用户不仅希望记录自己的旅行经历,还希望能与他人分享见闻和感受。旅游日记平台正是为满足这一需求而设计,它提供了一个专注于旅行内容的社区,让用户可以轻松发布、浏览和互动。 此外,我们注意到现有的社交平台往往功能过于泛化,缺乏对旅行内容的专门优化。本项目通过设计专门的旅行内容展示方式、简化的发布流程和特色的互动功能,为用户提供更加专注和优质的旅行分享体验。 ## 技术挑战与解决方案 1. **大文件上传** - **挑战**:移动端上传大型图片和视频文件 - **解决方案**:结合阿里云OSS直传和分片上传技术,实现大文件稳定上传 2. **移动端性能优化** - **挑战**:图片加载慢导致的用户体验问题 - **解决方案**:实现图片懒加载、预加载、占位符动画、CSS优化等多种策略 3. **响应式设计** - **挑战**:适配不同尺寸的移动设备 - **解决方案**:采用媒体查询和弹性布局,确保在各种设备上的良好显示效果 4. **用户体验一致性** - **挑战**:保持整个应用的风格和交互一致性 - **解决方案**:统一主题色(rgb(27, 188, 155)),设计一致的组件样式和交互模式 5. **数据安全与权限管理** - **挑战**:用户数据安全和内容审核 - **解决方案**:JWT认证、权限分级、管理员审核系统 6. **团队协作与代码合并** - **挑战**:多人协作时的代码覆盖和合并冲突问题 - **解决方案**:采用Git Flow工作流,实施规范化commit消息,通过Pull Request和Code Review机制确保代码质量,有效避免了分支合并冲突