Написать скрипт для автопроверки задач на python
2 000 руб. за проект
Техническое задание (ТЗ) на разработку скрипта для проверки задач на Python:
Описание: мы разрабатываем платформу, где можно будет решать задачи python и сразу
проверять свое решение. Интерпретатор должен быть с возможностью сделать дебаг, отображать глобальные переменные/данные, сделать проверку (тесты из нашей бд), запуск (проверить задачу на данных пользователя) и вывод ошибок
**Цель проекта:**
Разработать скрипт на языке Python, который будет выполнять автоматическую проверку задач, предоставленных пользователями в виде Python-кода, и выдавать результаты выполнения.
**Основные требования:**
1. **Входные данные:**
- Скрипт должен принимать на вход Python-код, предоставленный пользователем.
- Скрипт должен иметь возможность принимать дополнительные параметры, такие как входные данные для задачи (если требуется). Input или дополнительные строки для проверки
2. **Выполнение кода:**
- Скрипт должен выполнять предоставленный Python-код в изолированной среде для безопасности.
- Скрипт должен обрабатывать исключения и ошибки в коде пользователя, предоставляя информацию о них.
- выдавать рекомендации pip8
- предварительная проверка кода на уязвимость
3. **Оценка результатов:**
- Скрипт должен анализировать результат выполнения кода пользователя.
- В случае успешного выполнения кода, скрипт должен выводить результат (например, вывод на экран или значение переменных).
- В случае ошибок в коде (например, синтаксических ошибок), скрипт должен предоставлять информацию о них и не завершать работу.
4. **Безопасность:**
- Скрипт должен обеспечивать безопасное выполнение кода пользователя, изолируя его от системных ресурсов.
- Скрипт должен предотвращать выполнение потенциально вредоносного кода (например, бесконечных циклов)
6. **Тестовые сценарии:**
- Разработать тестовые сценарии и набор тестовых данных для проверки скрипта.
8. **Ограничения по времени выполнения:**
- Добавить возможность установки ограничений по времени выполнения кода.
9. **Ограничения по ресурсам:**
- Добавить возможность установки ограничений по использованию ресурсов (память, процессорное время).
- запрещать библиотеки
**Ожидаемые результаты:**
Разработанный скрипт должен быть способен принимать и проверять Python-код (задачи разного уровня, могут быть методы, классы) предоставленный пользователями, и выдавать результаты выполнения, учитывая безопасность и стабильность выполнения кода. А также выполнять пошаговый показ(дебаг), выполнить проверку из тестов из бд, запустить код со входными данными пользователя и вывод ошибок
**Дополнительные комментарии:**
Технологический стек: python, фреймворк Django, htmx, js, css, html
Так же необходимо написать js скрипт, который будет динамически делать подсветку кода и нумерацию строк, а также при дебаг показывать на какой строке мы находимся и изменять глобальные данные. С помощью htmx отправлять код на сервер и получать ответ. А также в зависимости от ответа показывать тот или иной блок
Верстка уже готова, осталось добавить js и сделать скрипт для проверки на бэкенд
Пример интерпритатора https://pythontutor.ru/lessons/inout_and_arithmetic_operations/problems/aplusbplusc/
Описание: мы разрабатываем платформу, где можно будет решать задачи python и сразу
проверять свое решение. Интерпретатор должен быть с возможностью сделать дебаг, отображать глобальные переменные/данные, сделать проверку (тесты из нашей бд), запуск (проверить задачу на данных пользователя) и вывод ошибок
**Цель проекта:**
Разработать скрипт на языке Python, который будет выполнять автоматическую проверку задач, предоставленных пользователями в виде Python-кода, и выдавать результаты выполнения.
**Основные требования:**
1. **Входные данные:**
- Скрипт должен принимать на вход Python-код, предоставленный пользователем.
- Скрипт должен иметь возможность принимать дополнительные параметры, такие как входные данные для задачи (если требуется). Input или дополнительные строки для проверки
2. **Выполнение кода:**
- Скрипт должен выполнять предоставленный Python-код в изолированной среде для безопасности.
- Скрипт должен обрабатывать исключения и ошибки в коде пользователя, предоставляя информацию о них.
- выдавать рекомендации pip8
- предварительная проверка кода на уязвимость
3. **Оценка результатов:**
- Скрипт должен анализировать результат выполнения кода пользователя.
- В случае успешного выполнения кода, скрипт должен выводить результат (например, вывод на экран или значение переменных).
- В случае ошибок в коде (например, синтаксических ошибок), скрипт должен предоставлять информацию о них и не завершать работу.
4. **Безопасность:**
- Скрипт должен обеспечивать безопасное выполнение кода пользователя, изолируя его от системных ресурсов.
- Скрипт должен предотвращать выполнение потенциально вредоносного кода (например, бесконечных циклов)
6. **Тестовые сценарии:**
- Разработать тестовые сценарии и набор тестовых данных для проверки скрипта.
8. **Ограничения по времени выполнения:**
- Добавить возможность установки ограничений по времени выполнения кода.
9. **Ограничения по ресурсам:**
- Добавить возможность установки ограничений по использованию ресурсов (память, процессорное время).
- запрещать библиотеки
**Ожидаемые результаты:**
Разработанный скрипт должен быть способен принимать и проверять Python-код (задачи разного уровня, могут быть методы, классы) предоставленный пользователями, и выдавать результаты выполнения, учитывая безопасность и стабильность выполнения кода. А также выполнять пошаговый показ(дебаг), выполнить проверку из тестов из бд, запустить код со входными данными пользователя и вывод ошибок
**Дополнительные комментарии:**
Технологический стек: python, фреймворк Django, htmx, js, css, html
Так же необходимо написать js скрипт, который будет динамически делать подсветку кода и нумерацию строк, а также при дебаг показывать на какой строке мы находимся и изменять глобальные данные. С помощью htmx отправлять код на сервер и получать ответ. А также в зависимости от ответа показывать тот или иной блок
Верстка уже готова, осталось добавить js и сделать скрипт для проверки на бэкенд
Пример интерпритатора https://pythontutor.ru/lessons/inout_and_arithmetic_operations/problems/aplusbplusc/
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.