waynblog

开源项目推荐-毕设、面试、工作、私活一网打尽

本文给大家介绍下我参与软件开发多年以来,自建的四个开源项目,这些项目都是我在结合了公司的业务场景与开发实践后,使用当时的主流技术开发而来。

这些项目对于新入行的初中级开发者或者在校大学生都是很好的学习项目,因为它们易于上手、本地开发方便并且 readme 中关于项目的整体介绍都较为完整。

下面是本文大纲,

Image crowd-admin

crowd-admin 是我写的第一个开源的后台权限管理系统项目。

当年毕业后我在武汉找了第一份 Java 开发工作,做的就是后台 OA、库存管理相关系统,公司内系统架构主要是 SSH,页面模板使用 JSP,不知道现在还有多少新入行的小伙伴认识 JSP😂。

SSH 的意思是 Struts + Spring + Hibernate。

因为公司使用技术比较老旧,为了提升技术,也算是练手,就打算用当时流行的 Spring MVC + Spring Boot + Shiro + Mybatis-plus 自己开发一套后台权限管理系统。

于是就写出了 crowd-admin 的第一个版本。

项目介绍

crowd-admin 是一个通用的后台权限管理系统,集成了 rbac 权限管理、消息推送、邮件发送、任务调度、代码生成、elfinder 文件管理等常用功能,系统内各个业务按照模块划分,pom 依赖划分清晰合理。

这个项目当时也参考了 Ruoyi、bootdo 等项目,也算是集百家所长。

在 crowd-admin 最新的 v3.1.0 版本中,完成了基于 jdk17、Spring Boot2.7 的升级重构。

源码地址:https://github.com/wayn111/crowd-admin

功能特点

  • 前后端支持 stomp 高级协议,完善的 websocket 配置,支持自定义用户认证、连接周期监听等
  • 支持系统参数配置,支持 spring 内存的@Cacheable 注解
  • 项目按功能模块化拆分,自定义全局统一异常输出,代码清晰合理
  • 集成 elfinder 模块,包含完整的文件管理操作,包含文件上传、删除、压缩、移动、预览等诸多操作
  • 支持后台消息/邮件推送、数据字典、系统参数配置、各模块操作日记记录
  • 支持系统服务监控、在线用户监控、数据源监控等操作
  • 支持 redis/ehcache 切换使用
  • 支持 ip2region 本地化
  • 支持多数据源操作
  • 前端使用 H+模板,样式美观,支持 ajax 下载文件,js 代码简洁,清晰,避免过度封装

本地开发指南

1. 克隆项目
git clone [email protected]:wayn111/crowd-amin.git

2. 导入项目依赖
将crowd-admin目录用idea打开,导入maven依赖

3. 安装Mysql8.0+、Redis3.0+、Jdk17+、Maven3.5+

4. 导入sql文件
在项目根目录下crowd-web文件夹下,找到`crowd-admin.sql`文件,
新建mysql数据库crowd-admin,导入其中

5. 修改Mysql、Redis连接配置
修改`application-dev.yml`文件中数据连接配置相关信息

6. 启动项目
进入crowd-web木块,找到CrowdApplication文件,
在idea中右键run application运行

7. 访问
打开浏览器输入:http://localhost:8080/crowd/

演示视频

​

适用范围

在校大学生、初中级开发者,在个人学习、毕设作业、项目经验等场景都可以适用。

newbee-mall-pro

newbee-mall-pro 是我开发第一个的 PC 商城项目。

20 年因为众所周知的原因,春节之后我失业在家心血来潮想着写一个商城系统 😎,在 Github 上发现开源的 newbee-mall 项目后,就在此基础上写了一个 newbee-mall-pro 项目。

项目介绍

newbee-mall-pro 项目是在 newbee-mall 的基础上改造而来,使用 Mybatis-plus 作为 orm 层框架,并且实现了推荐算法、秒杀专区、优惠劵专区,滑块验证码,支付宝支付,RediSearch 全文搜索等高级功能。

newbee-mall-pro 在最新的 v2.5.0 版本中,也是完成了 Spring Boot3.2 版本的升级改造,支持虚拟线程的使用。

项目地址:https://github.com/wayn111/newbee-mall-pro

功能特点

  • 商城首页 【为你推荐】 栏目添加协同过滤算法。按照 UserCF 基于用户的协同过滤、ItemCF 基于物品的协同过滤。实现了两种不同的推荐逻辑。
  • 使用 Redis 作为缓存中间件,并引入 RedisSearch,支持中文分词搜索。
  • 集成 RabbitMQ,增加生产者、消费者常用配置。
  • 使用 Spring 事件监听,完成异步下单,解耦下单流程。
  • 集成 Spring-Session-Redis,支持分布式集群部署。
  • 秒杀专区:支持功能完备,生产可用的高级秒杀功能,详情可见:更新日志。
  • 优惠劵专区:支持优惠劵后台配置、用户注册赠卷、下单页面优惠劵使用等功能。
  • 商城首页使用滑块验证码登录。
  • 支付时添加了支付宝沙箱支付。

本地开发指南

1. 克隆项目
git clone [email protected]:wayn111/newbee-mall-pro.git

2. 导入项目依赖
将newbee-mall-pro目录用idea打开,导入maven依赖

3. 安装Jdk17+、Maven3.5+、Mysql8.0+、Redis3.0+(RediSearch2.0+)、RabbitMQ
// docker安装RediSearch
docker run -d --name redis-stack-server -p 6379:6379 redis/redis-stack-server:latest

// docker安装RabbitMQ以及管理后台
docker run -d --name rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 \
-p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:management

4. 导入sql文件
在项目根目录下sql文件夹下,找到`newbee_mall_db_包含秒杀and优惠劵.sql`文件,
新建mysql数据库newbee_mall_db,导入其中

5. 解压项目图片
将项目根目录下upload.zip文件加压缩到D盘upload文件夹中,eg:D:\\upload

6. 修改Mysql、Redis连接配置
修改`application-dev.yml`文件中数据连接配置相关信息

7. 启动项目
找到NewBeeMallApplication文件,右键`run AdminApplication`,启动项目

8. 访问商城管理后台
打开浏览器输入:http://localhost:84/newbeemall/admin/login,找到商品管理菜单,
点击【同步RS】按钮,初始化RediSearch数据
账号:admin
密码:123456

9. 访问商城首页
打开浏览器输入:http://localhost:84/newbeemall

演示视频

​

适用范围

在校大学生、初中级开发者,在个人学习、毕设作业、项目经验、私人接活等场景都可以适用。

waynboot-mall

waynboot-mall 是我开发的第二个 H5 商城项目。

这个项目是我在 20 年末尾开发而来,当时想在网上找一套开源的 H5 商城项目,但那时候很多项目都是半开源,一没有前端源码,二没有后端源码,要加群联系、付费获取,总之这种行为令我非常恶心 🤮。

因此我开发了 waynboot-mall 这个项目,这是一套前后端真免费、无套路、良心开源的 H5 商城项目。

项目介绍

waynboot-mall 是一套全部开源的微商城项目,包含前端运营后台、前端 H5 商城和后端 API 接口。

实现了一套完整的商城业务,有首页展示、商品分类、商品详情、sku 详情、商品搜索、加入购物车、结算下单、支付宝/微信支付、订单列表、商品评论等一系列功能。

技术上基于最新的 Spring Boot3.1、Mybatis-plus、Spring Security 框架开发,整合了 Mysql、Redis、RabbitMQ、ElasticSearch 等常用中间件,根据我多年线上项目实战经验总结开发而来并不断优化、完善。

对于初学者而言 waynboot-mall 项目是非常易于部署的,根据 readme 中的本地开发指南就能成功启动项目。

项目地址:

  • 后端接口项目 https://github.com/wayn111/waynboot-mall
  • 前端 H5 商城项目 https://github.com/wayn111/waynboot-mobile
  • 前端运管后台项目 https://github.com/wayn111/waynboot-admin

系统架构

系统架构上,waynboot-mall 项目秉持着小而精的架构特征,经典而不失优雅,

Image
系统架构

功能设计

功能上,waynboot-mall 项目可分为 “H5 商城前台” 和 “运管后台” 两部分。

Image
功能设计

系统设计

从系统设计来看,waynboot-mall 项目选用当前最新 Spring Boot3.1、MyBatis-Plus 开发而来,项目中其他系统组件介绍如下图,

Image
系统设计

本地开发指南

1. 克隆项目
git clone [email protected]:wayn111/waynboot-mall.git

2. 导入项目依赖
将 waynboot-mall 目录用 idea 打开,导入 maven 依赖

3. 安装 Mysql8.0+、Redis3.0+、RabbitMQ3.0+(含延迟消息插件)ElasticSearch7.0+(含分词、拼英插件)到本地

4. 导入 sql 文件
在项目根目录下,找到 `wayn_shop_*.sql` 文件,新建 mysql 数据库 wayn_shop,导入其中

5. 项目图片部署
使用百度网盘,下载商城图片压缩包,将 zip 中所有图片解压缩部署到 D:/waynshop/webp 目录下

6. 修改Mysql、Redis、RabbitMQ、Elasticsearch连接配置
修改`application-dev.yml`以及`application.yml`文件中数据连接配置相关信息

7. 启动项目
后台api:
    进入waynboot-admin-api子项目,找到AdminApplication文件,右键`run AdminApplication`,启动后台项目

h5商城api:
    进入waynboot-mobile-api子项目,找到MobileApplication文件,右键`run MobileApplication`,启动h5商城项目

消费者api:
    进入waynboot-message-consumer子项目,找到MessageApplication文件,右键`run MessageApplication`,启动消费者项目

8. 启动商城H5项目
请查看商城H5前端项目https://github.com/wayn111/waynboot-mobile,readme文档,进行本地启动

9. 启动商城后管项目
请查看商城后管前端项目https://github.com/wayn111/waynboot-admin,readme文档,进行本地启动

演示视频

​

适用范围

在校大学生、初中级开发者、私人小商户,在个人学习、毕设作业、项目经验、私人接活、简历亮点、自建商城等场景都可以适用。

最后聊两句

这些项目是我毕业以来多年的开发心血,虽然这些开源项目在平日里耗费了我大量时间,但是也确确实实提升了我的开发技术和项目经验,还可以借鉴参考其他项目中使用的技术放在自己的项目中使用,进而融会贯通。

贡献开源项目不仅给我带来了技术提升,也让我在公司的业务开发中,得心应手,还有一点就是还可以给我的简历增加亮点 😃。

最后对于缺少项目经验,并且希望参与开源的朋友,可以参考使用我开源的这三个项目,相信能给你带来不错的提升。


既然都阅读到这里啦,不妨点个关注吧,您的关注就是我最大的更新动力😘。

回复『加群』我拉你进技术交流群
回复『java学习』获取2023年java最新学习资料
回复『开源项目』获取我开源的三个开源项目
回复『计算机图书』获取20本计算机必读电子书
回复『面试』获取我整理的2023java最新学习面试网站推荐