Skip to content

MOJAN3543/EasyJudge_server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EasyJudge Server

프로젝트 소개

  • 코드를 자동 채점하는 크롬 익스텐션인 EasyJudge의 동작을 위한 API서버 입니다.
  • 코드와 입력 값(stdin), 함께 동작할 파일 등을 입력으로 받아 코드의 출력 값을 반환합니다.

기술 스택

프로젝트 구조

📦codeserver
 ┣ 📂runcode
 ┃ ┗ 📜CodeRunner.py
 ┣ 📂util
 ┃ ┣ 📜ConfigParser.py
 ┃ ┣ 📜CustomException.py
 ┃ ┣ 📜ErrorHandler.py
 ┃ ┣ 📜FileUtil.py
 ┃ ┗ 📜Judge.py
 ┣ 📜Dockerfile
 ┣ 📜README.md
 ┣ 📜app.py
 ┣ 📜config.ini
 ┗ 📜requirements.txt

BUILD

$ docker build -t flask-application:latest .

RUN

$ docker run -p <host portnum>:<container portnum> --memory=<memory> flask-application

포트 기본 값은 5000:5000입니다. memory는 1g를 추천합니다. 더 낮은 메모리를 사용할 수 있으나, 코드 채점시 제한 메모리에 걸리지 않음에도 MLE Error를 발생시키는 원인이 됩니다.

Warning

해당 프로젝트는 보안 이슈가 있을 수 있습니다. 컴파일한 실행 결과를 그대로 사용자에게 보여주기 때문에, 해당 서버 주소를 공개적으로 공유하여 사용하는것은 추천드리지 않습니다.

TODO

  • 현재는 C언어만 컴파일 / 실행 가능하지만 추후에 C++, 자바, 파이썬등 여러 언어를 지원할 예정입니다.
  • 현재는 한번에 한 테스트 케이스만 실행하지만, 한 코드에 대해 여러 테스트 케이스를 처리하는 기능도 고려하고 있습니다.

About

Server for EasyJudge

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published