[开源]一个基于互联网技术架构实现的社区系统,支持一键源码部署

一飞开源,介绍创意、新奇、有趣、实用的开源应用、系统、软件、硬件及技术,一个探索、发现、分享、使用与互动交流的开源技术社区平台。致力于打造活力开源社区,共建开源新生态!

一、开源项目简介

一个基于 Spring Boot、MyBatis-Plus、MySQL、Redis、ElasticSearch、MongoDB、Docker、RabbitMQ 等技术栈实现的社区系统,采用主流的互联网技术架构、全新的UI设计、支持一键源码部署,拥有完整的文章&教程发布/搜索/评论/统计流程等,代码完全开源,没有任何二次封装,是一个非常适合二次开发/实战的现代化社区项目 。

二、开源协议

使用Apache-2.0开源协议

三、界面展示

四、功能概述

一个基于 Spring Boot、MyBatis-Plus、MySQL、Redis、ElasticSearch、MongoDB、Docker、RabbitMQ 等技术栈实现的社区系统,采用主流的互联网技术架构、全新的UI设计、支持一键源码部署,拥有完整的文章&教程发布/搜索/评论/统计流程等,代码完全开源,没有任何二次封装,是一个非常适合二次开发/实战的现代化社区项目 。

业务架构

五、技术选型

架构图

系统架构图

组织结构

paicoding├── paicoding-api -- 定义一些通用的枚举、实体类,定义 DO\DTO\VO 等├── paicoding-core -- 核心工具/组件相关模块,如工具包 util, 通用的组件都放在这个模块(以包路径对模块功能进行拆分,如搜索、缓存、推荐等)├── paicoding-service -- 服务模块,业务相关的主要逻辑,DB 的操作都在这里├── paicoding-ui -- HTML 前端资源(包括 JavaScript、CSS、Thymeleaf 等)├── paicoding-web -- Web模块、HTTP入口、项目启动入口,包括权限身份校验、全局异常处理等

环境配置说明

资源配置都放在 paicoding-web 模块的资源路径下,通过maven的env进行环境选择切换

当前提供了四种开发环境

  • resources-env/dev: 本地开发环境,也是默认环境

  • resources-env/test: 测试环境

  • resources-env/pre: 预发环境

  • resources-env/prod: 生产环境

环境切换命令

# 如切换生产环境mvn clean install -DskipTests=true -Pprod

配置文件说明

  • resourcesapplication.yml: 主配置文件入口application-config.yml: 全局的站点信息配置文件logback-spring.xml: 日志打印相关配置文件liquibase: 由liquibase进行数据库表结构管理

  • resources-envxxx/application-dal.yml: 定义数据库相关的配置信息xxx/application-image.yml: 定义上传图片的相关配置信息xxx/application-web.yml: 定义web相关的配置信息

前端工程结构说明

技术选型

后端技术栈

技术

说明

Spring & SpringMVC

Java全栈应用程序框架和WEB容器实现

SpringBoot

Spring应用简化集成开发框架

mybatis

数据库orm框架

mybatis-plus

数据库orm框架

mybatis PageHelper

数据库翻页插件

elasticsearch

近实时文本搜索

redis

内存数据存储

rabbitmq

消息队列

mongodb

NoSql数据库

nginx

服务器

docker

应用容器引擎

hikariCP

数据库连接

oss

对象存储

https

证书

jwt

jwt登录

lombok

Java语言增强库

guava

google开源的java工具集

thymeleaf

html5模板引擎

swagger

API文档生成工具

hibernate-validator

验证框架

quick-media

多媒体处理

liquibase

数据库版本管理

jackson

json/xml处理

ip2region

ip地址

websocket

长连接

sensitive-word

敏感词

chatgpt

chatgpt

讯飞星火

讯飞星火大模型

三、环境搭建

开发工具

工具

说明

IDEA

java开发工具

Webstorm

web开发工具

Chrome

浏览器

ScreenToGif

gif录屏

SniPaste

截图

PicPick

图片处理工具

MarkText

markdown编辑器

curl

http终端请求

Postman

API接口调试

draw.io

流程图、架构图绘制

Axure

原型图设计工具

navicat

数据库连接工具

DBeaver

免费开源的数据库连接工具

iTerm2

mac终端

windows terminal

win终端

SwitchHosts

host管理

开发环境

工具

版本

jdk

1.8+

maven

3.4+

mysql

5.7+/8.0+

redis

5.0+

elasticsearch

8.0.0+

nginx

1.10+

rabbitmq

3.10.14+

ali-oss

3.15.1

git

2.34.1

docker

4.10.0+

let's encrypt

https证书

搭建步骤

本地部署教程

本地开发环境手把手教程

云服务器部署教程

环境搭建 & 基于源码的部署教程 服务器启动教程
详细内容请查看 README.md 文档

六、源码地址

访问一飞开源:https://code.exmay.com/


相关推荐

  • 读懂Redis源码,我总结了这7点心得
  • 多组学数据整合更精确,川大团队借助迁移学习揭示细胞异质性可用于改善数据整合
  • 幻觉降低30%!首个多模态大模型幻觉修正工作Woodpecker
  • 哈工大发布大模型思维链推理综述:200+文献全面解析大语言模型思维链推理最新进展
  • 1028.AI日报:AI创造了很大的价值,并不等于就能够形成有效的回报
  • 为什么 Node 里要用 Winston 打印日志?
  • offer 选择难?说说我的 2 个思考
  • 盘点JS中数组去重写法
  • 逃离国企,我好快乐!
  • Yarn 4.0正式发布,现代化的软件包管理器
  • 3202年了,为啥SSR并没有预想中的流行?
  • 大模型如何开启输入法的“iPhone时刻”?对话讯飞输入法总经理程坤
  • TF线下活动报名 | 11月4日,TF121邀您一起寻找企业数字化的第二曲线!
  • 最好7B模型再易主!打败700亿LLaMA2,苹果电脑就能跑|开源免费
  • 姚期智Hinton Bengio联名发文:18个月内AI规模将扩大100倍,得有人管管了
  • 「20万级最强智驾」还不用激光雷达,极越01到底是一款什么样的车?
  • 正面硬刚OpenAI!智谱AI推出第三代基座模型,功能对标GPT-4V,代码解释器随便玩
  • 谷歌 20 亿美元投资 AI 初创公司 Anthropic,AI 赛道竞赛再加速
  • 2秒出图的文生图模型出现了!清华提出LCM,新一代图像生成里程碑
  • 给你的 SpringBoot 工程部署的 jar 包瘦瘦身吧!