😱将大佬项目学会,我岂不是变成大佬了?

444 阅读2分钟

前言

大家好!我是聪,这次给大家带来的是鱼皮开源项目 sql-father➕sql-mother 等于 sql 祖宗(sql-dog),没错依然是我的经典小狗系列,这次开发带着星球的两位小伙伴- @香香、@潇潇夜雨中和我的一位好友 shing 共同完成,在大家共同努力下 sql-dog 诞生了!

项目介绍💡

该项目后端基于 SpringBoot 3.0 + Java 17 + Redis +Mysql,前端基于React + Ant Design Pro 实现,提供一站式 SQL 练习平台,练完 SQL 建 SQL,一站式服务。

项目导航🧊

架构设计图🎨

projectImg.png

我们做了哪些改进📢

  1. 生成的 Json 数据格式更加精准,之前只能生成 String 类型,现在能根据不同的字段类型进行生成。
  2. 新增了 SQL 执行计划的分析,能让用户了解自己的 SQL 还有什么优化空间。
  3. 整合了 sql-mother 、sql-father ,提供一站式 SQL 练习平台,练完 SQL 建 SQL,一站式服务。
  4. 我们能生成 ER 图,通过 plantUML 代码的形式。
  5. 基于 TDD 的开发模式,每个功能都可以通过对应的单元测试来进行。

技术选型

攻克的点

  1. 安全问题,防止用户 SQL 注入(使用webassembly 技术,在前端运行 SQLite 完成初始化)。
  2. 如果不让用户之间的数据互相污染(前端使用 SQLite 完成初始化)。
  3. 如何解析用户输入的 SQL( Druid )。

前端⭐

  1. React
  2. antd 组件库
  3. webassembly
  4. react-markdown
  5. monaco-editor

后端🧊

  1. SpringBoot3.0
  2. JAVA 17
  3. MySQL
  4. Redis
  5. Sa-Token(权限管理)
  6. sql-slow-mirror(自研 SQL 分析工具,项目地址:github.com/lhccong/sql…
  7. Druid(SQL 解析)

环境搭建

🎉后端环境搭建

后端项目使用 SpringBoot3.0 开发,需要安装 JDK 17 、 MySQL 数据库、Redis。

在项目目录下的application.yml修改自己的启动环境spring.profiles.active = dev然后找到同级文件application-dev.properties,填写自己的环境配置(MySQL、Redis)。

🎉 前端环境搭建

前端项目使用 React 开发,需要安装 Node.js(Node 18 版本,请保持一致) 、npm 。

在项目目录下执行npm install安装依赖,然后执行npm run start启动项目。

贡献者🤝

后端:

前端:

项目界面

做题

img_0.png

执行结果

img_1.png

优化建议

img_5.png

代码生成

img_2.png

表大全

img_6.png

选择关卡

img_3.png

用户信息

Snipaste_2024-08-16_09-51-43.png

后台管理

img_7.png

致谢

感谢鱼皮开源项目:

sql-father:github.com/liyupi/sql-…

sql-mother:github.com/liyupi/sql-…

感谢大家看到最后,未来我们还会继续优化,有 bug 以及相关建议的可以联系我们的大佬-香香:QH_666x

我是聪~希望可以跟大家一起学习,我的 Github:github.com/lhccong 如果里面有你感兴趣的项目不妨给我点个星星⭐和关注🔥,未来我还会持续写新的好玩的小项目。