online judge的策划

挖坑管挖不管埋啦啦啦啦啦啦~

测试了很多网上的开源online judge系统(目前测试:http://oj.jingwei.site time(2016.04.04)),没有一个能完全达到我想要的状态的,(⊙_⊙),反正现在才大二,自己做一个,慢慢来~

  • 服务器:首先,服务器这个不是问题,自己本机就是ubuntu,还有一个阿里云一个加拿大一个日本的服务器,先本机测试,再放上vps。
  • 原创还是修改开源:其实觉得codeforces挺棒的= =然而并没有开源,其他的要么功能不全,要么功能完备美工太差(这个真不能忍)= =所以没有选择了,自己搞一个吧~
  • 现在能想到的以及技术困难:
  1. web服务器和判题服务器肯定是需要分开的,最好还能在web后台管理中动态添加;
  2. 基于 Python 和 Django ,现在主流oj似乎都是利用python和django框架,那么自然有它的独到之处,暂且就定为采取这种模式;
  3. 判题语言至少需要支持c,c++,以及java,考虑到后期维护,在添加判题服务器时应该附带着更新可支持的判题语言,或者在web端就指定已经支持的语言,然后直接添加判题服务器;(前者先更新判题服务器,通过判题服务器更新web端,后者更新web端,web端存在支持后判题服务器上的语言支持才能作用);
  4. 判题流程:用户提交–>Web界面–>Web服务器在数据库中新建评测–>Web服务器找到应轮到的评测机,下发评测指令和相关数据(用户代码、标准输入输出)–>评测机开始评测,返回结果,web服务器向数据库写入结果–>用户在Web界面获取结果;
  5. 用户提交:暂时只支持提交代码就好了,提交文件在我看来其实可有可无,还会增加处理的复杂度度,另外,在提交的时候可以做一个小小的检测,比如选择语言错误,或者采用了一些非法代码;
  6. 1. 用户类型:超级管理员,普通管理员(用于创建比赛),普通用户
  7. 2. 功能:是否需要增加小组功能?以便对小组发布比赛或者对某些用户发布比赛?或者比赛单纯以密码的形式来区分参与用户?
  8. web界面,需要有problem,submission,status,rating,contest,about(FAQ);
  9. 题目:除了常规的信息,增加题目分类(某场比赛的题目自成一个分类,同一个来源自成一个分类等等)和题目标签(水题,DP,暴力等等)(题目难度等级?无法有效区分
  10. 提交:和常规oj显示信息相同即可;
  11. 排名:考虑是否给每道题增加权值?按权值排名或者按解题数目和AC率排名?
  12. 比赛:题目(可新建可从已有题目导入新建,仅仅导入信息即可若导入需要可编辑)开始时间,终止时间,是否封榜(管理员和创建者始终需要看到整个榜单),acm-icpc机制和codeforces排名机制(每题一个初始分值,设定分值递减函数),比赛进行中有人AC给创建者推送通知(通知check功能)(考虑给页面单独留出一个板块放通知,超级管理员可全局推送通知,管理员在比赛开始后可推送给参加比赛的人通知),

文章作者: crazyX
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 crazyX !
评论
 上一篇
岩石力学第2章 岩石强度与变形-作业 岩石力学第2章 岩石强度与变形-作业
岩石力学第一章作业,顺便学习了一下mathjax的简单使用。 请回答下列问题:A.什么是岩石的单向抗压、单向抗拉、单向抗剪和残余强度?B.论述Mohr-Coulomb准则的本质及假设条件是什么?C.岩石强度的影响因素有哪些?这些因素是怎样影
2016-04-06
下一篇 
岩石力学第1章 岩石性质与应力状态-作业 岩石力学第1章 岩石性质与应力状态-作业
岩石力学第一章作业,顺便学习了一下markdown语法的简单使用。 请完成下列名词解释,在系统中输入答案。1. 岩(体)石力学 岩石力学是研究岩石的力学性状的一门理论和应用的科学,它是固体力学的一个分支,是探讨岩石对其周围物理环境中力场反应
2016-03-31
  目录