I
I
Ilya Pochepko2016-05-25 15:09:21
Django
Ilya Pochepko, 2016-05-25 15:09:21

How to implement an online compiler in Django?

I am developing a project for online training in encryption methods. An application is needed that receives the *.cpp source file from the user, compiles it on the server, checks the correctness of the task according to the prepared tests, and, if the user's result matches the reference result, returns a success message.
I've been racking my brain for a day, but it never occurred to an adequate and normally working implementation.

Answer the question

In order to leave comments, you need to log in

3 answer(s)
Зелимхан Бельтоев, 2016-05-25
@Beltoev

Когда я подобную задачу решал (правда, десктопная программа для тестирования была, но не суть), то делал примерно по следующему алгоритму:
В вашем случае нужен будет выделенный сервер (желательно отдельно от основного сайта, чтобы, в случае какой уязвимости, пользователь не мог получить доступа к сайту тестирования), с которым бы сайт общался по API: сайт отправляет серверу файл, а тот в ответ шлет результат компиляции. Если все ок, то статус успешности и результат вывода, иначе - ошибку и комментарий компилятора.

Андрей Инишев, 2016-05-25
@inish777

Можно же общаться с бинарником и компилятором через пайпы (os.popen). Для бинарника в целях безопасности сделать chroot.

R
Rou1997, 2016-05-25
@Rou1997

Купите VPS, и просто установите на него любой компилятор, вообще любую программу, что пожелаете, вполне адекватный вариант.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question