Giter VIP home page Giter VIP logo

hyunchan-park / jota-dmoj-judge-server Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dmoj/judge-server

1.0 1.0 6.0 6.62 MB

Judging backend server for the DMOJ online judge.

Home Page: https://dmoj.ca

License: GNU Affero General Public License v3.0

Python 50.12% C 1.16% C++ 47.54% Dockerfile 0.18% Makefile 0.07% Shell 0.14% Java 0.59% Pascal 0.03% Go 0.05% C# 0.07% Assembly 0.05% Roff 0.01%

jota-dmoj-judge-server's People

Contributors

aurpine avatar carson-tang avatar dessertion avatar dmoj-build avatar ehhthing avatar fataleagle avatar fengb avatar fhqlatm avatar github-actions[bot] avatar hyunchan-park avatar int-y1 avatar jubin-park avatar kipply avatar kiritofeng avatar mikejgray avatar mmun avatar ninjaclasher avatar phoenix1369 avatar puffyshoggoth avatar quantum5 avatar rigwild avatar walle256 avatar wesley-a-leung avatar xiaowuc1 avatar xyene avatar yukarinn avatar

Stargazers

 avatar

Watchers

 avatar

jota-dmoj-judge-server's Issues

정답 및 제출 코드를 여러 소스파일로 제출, 채점할 수 있도록 수정 (multiple source codes)

현재 JOTA는 정답 코드 및 제출 코드를 모두 하나의 소스 코드로만 작성하여야 함
이는 헤더 파일을 따로 관리하거나, 규모가 큰 프로그램을 채점하기에 부적잘함

  1. 먼저 정답 코드를 여러 소스 파일로 제출할 수 있도록 수정. 내부 구조 및 인터페이스 수정
  2. 제출 코드 또한 수정. 내부 구조 및 인터페이스 수정

배포 프로세스의 정리 및 메뉴얼 작성

배포 프로세스 정리 및 메뉴얼 작성

  • JCloud instance 생성 부터 github clone 후 진행 방법
  • 기존 문서를 토대로 전체 과정을 정리
  • 가장 중요한 부분은 기존 문제들과 사용자 정보를 가져오는 것

대회 관리를 수업 과제 관리로 변경 혹은 새롭게 추가

수업 과제 관리

  • 과제 제출 마감 시한을 입력하고, 데드라인에서 얼마나 지났는지 쉽게 확인하는 기능 필요
  • 학생들에게 보여주는 화면도 해당 내용을 잘 확인할 수 있도록 수정
  • 학생 별로 각 수업에서의 제출 현황을 쉽게 알 수 있도록 변경

JOTA 정답코드 -> 제출코드 간 stdout -> stdin 전달 오류 수정

2021년 1학기 운영체제 과제 수행 중 발견한 오류

정답코드의 stdout 이 제출코드의 stdin 으로 연결되어 입력값을 전달하는데,
이때 stdout 에서 "3" 이 포함된 경우, 다른 값으로 변경되어 전달되는 현상을 발견함

  1. 이러한 현상을 검증하고,
  2. 원인을 분석, 파악하여 수정함

결과 화면에서 diff 한 결과를 출력

현재 JOTA 에서는 정답코드, 제출코드에서 각각 생성된 output 을 출력해서 보여주며,
두 결과가 같은 경우 정답, 다른 경우 오답으로 처리된다.

이때, output data가 많은 경우에는 어느 부분이 다른지 확인하기가 어려우므로
두 문자열 간의 다른 부분을 하이라이트하거나 diff 를 활용해서 보여주는 기능이 필요하다.

enhancement: 여러 개의 소스파일들을 받는 채점자 만들기

목표

  • C (gcc) Judge 한정하여 구현
  • Grader(채점자) 측에서 additional & multiple 소스(.c)와 헤더(.h)를 추가한다.
  • Submitter(제출자) 측에서 부분적으로 Grader가 업로드한 소스 파일의 일부를 include 한다.
    • e.g.
      1. Grader는 문제와 함께 LinkedList 를 구현한 소스코드를 첨가한다.
      2. Grader가 업로드한 LinkedList 코드를 자동으로 Submitter 코드가 include 하기만 하면, Submitter는 LinkedList 구현코드까지 함께 제출할 필요가 없으며, LinkedList 관련 연산을 사용한 코드만 제출하면 된다.
  • signature_grader 노드 멤버 entry, header가 gcc 컴파일 옵션과 관련돼있는가?

참고할 주제

JCode - JOTA 연동 (JOTA-side)

JCode 에서 작성 중인 코드를 JOTA 에 바로 채점 요청할 수 있는 기능 만들기

JCode-side: JOTA judge-sever 와 통신할 수 있는 extension 을 작성하고, 프로토콜에 맞추어 통신하는 모듈 작성
JOTA-side: Judge-server 의 통신 프로토콜을 파악하고, JOTA web 이 아닌 다른 주체가 judge 요청을 할 경우 발생하는 문제 상황을 분석, 수정하기

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.