# practice-platform **Repository Path**: boogie0005/practice-platform ## Basic Information - **Project Name**: practice-platform - **Description**: 高校教学服务之工程实践平台 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-08-07 - **Last Updated**: 2025-12-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 工程实践与设计服务平台 一个专为学生提供全方位实践训练、毕业设计和竞赛支持的综合平台,支持多用户隔离环境、在线IDE、数据科学环境等功能。 ## ✨ 核心功能 - 🚀 **多用户隔离环境**:每个用户独立的容器化环境,完全隔离 - 💻 **在线IDE环境**:基于Code Server的在线开发环境,支持多种编程语言 - 📊 **数据科学环境**:集成Jupyter Lab,支持Python数据科学开发 - 🖥️ **虚拟桌面环境**:Ubuntu VNC桌面,支持图形化应用开发 - 🔐 **统一身份认证**:支持多角色用户管理 - 📈 **智能资源调度**:Docker容器化部署,自动资源分配 - 📊 **实时监控**:Prometheus + Grafana监控体系 - 🗄️ **多数据库支持**:MySQL、Redis、RabbitMQ、Elasticsearch ## 🛠️ 技术架构 - **后端框架**: Spring Boot 3.x + MyBatis Plus - **容器化**: Docker + Docker Compose - **数据库**: MySQL 8.0 + Redis 7 + RabbitMQ 3 - **监控**: Prometheus + Grafana - **部署**: Kubernetes (可选) ## 📋 系统要求 ### 最低配置 - **CPU**: 4核心 - **内存**: 8GB RAM - **存储**: 50GB可用空间 - **网络**: 稳定的互联网连接 ### 推荐配置 - **CPU**: 8核心 - **内存**: 16GB RAM - **存储**: 100GB可用空间 - **网络**: 高速互联网连接 ## 🚀 快速开始 ### 1. 环境准备 #### Linux 环境安装 ```bash # 给脚本执行权限 chmod +x scripts/install-linux.sh chmod +x scripts/start.sh # 运行环境安装脚本 ./scripts/install-linux.sh ``` #### 手动安装依赖 ```bash # 安装 Java 17 sudo apt update sudo apt install -y openjdk-17-jdk # 安装 Maven sudo apt install -y maven # 安装 Docker sudo apt install -y docker.io docker-compose sudo systemctl start docker sudo systemctl enable docker sudo usermod -aG docker $USER # 重新登录使Docker组权限生效 ``` ### 2. 项目部署 ```bash # 克隆项目 git clone cd practice-platform # 构建项目 mvn clean package -DskipTests # 启动服务 ./scripts/start.sh ``` ### 3. 镜像下载(可选) 如果网络较慢,可以预先下载所需镜像: ```bash # 下载所有需要的Docker镜像 ./scripts/download-images.sh ``` ## 🌐 服务访问 启动成功后,可以通过以下地址访问各个服务: | 服务 | 地址 | 用户名/密码 | 说明 | |------|------|-------------|------| | 主应用 | http://localhost:8080 | - | Spring Boot应用 | | 用户管理 | http://localhost:8080/user-management.html | - | 用户环境管理界面 | | 在线IDE | http://localhost:8444 | 密码: `123456` | Code Server IDE | | Jupyter Lab | http://localhost:8445 | token: `123456` | 数据科学环境 | | 虚拟桌面 | http://localhost:8446 | 密码: `123456` | VNC远程桌面 | ## 📁 项目结构 ``` practice-platform/ ├── src/ # 源代码 │ └── main/java/org/example/demo02/ │ ├── controller/ # 控制器层 │ ├── service/ # 服务层 │ ├── mapper/ # 数据访问层 │ └── model/ # 数据模型 ├── scripts/ # 核心脚本 │ ├── install-linux.sh # Linux环境安装 │ ├── start.sh # 服务启动 │ └── download-images.sh # 镜像下载 ├── docs/ # 核心文档 │ ├── virtual-desktop-guide.md │ ├── docker-environment-troubleshooting.md │ └── multi-user-isolation.md ├── monitoring/ # 监控配置 │ └── prometheus.yml # Prometheus配置 ├── k8s/ # Kubernetes配置 │ └── deployment.yaml # 部署配置 ├── pom.xml # Maven配置 ├── README.md # 项目说明 └── Dockerfile # Docker构建文件 ``` ## 🔧 核心功能使用 ### 创建用户环境 通过Web界面或API创建用户环境: ```bash # 创建用户环境API curl -X POST "http://localhost:8080/api/user-environments" \ -H "Content-Type: application/json" \ -d '{ "userId": "student001", "environmentTypes": ["IDE", "JUPYTER"], "userRole": "student" }' ``` ### 访问IDE环境 1. 创建环境后,访问 `http://localhost:8444` 2. 输入密码:`123456` 3. 开始在线编程 ### 访问Jupyter环境 1. 创建环境后,访问 `http://localhost:8445` 2. 输入token:`123456` 3. 开始数据科学开发 ### 访问虚拟桌面 1. 创建环境后,使用VNC客户端连接 `localhost:8446` 2. 输入密码:`123456` 3. 使用图形化开发环境 ## 🐛 故障排除 ### 常见问题 #### 1. Docker镜像下载慢 ```bash # 配置镜像加速器 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json < ``` #### 3. 容器启动失败 ```bash # 查看容器日志 docker logs # 重启容器 docker restart ``` #### 4. 权限问题 ```bash # 修复Docker权限 sudo usermod -aG docker $USER newgrp docker ``` ### 日志查看 ```bash # 查看应用日志 tail -f logs/app.log # 查看Docker容器日志 docker logs -f # 查看系统日志 sudo journalctl -u docker.service -f ``` ## 📊 监控和维护 ### 系统监控 - **应用健康检查**: http://localhost:8080/actuator/health - **Docker状态**: `docker ps` 查看容器状态 - **资源使用**: `docker stats` 查看资源使用情况 ### 服务管理 ```bash # 停止所有服务 docker stop $(docker ps -q) # 启动所有服务 ./scripts/start.sh # 查看服务状态 docker ps -a ``` ### 数据备份 ```bash # 备份用户数据 tar -czf user-data-backup.tar.gz users/ # 备份数据库(如果有) docker exec mysql-container mysqldump -u root -p database > backup.sql ``` ## 🔒 安全特性 - **用户隔离**: 每个用户独立的容器环境 - **网络隔离**: 用户环境使用内部网络,外部无法直接访问 - **资源限制**: CPU、内存、存储资源限制 - **权限控制**: 基于角色的访问控制 ## 📈 性能优化 - **容器资源限制**: 合理设置CPU和内存限制 - **镜像优化**: 使用轻量级基础镜像 - **网络优化**: 配置镜像加速器提升下载速度 - **存储优化**: 使用Docker卷管理数据 ## 🤝 贡献指南 1. Fork 项目 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 打开 Pull Request ## 📄 许可证 本项目采用 MIT 许可证。 ## 📞 联系方式 如有问题或建议,请通过以下方式联系: - 项目Issues: [GitHub Issues](https://github.com/your-repo/issues) - 邮箱: your-email@example.com --- **注意**: - 首次启动需要下载Docker镜像,请耐心等待 - 建议配置Docker镜像加速器以提升下载速度 - 确保服务器有足够的资源运行多个用户环境