一、项目概述
1.1 项目背景
Web课程实验每位学生都要提交多份以上的Web作业(可浏览的网站),在演示和评价过程师生们遇到一些典型问题:
- Web作业多数只能在学生电脑上运行,由教师主观即时评分,难于回顾和对比。验收后学生也不易相互观摩、印证提高,没有充分发挥作业的价值。
- 学生通常要在实验课后继续用个人电脑开发,但安装和配置开发环境较为困难。
- 作业验收包含演示和问答,每份作业约需10分钟,每位教师约需分担20多小时的验收答辩工作,学生也要预约排队等候。验收环节对师生们带来很大的时间开销。
- 学生自行架设的开发环境中,软件版本和技术方案差异大,不利于教师重现问题和技术支持。
- 软件代码易于复制、抄袭,甚至找他人代写。平台需要防范此类行为。
- Web开发环境用Linux比Windows更方便配置,但学生为其他课程或娱乐目的很少用Linux系统,虚拟机又损失相当性能。
1.2 项目目标
为Web开发提供统一、易用的公共开发环境,保存用户提交的代码和资源,能够对用户提交的Web应用进行自动构建、部署、测试;为将来扩展支持程序设计、算法设计、数据库等实验环境建立基础平台。
1.3小组分工
- 安景昊(质量总监、后端开发)
- 陈景涛(项目管理、产品经理、后端开发)
- 黄慧琳(艺术总监、前端开发)
- 吉松阳(架构设计、后端开发)
- 王政(数据设计)
- 肖俊锦(前端开发)
二、Web实验室(WebLab)介绍
2.1项目介绍
本项目给WEB开发做Docker镜像,用K8s搭建和管理集群,公用的Web和DB服务,能够分配系统和DB帐号,在统一的环境里面开发,即为开发一套容器化的开发、运行、测试环境,用以支持Web开发、程序设计等课程的实验教学。
2.2系统架构
系统为前后端分离式架构。两端数据交换采用JSON格式。
- 前端:
- 初期以Web界面为主,使用Vue3、CodeMirror等组件开发。
- 期望的客户端环境为FireFox和Chrome。也预留了扩展到IDE插件、移动端等环境的设计空间。
- 后端:
- 使用Go、Java、Kotlin、Python语言开发WebAPI。
- 基于Kubernetes、Docker架设服务环境供用户使用。
- 系统本身运行在Ubuntu系Linux。
- 数据:
- 数据库为PostgreSQL。
- 缓存服务使用Redis。