# E-Select **Repository Path**: hzjSecurity/E-Select ## Basic Information - **Project Name**: E-Select - **Description**: E选课 (E-Select) - 教育新基建 · 选课新标准 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-04-01 - **Last Updated**: 2025-10-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java, Lua, script ## README # E选课系统 项目说明书 ## 1. 项目介绍 E选课系统是一款基于现代Web技术的在线选课平台,主要功能包括: - 教师端:课程发布、管理 - 学生端:课程查询、选课 - 管理员端:系统管理、用户管理、数据统计 - 智能助手:基于SpringAI的智能助手,提供智能问答、智能推荐等功能 ## 2. 技术架构 ### 2.1 技术栈组成 | 类别 | 技术选型 | | ------------ |--------------------------------------------| | 前端 | Vue3 + ElementPlus组件库 | | 后端 | SpringCloud、SpringCloudAlibaba、SpringAI、Mp | | 中间件 | Redis主从哨兵集群、RabbitMQ消息队列 | | 数据库 | MySQL | | 安全框架 | SpringSecurity | | 文件存储系统 | Minio | ## 3. 项目亮点 ### 3.1 一人一课功能保障 - 采用**分布式锁**机制确保选课操作的原子性 - 基于Redis实现课程人数限制的精确控制 - 防止超卖和并发冲突问题 ### 3.2 缓存分片存储优化 - 针对课程评论数据量大的特点 - 实现**分片存储**策略,将评论按课程ID哈希分片 - 显著提升大数据量场景下的查询性能 ### 3.3 Redis连接池优化 - 定制Redistemplate连接池配置 - 解决哨兵模式下Lua脚本被错误路由到Slave节点的问题 - 确保写操作的正确执行 ### 3.4 高性能缓存策略 - 大量使用Lua脚本减少网络IO - 采用Pipeline批量操作提升Redis性能 - 关键路径缓存命中率>95% ### 3.5 安全认证体系 - 基于SpringSecurity实现完整的认证授权 - 采用RBAC(基于角色的访问控制)模型 - 细粒度的权限控制到API级别 ### 3.6 智能助手 - 基于SpringAI实现OpenAI的接入 - 基于会话记录,Function-call,MCP等功能实现功能丰富的智能助手 ## 4. 许可证 本项目采用 Apache License 2.0 开源协议。 ## 5. 联系方式 - 邮箱:2315912943@qq.com ------ **E选课系统** - 让教育更智能,让学习更简单!