项目名

Piers 在线评测

项目需求

用户:

  1. 获取题库、题目的相关信息。
  2. 在线对代码进行编译、执行、保存、返回运行(编译)结果。
  3. 总体题目评测成绩查询。
  4. 用户信息服务,包括注册、登录、忘记密码、邮箱验证等功能。

管理员:

  1. 题库、题目相关信息的增删改查。
  2. 用户导入,包括文件导入、输入等方式。
  3. 用户成绩查询与修改。
  4. 题目分析。
  5. 用户抄袭作弊检测。

项目特色

  1. 安全性高,采用 Docker、Tomcat 安全策略等多重机制保护运行时安全。
  2. 拥有抄袭作弊检测的功能,方便管理员对用户的作业检查。
  3. 基于 B/S 架构,方便易用。

项目架构

语言:Java

框架:Spring + Spring MVC + MyBatis

前端:Bootstrap

前端页面:JSP、JavaScript、AJAX

安全:Spring Security、Docker、Java Security

数据库:MySQL(MariaDB)

服务器:Tomcat

开发 IDE:Intellij IDEA

项目待办

1、RESTful。

2、Java Bean Validation。

3、Docker 权限控制。

4、分布式编译、运行代码,保存或者返回结果。

项目链接

代码:mofadeyunduo/OnlineJudge: Piers 在线评测

GitHub:mofadeyunduo/OnlineJudge

项目文档

Online Judge(OJ)搭建——2、数据库,SQL语句

Online Judge(OJ)搭建——3、MVC架构

Online Judge(OJ)搭建——4、具体实现

Online Judge(OJ)搭建——5、配置

Online Judge(OJ)搭建——1、项目介绍的更多相关文章

  1. vue环境搭建及项目介绍

    搭建开发环境(搭建开发环境前必须安装node.js): 1.安装vue脚手架工具 $ npm install -g vue-cli 2.创建项目(注意项目名字不要有大写字母) vue init < ...

  2. SpringBoot 项目搭建(详细介绍+案例源码)

    SpringBoot 项目搭建 SpringBoot 项目整合源码 SpringBoot 项目整合 一.项目准备 1.1 快速创建 SpringBoot 项目 1.2 标准项目结构图如下 1.3 添加 ...

  3. vue 快速入门 系列 —— 使用 vue-cli 3 搭建一个项目(上)

    其他章节请看: vue 快速入门 系列 使用 vue-cli 3 搭建一个项目(上) 前面我们已经学习了一个成熟的脚手架(vue-cli),笔者希望通过这个脚手架快速搭建系统(或项目).而展开搭建最好 ...

  4. 一步一步使用ABP框架搭建正式项目系列教程之本地化详解

    返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 本篇目录 扯扯本地化 ABP中的本地化 小结 扯扯本地化 本节来说说本地化,也有叫国际化.全球化的,不管怎么个叫法,反正道理都是一 ...

  5. 零配置简单搭建SpringMVC 项目

    SpringMVC是比较常用的JavaWeb框架,非常轻便强悍,能简化Web开发,大大提高开发效率,在各种Web程序中广泛应用.本文采用Java Config的方式搭建SpringMVC项目,并对Sp ...

  6. Spring-Boot快速搭建web项目详细总结

    最近在学习Spring Boot 相关的技术,刚接触就有种相见恨晚的感觉,因为用spring boot进行项目的搭建是在太方便了,我们往往只需要很简单的几步,便可完成一个spring MVC项目的搭建 ...

  7. 手把手教你用vue-cli搭建vue项目

    手把手教你用vue-cli搭建vue项目 本篇主要是利用vue-cli来搭建vue项目,其中前提是node和npm已经安装好,文章结尾将会简单提到一个简单的例子.使用vue-cli搭建项目最开始我也是 ...

  8. 使用vue-cli搭建vue项目

    1.安装node环境,然后在命令行输入node -v 和npm -v 查看版本号 2.在正式开始项目之前我们先介绍一下vue-cli,vue-cli是一个脚手架工具,vue-cli是帮助我们写好vue ...

  9. element-ui和npm、webpack、vue-cli搭建Vue项目

    一.element-ui的简单使用 1.安装 1. npm 安装 推荐使用 npm 的方式安装,它能更好地和 webpack 打包工具配合使用. npm i element-ui -S 2. CDN ...

  10. 利用vue-cli3快速搭建vue项目详细过程

    一.介绍 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统.有三个组件: CLI:@vue/cli 全局安装的 npm 包,提供了终端里的vue命令(如:vue create .vue ...

随机推荐

  1. UVA - 1218 Perfect Service (树形DP)

    思路:dp[i][0]表示i是服务器:dp[i][1]表示i不是服务器,但它的父节点是服务器:dp[i][2]表示i和他的父亲都不是服务器.       转移方程: d[u][0] += min(d[ ...

  2. Wordpress上传资源报HTTP错误

    简述 在公司内部搭建内部视频学习网站,经过对比选择了wordpress进行站点搭建.但是在上传视频遭遇到了各种问题,特将此处理过程进行记录. 原因排查 1.上传一个十几兆mp4的文件上传进度到达百分之 ...

  3. linux周期性计划任务 进程管理

    周期性计划任务crontab命令系统服务:/etc/init.d/crond(crond必须启动才会生效)用户计划:/var/spool/cron/用户名默认的计划任务全局配置:/etc/cronta ...

  4. Davinci DM6446开发攻略——u-boot-1.3.4移植(1)

    UBOOT的版本更新速度比较快,截止今天,稳定正式的版本是u-boot-2009.11-rc2,而TI最新的EVM开发包里的UBOOT是1.2.0版本,国内很多公司还一直使用u-boot-1.1.4和 ...

  5. 关于echarts

    昨天随手玩了下echarts,看见同事纠结于echarts的兼容问题. 最简单的echarts(官网的): <div id="main" style="width: ...

  6. STM32F4 串口实验中收不到超级终端发送的数据,调试工具却可以

    我用串口精灵发送数据没有问题,但是接收数据没反应. 串口接受的时候必须要用中断的,你发送只靠单一的标志位是可以判断的,但是接受的时候,你是一直停留在while里面,我们判断接受是否完成,通过检测是否收 ...

  7. JSP中的include有哪些?有什么区别?

    JSP中的include有哪些?有什么区别? 1.JSP中的include有哪些 (1)<%@include file="" %> (2)<jsp:include ...

  8. ASP.NET 页面双向静态化

    而我们预期的结果应该如下图,实际只请求两次. 用301重定向可以解决该循环请求产生的问题. OK, let's begin. 本文的Demo和Source是基于上一篇的,如果下面的一些文件或文件夹没有 ...

  9. 第一次C语言实验报告

    一.实验题目,设计思路,实现方法 实验四4-2-9三个数由小到大输出,要求比较三数大小并按顺序输出.运用穷举法列举所有可能性再对应输出.运用多分支结构. 实验四4-2-4 三天打鱼两天晒网,运用循环结 ...

  10. 机器学习相关的tutorial

    1. MRF 马尔可夫随机场 http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/AV0809/ORCHARD/ 从MRF,讲到Gibbs分 ...