# brush-problem **Repository Path**: min_shangfeng/brush-problem ## Basic Information - **Project Name**: brush-problem - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-17 - **Last Updated**: 2024-09-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: Vue, Nestjs, SpringBoot ## README # 在线答题平台项目 README ## 项目概述 本项目是一个基于现代技术栈构建的在线答题平台,旨在为用户提供丰富多样的题目资源、便捷的答题体验以及实时的成绩反馈。后端服务采用Nest.js(用于构建高效、可靠的RESTful API)和Spring Boot(处理复杂业务逻辑及数据交互),结合Redis、Elasticsearch(ES)、MySQL等数据库和缓存技术,实现高性能、可扩展的架构设计。同时,项目集成了Druid连接池、HotKey防护、SA-Token权限认证以及Sentinel流量控制等组件,确保系统的稳定性、安全性和用户体验。 ## 技术栈 - 后端框架 - Nest.js:用于构建高效、可靠和可扩展的服务器端应用程序。 - Spring Boot:快速开发、易于部署的Java框架,用于处理复杂的业务逻辑。 - 数据库与缓存 - MySQL:关系型数据库,存储结构化数据。 - Redis:高性能的内存数据存储,用于缓存热点数据,提升系统响应速度。 - Elasticsearch (ES):全文搜索引擎,支持复杂的搜索查询,优化搜索体验。 - 中间件与组件 - Druid:数据库连接池,提供强大的监控和扩展功能。 - HotKey:热点数据防护,防止缓存击穿等问题。 - SA-Token:轻量级Java权限认证框架,支持多种登录方式及细粒度权限控制。 - Sentinel:流量控制、熔断降级库,保障服务的高可用。 ## 系统架构 系统采用微服务架构,主要分为以下几个服务模块: 1. 用户服务:负责用户注册、登录、信息管理等。 2. 题目服务:管理题目的增删改查,包括题目分类、难度等级等。 3. 答题服务:处理用户的答题请求,记录答题结果,计算成绩等。 4. 搜索服务:基于Elasticsearch提供题目搜索功能。 5. 网关服务:作为API网关,负责路由转发、请求过滤、安全认证等。 ## 功能模块 - 用户管理:支持用户注册、登录、个人信息修改、密码重置等功能。 - 题库管理:管理员可添加、编辑、删除题目,设置题目分类、难度等属性。 - 答题功能:用户可选择题目进行答题,系统实时反馈答题结果及解析。 - 成绩统计:记录用户答题历史,提供成绩统计、排名等功能。 - 搜索功能:支持按题目内容、分类、难度等条件进行搜索。 ## 部署与运行 ### 环境要求 - Node.js(Nest.js) - Java JDK(Spring Boot) - MySQL数据库 - Redis服务器 - Elasticsearch集群 ### 部署步骤 1. 数据库初始化:在MySQL中创建数据库及所需表结构。 2. 配置环境变量:根据项目中的.env或application.properties文件配置数据库连接、Redis地址等。 3. 启动服务: - 使用npm start或yarn start启动Nest.js服务。 - 使用Maven或Gradle构建并运行Spring Boot应用。 - 确保Redis和Elasticsearch服务已启动。 - 访问系统:通过网关服务提供的API或前端页面访问系统。 ## 贡献与反馈 欢迎对本项目提出改进意见或贡献代码。请通过GitHub的Issue或Pull Request功能进行反馈或提交代码。 ## 许可证 本项目遵循MIT开源许可证。