# studysystem-java **Repository Path**: matt18565143898/studysystem-java ## Basic Information - **Project Name**: studysystem-java - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-26 - **Last Updated**: 2025-12-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # StudySystem - 现代化在线学习系统

Vue Spring Boot MySQL Element Plus License

## 📖 项目简介 StudySystem 是一个现代化的在线学习系统,专为在校学生和教育工作者设计。系统采用前后端分离架构,提供完整的学习管理功能,包括学习计划制定、资源共享、进度跟踪、社区交流等核心功能,致力于为用户打造高效便捷的在线学习体验。 ### 🎯 项目愿景 打造一个开放、共享、互动的在线学习平台,让学习变得更加高效、有趣和个性化,促进教育资源的公平分配和优质内容的广泛传播。 ### 🚀 核心优势 - **现代化技术栈**:采用Vue 3 + Spring Boot + MySQL的主流技术组合 - **响应式设计**:完美适配PC、平板、手机等多种设备 - **模块化架构**:清晰的模块划分,便于维护和扩展 - **安全可靠**:完善的权限控制和数据保护机制 - **高性能**:优化的数据库设计和缓存策略 - **易部署**:支持Docker容器化部署,一键启动 ## 🌟 功能特性 ### 👥 用户管理 - **多角色支持**:学生、教师、管理员三种角色 - **用户注册登录**:支持邮箱注册和JWT认证 - **个人资料管理**:头像上传、信息编辑、隐私设置 - **组织架构**:支持学校、班级等组织结构管理 ### 📚 学习计划管理 - **个人学习计划**:制定个性化学习目标和时间安排 - **小组协作学习**:支持小组任务分配和进度同步 - **历史计划回顾**:记录和分析历史学习数据 - **智能提醒**:学习进度提醒和里程碑标记 ### 📁 资源共享管理 - **多格式支持**:支持文档、视频、音频等多种格式 - **智能分类**:标签化管理和智能推荐 - **权限控制**:灵活的资源分享和访问权限 - **版本管理**:资源版本控制和历史记录 ### 📊 学习记录与统计 - **实时进度跟踪**:自动记录学习进度和时长 - **多维度统计**:学习时长、频率、成绩等数据分析 - **可视化报表**:图表化展示学习成果和趋势 - **能力评估**:基于学习数据的能力分析和建议 ### 💬 社区交流 - **学习分享**:分享学习心得、笔记和成果 - **问答互动**:师生问答和同伴互助 - **话题讨论**:围绕学习主题展开讨论 - **专家答疑**:教师和管理员提供专业解答 ### 🔔 消息通知 - **实时通知**:课程更新、作业提醒等及时推送 - **互动消息**:评论、点赞、关注等社交互动 - **系统公告**:重要通知和系统维护信息 - **个性化设置**:自定义通知偏好和接收方式 ## 🏗️ 系统架构 ### 技术架构图 ```mermaid graph TD A[用户界面] --> B[Vue 3 前端] B --> C[Axios HTTP客户端] C --> D[Spring Boot 后端] D --> E[MyBatis-Plus ORM] E --> F[MySQL 数据库] subgraph "前端技术栈" B C end subgraph "后端技术栈" D E end subgraph "数据存储" F end ``` ### 模块结构图 ```mermaid graph TD A[学习系统] --> B[学习计划管理] A --> C[资源共享管理] A --> D[学习记录与活度管理] A --> E[学习分享与交流] A --> F[通知与消息中心] A --> G[用户与权限管理] B --> B1[个人学习计划] B --> B2[小组任务与计划] B --> B3[历史计划] C --> C1[资源上传] C --> C2[资源分类] C --> C3[资源共享] C --> C4[资源搜索] D --> D1[学习进度] D --> D2[学习数据统计] E --> E1[个人动态] E --> E2[社区动态] F --> F1[互动信息] F --> F2[系统通知] G --> G1[用户账号信息维护] G --> G2[个人资料] G --> G3[角色与权限控制] G --> G4[组织管理] ``` ### 文档索引与模块对应 - 模块索引:`.trae/documents/Module_Index.md` - 文档标准:`.trae/documents/StudySystem_Document_Standards.md` - 技术架构:`.trae/documents/StudySystem_Technical_Architecture.md` - 模块文档:`.trae/documents/modules/*/README.md` ## 🛠️ 技术栈 ### 前端技术 | 技术 | 版本 | 用途 | |------|------|------| | Vue.js | 3.3+ | 渐进式JavaScript框架 | | Vite | 4.x | 下一代前端构建工具 | | Element Plus | 2.x | Vue 3组件库 | | Pinia | 2.x | 状态管理库 | | Vue Router | 4.x | 官方路由管理器 | | Axios | 1.x | HTTP请求库 | | SCSS | - | CSS预处理器 | ### 后端技术 | 技术 | 版本 | 用途 | |------|------|------| | Spring Boot | 3.x | 快速开发框架 | | Spring Security | 6.x | 安全框架 | | MyBatis-Plus | 3.5.x | ORM框架 | | MySQL | 8.0 | 关系型数据库 | | Redis | 7.x | 缓存数据库 | | JWT | 0.11.x | 身份认证 | | Jackson | 2.15.x | JSON处理 | ### 开发工具 | 工具 | 用途 | |------|------| | IntelliJ IDEA | Java开发IDE | | Visual Studio Code | 前端开发编辑器 | | Maven | 项目构建管理 | | npm/pnpm | 前端包管理 | | Git | 版本控制 | | Docker | 容器化部署 | ## 📋 环境要求 ### 开发环境 - **操作系统**:Windows 10+/macOS 10.14+/Ubuntu 18.04+ - **Node.js**:18.0.0 或更高版本 - **JDK**:17.0.0 或更高版本 - **Maven**:3.8.0 或更高版本 - **MySQL**:8.0.0 或更高版本 - **Redis**:7.0.0 或更高版本 ### 生产环境 - **服务器**:4核8GB内存及以上配置 - **操作系统**:CentOS 7+/Ubuntu 18.04+/Windows Server 2019+ - **Web服务器**:Nginx 1.20+ 或 Apache 2.4+ - **数据库服务器**:MySQL 8.0+ 主从配置 - **缓存服务器**:Redis 7.0+ 集群配置 ## 🚀 快速开始 ### 1. 环境准备 #### 安装Node.js ```bash # Windows (使用nvm-windows) nvm install 18.17.0 nvm use 18.17.0 # macOS/Linux (使用nvm) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash nvm install 18.17.0 nvm use 18.17.0 ``` #### 安装JDK 17 ```bash # Windows # 下载地址:https://adoptium.net/ # 配置JAVA_HOME环境变量 # macOS (使用Homebrew) brew install openjdk@17 # Ubuntu/Debian sudo apt update sudo apt install openjdk-17-jdk ``` #### 安装Maven ```bash # Windows # 下载地址:https://maven.apache.org/download.cgi # 配置MAVEN_HOME环境变量 # macOS (使用Homebrew) brew install maven # Ubuntu/Debian sudo apt update sudo apt install maven ``` #### 安装MySQL 8.0 ```bash # Windows # 下载地址:https://dev.mysql.com/downloads/mysql/ # macOS (使用Homebrew) brew install mysql@8.0 brew services start mysql@8.0 # Ubuntu/Debian sudo apt update sudo apt install mysql-server-8.0 sudo mysql_secure_installation ``` #### 安装Redis ```bash # Windows # 下载地址:https://github.com/tporadowski/redis/releases # macOS (使用Homebrew) brew install redis brew services start redis # Ubuntu/Debian sudo apt update sudo apt install redis-server ``` ### 2. 获取代码 ```bash # 克隆项目 git clone https://github.com/yourusername/StudySystem.git cd StudySystem ``` ### 3. 数据库初始化 ```bash # 登录MySQL mysql -u root -p # 创建数据库 CREATE DATABASE studysystem CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; # 创建用户并授权 CREATE USER 'studysystem'@'localhost' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON studysystem.* TO 'studysystem'@'localhost'; FLUSH PRIVILEGES; # 退出MySQL exit ``` ### 4. 后端服务启动 ```bash # 进入后端目录 cd backend # 修改配置文件 # 编辑 src/main/resources/application-dev.yml # 修改数据库连接信息 # 编译项目 mvn clean compile # 运行项目 mvn spring-boot:run -Dspring-boot.run.profiles=dev # 或使用IDE运行 # 在IntelliJ IDEA中导入项目,运行StudySystemApplication类 ``` ### 5. 前端服务启动 ```bash # 进入前端目录 cd frontend # 安装依赖 npm install # 或使用pnpm (推荐) pnpm install # 启动开发服务器 npm run dev # 或 pnpm dev # 构建生产版本 npm run build # 或 pnpm build ``` ### 6. 访问系统 - **前端地址**:http://localhost:3000 - **后端API**:http://localhost:8080 - **API文档**:http://localhost:8080/swagger-ui.html - **数据库管理**:http://localhost:8080/h2-console (开发环境) ## 📦 项目结构 ``` StudySystem/ ├── frontend/ # 前端项目 │ ├── src/ │ │ ├── api/ # API接口封装 │ │ ├── assets/ # 静态资源 │ │ ├── components/ # 公共组件 │ │ ├── views/ # 页面视图 │ │ ├── router/ # 路由配置 │ │ ├── store/ # 状态管理 │ │ ├── utils/ # 工具函数 │ │ └── styles/ # 全局样式 │ ├── public/ # 公共资源 │ ├── package.json # 项目依赖 │ └── vite.config.js # Vite配置 ├── backend/ # 后端项目 │ ├── src/main/java/ │ │ ├── controller/ # 控制器层 │ │ ├── service/ # 服务层 │ │ ├── manager/ # 管理器层 │ │ ├── mapper/ # 数据访问层 │ │ ├── entity/ # 实体类 │ │ ├── dto/ # 数据传输对象 │ │ ├── config/ # 配置类 │ │ └── common/ # 公共类 │ ├── src/main/resources/ │ │ ├── mapper/ # MyBatis映射文件 │ │ └── application.yml # 配置文件 │ ├── pom.xml # Maven配置 │ └── README.md # 后端说明 ├── docs/ # 项目文档 │ ├── architecture/ # 架构文档 │ ├── api/ # API文档 │ └── deployment/ # 部署文档 ├── docker/ # Docker配置 │ ├── Dockerfile.frontend # 前端Dockerfile │ ├── Dockerfile.backend # 后端Dockerfile │ └── docker-compose.yml # Docker Compose配置 ├── scripts/ # 脚本文件 │ ├── init-db.sql # 数据库初始化脚本 │ ├── build.sh # 构建脚本 │ └── deploy.sh # 部署脚本 └── README.md # 项目主文档 ``` ## 🔧 配置说明 ### 前端配置 #### 环境变量配置 ```bash # .env.development VITE_API_BASE_URL=http://localhost:8080 VITE_APP_TITLE=StudySystem 学习系统 VITE_APP_VERSION=1.0.0 ``` #### Vite配置 ```javascript // vite.config.js export default { server: { port: 3000, proxy: { '/api': { target: 'http://localhost:8080', changeOrigin: true } } }, build: { outDir: 'dist', assetsDir: 'assets' } } ``` ### 后端配置 #### 数据库配置 ```yaml # application-dev.yml spring: datasource: url: jdbc:mysql://localhost:3306/studysystem?useSSL=false&serverTimezone=UTC&characterEncoding=utf8 username: studysystem password: your_password driver-class-name: com.mysql.cj.jdbc.Driver redis: host: localhost port: 6379 password: database: 0 jwt: secret: your_jwt_secret_key_here expiration: 86400000 # 24小时 ``` #### 日志配置 ```yaml logging: level: com.studysystem: DEBUG org.springframework.web: INFO pattern: console: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n" file: "%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n" ``` ## 🧪 测试指南 ### 前端测试 ```bash # 运行单元测试 npm run test:unit # 运行端到端测试 npm run test:e2e # 运行所有测试 npm run test ``` ### 后端测试 ```bash # 运行单元测试 mvn test # 运行集成测试 mvn verify # 生成测试报告 mvn jacoco:report ``` ### API测试 ```bash # 使用curl测试健康检查接口 curl -X GET http://localhost:8080/api/health # 测试用户登录接口 curl -X POST http://localhost:8080/api/v1/users/login \ -H "Content-Type: application/json" \ -d '{"email":"test@example.com","password":"password"}' ``` ## 🚀 部署指南 ### Docker部署 #### 构建镜像 ```bash # 构建前端镜像 docker build -f docker/Dockerfile.frontend -t studysystem-frontend . # 构建后端镜像 docker build -f docker/Dockerfile.backend -t studysystem-backend . ``` #### 启动服务 ```bash # 使用Docker Compose启动所有服务 docker-compose -f docker/docker-compose.yml up -d # 查看服务状态 docker-compose ps # 查看日志 docker-compose logs -f ``` ### 传统部署 #### 前端部署 ```bash # 构建生产版本 cd frontend npm run build # 将dist目录部署到Web服务器 # Nginx配置示例 server { listen 80; server_name your-domain.com; location / { root /var/www/studysystem/frontend/dist; try_files $uri $uri/ /index.html; } location /api { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` #### 后端部署 ```bash # 构建JAR包 cd backend mvn clean package -DskipTests # 运行JAR包 java -jar target/studysystem-1.0.0.jar --spring.profiles.active=prod # 或使用systemd服务 sudo systemctl start studysystem sudo systemctl enable studysystem ``` ## 📊 性能监控 ### 应用监控 - **Spring Boot Actuator**:内置健康检查和指标监控 - **Micrometer**:应用性能指标收集 - **Prometheus + Grafana**:监控数据可视化和告警 ### 数据库监控 - **MySQL Performance Schema**:数据库性能监控 - **Redis监控**:缓存命中率和性能指标 - **慢查询分析**:数据库查询性能优化 ### 前端监控 - **Web Vitals**:核心Web指标监控 - **错误监控**:JavaScript错误收集和分析 - **性能分析**:页面加载时间和资源使用情况 ## 🔐 安全说明 ### 认证授权 - **JWT令牌**:无状态身份认证机制 - **角色权限**:基于RBAC的权限控制 - **访问控制**:细粒度的接口权限管理 ### 数据安全 - **密码加密**:BCrypt密码哈希存储 - **数据传输**:HTTPS加密传输 - **敏感信息**:敏感数据加密存储 ### 系统安全 - **SQL注入防护**:预编译语句防止注入 - **XSS防护**:输入验证和输出编码 - **CSRF防护**:跨站请求伪造防护 - **限流控制**:API调用频率限制 ## 🤝 贡献指南 ### 开发流程 1. **Fork项目**:将项目Fork到个人仓库 2. **创建分支**:基于develop分支创建功能分支 3. **开发功能**:遵循编码规范进行开发 4. **编写测试**:为新功能编写测试用例 5. **提交代码**:提交清晰的commit信息 6. **发起PR**:向主仓库发起Pull Request ### 编码规范 - **前端规范**:遵循Vue风格指南和ESLint规则 - **后端规范**:遵循Spring Boot最佳实践 - **数据库规范**:遵循数据库设计规范 - **API规范**:遵循RESTful设计原则 ### Commit规范 ``` feat: 新功能 fix: 修复bug docs: 文档更新 style: 代码格式调整 refactor: 代码重构 test: 测试相关 chore: 构建过程或辅助工具的变动 ``` ## 📞 支持与联系 ### 文档资源 - 📖 [技术架构文档](docs/architecture/README.md) - 🔧 [API接口文档](docs/api/README.md) - 🚀 [部署指南](docs/deployment/README.md) - ❓ [常见问题](docs/faq/README.md) ### 联系方式 - 📧 邮箱:support@studysystem.com - 💬 微信群:扫码加入技术交流群 - 🐛 问题反馈:[提交Issue](https://github.com/yourusername/StudySystem/issues) ### 更新日志 查看 [CHANGELOG.md](CHANGELOG.md) 了解版本更新内容 ## 📄 许可证 本项目基于 [MIT License](LICENSE) 开源协议,详见 [LICENSE](LICENSE) 文件。 ## 🙏 致谢 感谢以下开源项目的支持: - [Vue.js](https://vuejs.org/) - 渐进式JavaScript框架 - [Spring Boot](https://spring.io/projects/spring-boot) - 快速开发框架 - [Element Plus](https://element-plus.org/) - Vue 3组件库 - [MyBatis-Plus](https://baomidou.com/) - 增强版MyBatis - [Vite](https://vitejs.dev/) - 下一代前端构建工具 --- **⭐ 如果这个项目对你有帮助,请给个Star支持一下!**