项目回顾 - 实践经验和收获总结

本文最后更新于:5 个月前

人生如戏,我们都是自己故事的主角,用心演绎,才能收获属于自己的精彩。

前言

  • 这个栏目将回顾在我的个人项目开发过程中,所面临过的技术挑战经验总结

项目探秘 - 技术创新与业务突破

  • 🥇从背景到实现:介绍项目的起因实现目标挑战技术栈项目启动方法
  • 🥈架构设计与业务流程:探索项目所采用的技术栈和架构设计,解析项目的核心结构流程
  • 🥉功能模块深度剖析:详细介绍项目中的关键功能模块,总结项目中的关键业务流程取得的成果

正文

Memory Cal 忆算云

访问地址:memory-calculate

Memory BI 智能分析平台

项目概述

项目名称

Memory BI 智能分析平台

使用场景

  • 🎓 学校社交:在大学校园里,学生们可以通过该平台找到志同道合的朋友,组织兴趣小组、参加线下活动,分享学习经验,丰富校园生活。
  • 🌆 新城市社交:在新城市里,新移民或者刚刚毕业的年轻人可以通过该平台结识新朋友,扩大社交圈子,分享生活经验和资源,融入新的生活环境。
  • 💼 专业领域社交:该平台可为专业人士提供行业交流和合作的地方,包括分享行业动态、经验和资源,促进专业成长和项目合作。

主要功能

  • 这是一个通信交友平台,由三个社区组成:
    • 👩‍🎓 用户中心:用户可以设置个人资料搜索其他用户并添加好友、管理好友列表,还可以自由组队结识志同道合的朋友。
    • 📞 聊天大厅:提供实时双向通信功能,用户可以和在线好友进行即时聊天发送文字表情图片语音消息,支持群聊,在线状态显示消息通知功能增强了与好友的联系。
    • 📚 博文社区:用户可以浏览、发布和评论博文,写长篇博客心情随笔或分享图片等,与其他用户进行互动和交流,通过标签或关键词搜索感兴趣的博文,扩大知识和交友圈子
  • 这个通信交友社区的目标是为用户提供一个互动交流的社区,让用户可以在这里找到志同道合的朋友、分享自己的想法和经验,并且享受到在线聊天博文发布交友组队的乐趣。

项目启动

  • 拉取代码后,应该如何运行该项目

后端

  • 配置 MySQLRedis 为本机地址:
1
2
3
4
5
6
# MySQL配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/xxx
username: xxx
password: xxx
1
2
3
4
5
6
7
# Redis 配置
redis:
database: 0
host: localhost
port: 6379
timeout: 5000
password: Dw990831

前端

  • 确保本地 Node.js 环境配置完成,版本为 v18.xx
  • 修改请求的后端地址
1
2
3
4
5
const instance = axios.create({
baseURL: "http://localhost:8081/api",
withCredentials: true,
timeout: 10000,
});
  • 执行以下命令,一键启动前端项目:
1
npm run serve

技术选型

前端

后端

项目结构

架构设计

image-20231108131609835

image-20231108131616060

功能模块

用户中心 聊天大厅 博文社区
用户可以在用户中心进行个人资料设置,包括上传头像、编辑个人简介等 简单清新的聊天页面,快速编辑消息,在线聊天 在博文社区,用户可以浏览、发布和评论博文。
用户还可以搜索其他用户,并添加他们为好友 聊天大厅是一个实时双向通信的地方,用户可以和在线好友进行即时聊天 用户可以写长篇博客、发表心情随笔或分享图片等。
在用户中心,用户可以管理自己的好友列表,查看好友的动态和在线状态 聊天大厅还提供在线状态显示和消息通知功能,让用户能够随时随地与好友保持联系。 其他用户可以对博文进行点赞和评论,从而与作者进行互动和交流。
用户还可以自由组队,结交志同道合的朋友。他们可以创建和加入兴趣小组,参加线上线下的活动,分享经验和爱好。 用户可以发送文本消息、表情、图片和语音消息,还可以进行群聊。 用户还可以根据标签或关键词搜索感兴趣的博文,以扩大知识和交友圈子。

项目收获

效果展示

Memory 缘忆交友社区

项目概述

项目名称

Memory 缘忆交友社区

使用场景

  • 🎓 学校社交:在大学校园里,学生们可以通过该平台找到志同道合的朋友,组织兴趣小组、参加线下活动,分享学习经验,丰富校园生活。
  • 🌆 新城市社交:在新城市里,新移民或者刚刚毕业的年轻人可以通过该平台结识新朋友,扩大社交圈子,分享生活经验和资源,融入新的生活环境。
  • 💼 专业领域社交:该平台可为专业人士提供行业交流和合作的地方,包括分享行业动态、经验和资源,促进专业成长和项目合作。

主要功能

  • 这是一个通信交友平台,由三个社区组成:
    • 👩‍🎓 用户中心:用户可以设置个人资料搜索其他用户并添加好友、管理好友列表,还可以自由组队结识志同道合的朋友。
    • 📞 聊天大厅:提供实时双向通信功能,用户可以和在线好友进行即时聊天发送文字表情图片语音消息,支持群聊,在线状态显示消息通知功能增强了与好友的联系。
    • 📚 博文社区:用户可以浏览、发布和评论博文,写长篇博客心情随笔或分享图片等,与其他用户进行互动和交流,通过标签或关键词搜索感兴趣的博文,扩大知识和交友圈子
  • 这个通信交友社区的目标是为用户提供一个互动交流的社区,让用户可以在这里找到志同道合的朋友、分享自己的想法和经验,并且享受到在线聊天博文发布交友组队的乐趣。

项目启动

  • 拉取代码后,应该如何运行该项目?

后端

  • 配置 MySQL、Redis、Elasticsearch 为本机地址:
1
2
3
4
5
6
# MySQL配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/xxx
username: xxx
password: xxx
1
2
3
4
5
6
7
# Redis 配置
redis:
database: 0
host: localhost
port: 6379
timeout: 5000
password: Dw990831
1
2
3
4
5
# ES 配置
elasticsearch:
uris: http://localhost:9200
username: root
password: 123456

前端

  • 确保本地 Node.js 环境配置完成,版本为 v18.xx
  • 修改请求的后端地址
1
2
3
4
5
const instance = axios.create({
baseURL: "http://localhost:8081/api",
withCredentials: true,
timeout: 10000,
});
  • 执行以下命令,一键启动前端项目:
1
npm run serve

技术选型

前端

后端

项目结构

架构设计

功能模块

用户中心 聊天大厅 博文社区
用户可以在用户中心进行个人资料设置,包括上传头像、编辑个人简介等 简单清新的聊天页面,快速编辑消息,在线聊天 在博文社区,用户可以浏览、发布和评论博文。
用户还可以搜索其他用户,并添加他们为好友 聊天大厅是一个实时双向通信的地方,用户可以和在线好友进行即时聊天 用户可以写长篇博客、发表心情随笔或分享图片等。
在用户中心,用户可以管理自己的好友列表,查看好友的动态和在线状态 聊天大厅还提供在线状态显示和消息通知功能,让用户能够随时随地与好友保持联系。 其他用户可以对博文进行点赞和评论,从而与作者进行互动和交流。
用户还可以自由组队,结交志同道合的朋友。他们可以创建和加入兴趣小组,参加线上线下的活动,分享经验和爱好。 用户可以发送文本消息、表情、图片和语音消息,还可以进行群聊。 用户还可以根据标签或关键词搜索感兴趣的博文,以扩大知识和交友圈子。

项目收获

效果展示

MemorySearch 忆搜阁

项目概述

项目名称

MemorySearch 忆搜阁

项目介绍

  • 基于 Spirng Boot + Elastic Stack (+ Vue3)的一站式聚合搜索平台。用户可在同一页面集中搜索出不同来源、不同类型的内

    容,比如专栏文章、图片、视频等、在线用户信息,提升搜索体验

  • 已经将多个项目(如 Memory 接口开放平台)的数据接入该搜索平台,极大提升开发效率、降低了系统维护成本

使用场景

  • 👥 企业内部多项目数据搜索:该平台能够满足企业内部多个项目的数据搜索需求,避免每个项目都单独开发搜索功能,提升开发效率并降低系统维护成本。
  • 📚 多源内容聚合搜索:当需要聚合不同来源、不同类型的内容时,该平台可以提供一站式的搜索页面,便于用户快速查找所需信息,提高工作效率。
  • 💼 企业级搜索需求:对于有大规模搜索需求的企业,该平台提供了稳定的、高效的搜索功能,满足企业的搜索需求,并支持数据源接入和管理。

主要功能

  • 💡 企业级一站式聚合搜索平台,整合了多个数据源的内容,并提供统一的搜索页面和界面。
  • 🚀 提供高效的检索功能,用户可以在同一页面中搜索不同来源、不同类型的内容,提升检索效率和搜索体验。
  • 🌐 基于 Vue3 前端和 Spring Boot 后端,利用 Elastic Stack 实现全栈项目,确保稳定可靠的运行。

项目启动

  • 拉取代码后,应该如何运行该项目

后端

  • 配置 MySQL、Redis、Elasticsearch 为本机地址:
1
2
3
4
5
6
# MySQL配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/xxx
username: xxx
password: xxx
1
2
3
4
5
6
7
# Redis 配置
redis:
database: 0
host: localhost
port: 6379
timeout: 5000
password: Dw990831
1
2
3
4
5
# ES 配置
elasticsearch:
uris: http://localhost:9200
username: root
password: 123456
  • 在本地安装 Elasticsearch、Kibana、Logstash
  • ES 的 bin 目录下执行以下命令,启动 ES:
1
Elasticsearch.bat
  • Kibana 的 bin 目录下执行以下命令,启动 Kibana:
1
Kibana.bat
  • Logstash 的 config 目录下新增 .conf 文件,编写配置文件,做好数据映射(以下配置信息可作为参考)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# Sample Logstash configuration for receiving
# UDP syslog messages over port 514

input {
jdbc {
jdbc_driver_library => "D:\softWare\logstash\logstash-7.17.9\config\mysql-connector-java-8.0.29.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://localhost:3306/******"
jdbc_user => "******"
jdbc_password => "******"
statement => "SELECT * from post where updateTime > :sql_last_value and updateTime < now() order by updateTime desc"
use_column_value => true
tracking_column_type => "timestamp"
tracking_column => "updatetime"
schedule => "*/5 * * * * *"
jdbc_default_timezone => "Asia/Shanghai"
}
}

filter {
mutate {
rename => {
"updatetime" => "updateTime"
"userid" => "userId"
"createtime" => "createTime"
"isdelete" => "isDelete"
}
remove_field => ["thumbnum", "favournum"]
}
}

output {
stdout { codec => rubydebug }

elasticsearch {
hosts => "127.0.0.1:9200"
index => "******"
document_id => "%{id}"
}
}
  • 在 Logstash 的根目录下执行以下命令,加载配置文件并启动 Logstash
1
.\bin\logstash.bat -f .\config\myTask.conf

前端

  • 确保本地 Node.js 环境配置完成,版本为 v18.xx
  • 修改请求的后端地址
1
2
3
4
5
const instance = axios.create({
baseURL: "http://localhost:8081/api",
withCredentials: true,
timeout: 10000,
});
  • 执行以下命令,一键启动前端项目:
1
npm run serve

技术选型

前端

后端

项目结构

架构设计

功能模块

用户中心

  • 用户可以在用户中心进行个人资料设置,包括上传头像、编辑个人简介等
  • 用户还可以搜索其他用户,并添加他们为好友
  • 在用户中心,用户可以管理自己的好友列表,查看好友的动态和在线状态
  • 用户还可以自由组队,结交志同道合的朋友。他们可以创建和加入兴趣小组,参加线上线下的活动,分享经验和爱好。

聊天大厅

  • 简单清新的聊天页面
  • 快速编辑消息,在线聊天
  • 聊天大厅是一个实时双向通信的地方,用户可以和在线好友进行即时聊天。
  • 用户可以发送文本消息、表情、图片和语音消息,还可以进行群聊。
  • 聊天大厅还提供在线状态显示和消息通知功能,让用户能够随时随地与好友保持联系。

博文社区

  • 在博文社区,用户可以浏览、发布和评论博文。
  • 用户可以写长篇博客、发表心情随笔或分享图片等。
  • 其他用户可以对博文进行点赞和评论,从而与作者进行互动和交流。
  • 用户还可以根据标签或关键词搜索感兴趣的博文,以扩大知识和交友圈子。

效果展示

image-20231001210412461

image-20231001210420054

image-20231001210426079

Memory API 接口开放平台

项目概述

项目名称

使用场景

  • 📊 开放平台的接口提供:适用于需要提供 API 接口给其他开发者或应用程序使用的项目。
  • 👨‍💻 接口管理和调试:管理员和开发者可以使用该平台进行接口管理、调试和监控。
  • 💻 应用程序开发:开发者可以在代码中使用提供的 SDK 快速调用接口,加速应用程序开发。
  • 💰 计费与限制管理:适用于需要对接口调用进行计费和限制的项目,提供了灵活的计费和充值系统。

主要功能

  • 🚀 全栈微服务项目,提供 API 接口供开发者调用的平台,以满足各种应用程序的接口需求。
  • 👮‍♂️ 管理员功能:接入和发布接口、统计接口调用情况,方便管理和监控接口的使用情况。
  • 👥 用户功能:注册登录并开通接口调用权限、浏览接口、在线调试。使用客户端 SDK,轻松在代码中调用接口。
  • 💰 计费系统:用户对每个接口的调用有限制,可以通过登录免费领取次数或充值获取次数。
  • 📝 用户上传接口:用户可下载平台提供的 SDK 请求库,封装并发布自己设计的接口,供其他开发者使用。

项目启动

  • 拉取代码后,应该如何运行该项目?

后端

  • 配置 Nacos、MySQL、Redis 为本机地址:
1
2
3
4
5
6
# 数据库配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/xxx
username: xxx
password: xxx
1
2
3
4
5
6
7
# Redis 配置
redis:
database: 0
host: localhost
port: 6379
timeout: 5000
password: Dw990831
1
2
3
4
5
6
7
8
9
dubbo:
application:
name: dubbo-springboot-demo-provider
protocol:
name: dubbo
port: -1
registry:
id: nacos-registry
address: nacos://localhost:8848
  • 首先在本地启动 nacos(bin 目录下执行):
1
startup.cmd -m standalone
  • 依次启动 memory-api-backend、gateway、memory-client

前端

  • 确保本地 Node.js 环境配置完成,版本为 v18.xx
  • 修改请求的后端地址
1
2
baseURL: process.env.NODE_ENV === 'production' ? 'http://120.55.62.195:8102' : 'http://localhost:8102',
withCredentials: true,
  • 执行以下命令,一键启动前端项目:
1
yarn start:dev

技术选型

后端

  • Java Spring Boot 框架
  • MySQL 数据库
  • Mybatis-Plus 及 MyBatis X 自动生成
  • API 签名认证(HTTP 调用)
  • Spring Boot Starter(SDK 开发)
  • Dubbo 分布式(RPC、Nacos)
  • Spring Cloud Gateway 微服务网关
  • Swagger + Knife4j 接口文档生成
  • Hutool、Apache Common Utils、Gson 等工具库

前端

  • React 18
  • Ant Design Pro 5.x 脚手架
  • Ant Design % Procomponents 组件库
  • Umi 4 前端框架
  • OpenAPI 前端代码生成

项目结构

架构设计

功能模块

接口管理

用户管理

接口调用(在线调试)

效果展示

项目收获

PicMemories 壁纸分享小程序

项目概述

项目名称

使用场景

  • 📱 壁纸分享平台:适用于用户分享和下载壁纸的平台,让用户发现和收藏自己喜欢的壁纸作品。
  • 👩‍💻 设计师社交:适用于设计师等专业人士展示和分享自己的壁纸作品,并与其他用户进行互动和交流。
  • 🌐 壁纸应用开发:适用于需要开发壁纸相关功能的小程序或移动应用项目,提供壁纸的浏览、搜索、上传和互动等功能。

主要功能

  • 🖼️ 壁纸浏览与搜索:展示热门、推荐和最新的壁纸,提供搜索入口和分类导航,让用户方便浏览和选择壁纸。
  • 📋 壁纸详情页:展示壁纸的详细信息和相关操作,包括点赞、收藏和评论等,增加用户的互动和参与感。
  • 👤 用户个人中心:展示用户的个人信息、上传作品和相关动态,包括收藏、点赞和关注等,提供账号设置和退出登录功能。
  • 📷 壁纸上传与审核:允许用户上传自己的壁纸作品,并经过审核机制确保壁纸质量和合法性。
  • 🔍 关键词搜索和推荐:提供关键词搜索功能,让用户根据关键词查找特定的壁纸。同时,基于用户喜好进行个性化的壁纸推荐。

技术选型

前端

  • 微信小程序开发工具:用于创建、调试和发布微信小程序。
  • HTML5、CSS3、JavaScript:主要用于构建小程序的页面结构、样式和交互效果。
  • 微信小程序框架:可选择使用原生小程序框架或者类似 Vue.js 的框架(如 MpVue 或 WePY)来提高开发效率。

后端

  • Java 语言:作为后端开发语言,具有广泛的应用性和强大的生态系统。
  • Spring Boot 框架:用于快速搭建后端服务,提供路由、控制器、数据持久化等功能。
  • MySQL 数据库:作为数据存储和管理系统,用于存储用户信息、壁纸数据等。
  • Redis 缓存:作为缓存数据库,用于提高数据访问的性能和响应速度。
  • Mybatis:用于数据库操作和管理的 ORM(对象关系映射)框架,简化了与数据库的交互。
  • MybatisPlus:Mybatis 的增强工具,提供更多便捷的功能,如代码生成器和数据库分页等。

其他

  • Git:用于版本控制和团队协作。
  • Postman:用于测试接口和调试后端服务。
  • 微信公众平台接口和 SDK:用于与微信小程序进行接口交互和调用。

Memory 伙伴匹配系统

项目概述

项目名称

使用场景

  • 👥 学习伙伴匹配:适用于用户寻找学习伙伴、组队学习或开展项目开发等活动。
  • 📱 移动端应用开发:适用于需要开发移动端 H5 网站的项目,具备用户登录和信息管理、搜索和匹配等功能。
  • 👨‍💻 技术学习和实践:适用于希望学习项目开发、调试和优化技巧的开发,增强自主解决问题的能力。

主要功能

  • 🚀 移动端 H5 网站,用于帮助用户找到学习伙伴的匹配系统。
  • 👥 用户登录和个人信息管理:包括用户登录和更新个人信息等功能,方便用户管理自己的账户和个人资料。
  • 🔍 按标签搜索用户:用户通过选择标签进行搜索,以寻找具有相似兴趣或需求的学习伙伴。
  • 👫 建房组队功能:用户可以发起建房组队请求,邀请其他用户一起组队学习或参与项目开发等活动。
  • 📋 推荐相似用户:系统根据用户兴趣和标签等信息,推荐与之相似的用户,提升匹配效果。

技术选型

前端

  • Vue 3
  • Vant UI 组件库
  • Vite 脚手架
  • Axios 请求库

后端

  • Java SpringBoot 框架
  • MySQL 数据库
  • MyBatis-Plus
  • MyBatis X 自动生成代码
  • Redis 缓存(多种 Java 实现方式)
  • Redis 分布式登录
  • Redission 分布式锁
  • Easy Excel 数据导入
  • Spring Scheduler 定时任务
  • ASwagger + Knife4j 接口文档
  • Gson:JSON 序列化库
  • 相似度匹配算法

Memory 用户中心系统

项目概述

项目名称

使用场景

  • 👨‍💻 学习项目:适用于小白开发者学习和掌握通用的技术和项目开发经验。
  • 📚 企业级用户管理:适用于需要构建企业级用户中心的项目,快速实现用户管理功能。
  • 👩‍💼 业务应用开发:适用于需要基础用户管理功能的业务应用开发,可以快速搭建用户注册登录功能。

主要功能

  • 🚀 企业级用户中心系统,用于实现用户注册、登录、查询等基础功能,无需关注复杂的业务流程。
  • 👥 提供用户管理:包括用户注册、登录等功能,帮助开发者了解和学习通用的用户管理技术和流程。
  • 🔒 实现用户鉴权:通过身份验证功能,保障用户数据的安全性和访问权限。
  • 🔍 提供用户查询功能:支持用户信息的查询,方便开发者管理和了解用户的相关信息。

技术选型

前端

  • HTML + CSS + JavaScript 三件套
  • React 开发框架
  • Ant Design Pro 项目模板
  • Ant Design 端组件库
  • Umi 开发框架
  • Umi Request 请求库
  • 正向和反向代理

后端

  • Java 编程语言
  • Spring + SpringMVC + SpringBoot 框架
  • MyBatis + MyBatis Plus 数据访问框架
  • MySQL 数据库
  • jUnit 单元测试库

部署

  • Linux 单机部署
  • Nginx Web 服务器
  • Docker 容器
  • 容器托管平台

黄金矿工怀旧版

坦克大战

网络通讯平台

餐厅点餐服务

房屋出租系统

零钱通服务

职工管理系统

演讲比赛管理系统

总结


项目回顾 - 实践经验和收获总结
https://test.atomgit.net/blog/2023/04/22/项目回顾 - 实践经验和收获总结/
作者
Memory
发布于
2023年4月22日
更新于
2024年4月11日
许可协议