Skip to content

基于 Next.js + Spring Boot + Redis + MySQL + Elasticsearch 的面试刷题平台,运用 Druid + HotKey + Sa-Token + Sentinel 提高了系统的性能和安全性。管理员可以创建题库、题目和题解;用户可以注册登录、分词检索题目、在线刷题并查看刷题记录日历图。 此外,系统使用数据库连接池、热 Key 探测、缓存、高级数据结构等来提升性能。通过流量控制、熔断、动态 IP 黑白名单过滤、同端登录冲突检测、分级反爬虫策略来提升系统和内容的安全性。

Notifications You must be signed in to change notification settings

LLLL1024/xiyan-mianshihou-next

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 

Repository files navigation

面试猴刷题平台

项目简介

项目介绍

基于 Next.js + Spring Boot + Redis + MySQL + Elasticsearch 的面试刷题平台,运用 Druid + HotKey + Sa-Token + Sentinel 提高了系统的性能和安全性。管理员可以创建题库、题目和题解;用户可以注册登录、分词检索题目、在线刷题并查看刷题记录日历图。 此外,系统使用数据库连接池、热 Key 探测、缓存、高级数据结构等来提升性能。通过流量控制、熔断、动态 IP 黑白名单过滤、同端登录冲突检测、分级反爬虫策略来提升系统和内容的安全性。

项目上线

基于腾讯云服务器的宝塔Linux上线的

上线地址:http://mianshihou.user1.site

由于服务器的配置较低无法有效部署ES、HotKey、Nacos、Sentinel等等,从而导致部署上线的功能缺失了(全局检索的ES提供的功能以及一些限流等操作)

架构设计

1、核心业务流程图

img

2、架构设计图

img

技术选型

前端

  • React 18 框架
  • ⭐️ Next.js 服务端渲染
  • ⭐️ Redux 状态管理
  • Ant Design 组件库
  • 富文本编辑器组件
  • ⭐️ 前端工程化:ESLint + Prettier + TypeScript
  • ⭐️ OpenAPI 前端代码生成

后端

  • Java Spring Boot 框架 + Maven 多模块构建
  • MySQL 数据库 + MyBatis-Plus 框架 + MyBatis X
  • Redis 分布式缓存 + Caffeine 本地缓存
  • Redission 分布式锁 + BitMap + BloomFilter
  • ⭐️ Elasticsearch 搜索引擎
  • ⭐️ Druid 数据库连接池 + 并发编程
  • ⭐️ Sa-Token 权限控制
  • ⭐️ HotKey 热点探测
  • ⭐️ Sentinel 流量控制
  • ⭐️ Nacos 配置中心
  • ⭐️ 多角度项目优化:性能、安全性、可用性

环境准备

后端 JDK 版本需要使用 8、11 或 17,不能超过 17!

推荐使用 11 版本,因为 Caffeine 缓存要求使用 11 版本。

前端 Node.js 版本 >= 18.18。

项目功能梳理

基础功能

  • 用户模块

    • 用户注册
    • 用户登录(账号密码)
    • 【管理员】管理用户 - 增删改查
  • 题库模块

    • 查看题库列表
    • 查看题库详情(展示题库下的题目)
    • 【管理员】管理题库 - 增删改查
  • 题目模块

    • 题目搜索
    • 查看题目详情(进入刷题页面)
    • 【管理员】管理题目 - 增删改查(比如按照题库查询题目、修改题目所属题库等)

高级功能

  • 题目批量管理

    • 【管理员】批量向题库添加题目
    • 【管理员】批量从题库移除题目
    • 【管理员】批量删除题目
  • 分词题目搜索

  • 用户刷题记录日历图

  • 自动缓存热门题目

  • 网站流量控制和熔断

  • 动态 IP 黑白名单过滤

  • 同端登录冲突检测

  • 分级题目反爬虫策略

About

基于 Next.js + Spring Boot + Redis + MySQL + Elasticsearch 的面试刷题平台,运用 Druid + HotKey + Sa-Token + Sentinel 提高了系统的性能和安全性。管理员可以创建题库、题目和题解;用户可以注册登录、分词检索题目、在线刷题并查看刷题记录日历图。 此外,系统使用数据库连接池、热 Key 探测、缓存、高级数据结构等来提升性能。通过流量控制、熔断、动态 IP 黑白名单过滤、同端登录冲突检测、分级反爬虫策略来提升系统和内容的安全性。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published