WnSOJ. Спортивное программирование

Содержание

Слайд 2

Введение

Многие, кто профессионально занимаются программированием, возможно, слышали про спортивное программирование. Для решения

Введение Многие, кто профессионально занимаются программированием, возможно, слышали про спортивное программирование. Для
задач спортивного программирования существуют “Online Judge”, т.е. сайт с архивом задач и системой тестирования.
WnSOJ - одна из таких платформ. Отличие данной платформы от других состоит в том, что:
Сервер и тестирующая система написаны с помощью возможностей языка Python. Один из самых важных плюсов тестирующей системы - это быстрая проверка решения, даже если процессор сервера медленный. Также, сервер и тестирующая система работают одновременно с помощью технологии параллелизма, благодаря библиотеке multiprocessing.
Также, помимо архива задач, на сайте есть возможность искать, а также публиковать/редактировать/удалять работу.

Слайд 3

Скриншот главной страницы

Скриншот главной страницы

Слайд 4

Архитектура проекта

Сервер написан с помощью фреймворка Flask. Для поддержки форм использовался компонент

Архитектура проекта Сервер написан с помощью фреймворка Flask. Для поддержки форм использовался
WT Forms. Также для хранения информации используется база данных.
Для поддержки базы данных использовалась библиотека SQLAlchemy и её возможности. Реализовано 4 класса-таблиц; 4 many-to-many модели; 4 one-to-many модели.
Тестирующая система написана с помощью библиотеки subprocess и psutil.
Для одновременной работы сервера и тестирующей системы использована библиотека multiprocessing.
Вспомогательные библиотеки: PIL, zipfile, io, datetime, os.

Слайд 5

Компоненты интерфейса

Для создания интерфейса использованы возможности Bootstrap и JQuery. Также были использованы

Компоненты интерфейса Для создания интерфейса использованы возможности Bootstrap и JQuery. Также были
плагины:
CodeMirror - для показа кода
MathJax - для написания математических выражений
Zero-MD - для показа Markdown файлов

Слайд 6

Возможности. Задачи и посылки

Чтобы отправить решение, вам необходимо авторизоваться в системе. Вы

Возможности. Задачи и посылки Чтобы отправить решение, вам необходимо авторизоваться в системе.
можете зарегистрироваться или войти в существующий аккаунт и отправить решение. Система автоматически проверит ваше решение и сообщит вердикт, максимально использованное время и максимальное количество используемой памяти. Как и говорилось ранее, одним из плюсов системы является то, что она хорошо оптимизирована - она быстро тестирует решение и выносит вердикт, даже если процессор сервера медленный.
Также, у каждой задачи есть разбор и решение на языке C++.
Администраторы могут добавлять новые задачи.

Слайд 7

Возможности. Поиск работы

Вы также можете искать или публиковать/редактировать/удалять работу.
Есть 2 типа аккаунтов:

Возможности. Поиск работы Вы также можете искать или публиковать/редактировать/удалять работу. Есть 2

Обычный аккаунт - эти пользователи могут находить работу и общаться с работодателями по электронной почте или телефону. Откройте вакансию, которая вам понравилась, прочтите описание и, если работа вам подходит, свяжитесь с работодателем по электронной почте или телефону.
Бизнес-аккаунт - эти пользователи или компании могут публиковать, редактировать или удалять вакансии, а также находить и общаться по электронной почте или телефону с другими пользователями. Опубликуйте вакансию, при необходимости отредактируйте и просто дождитесь, пока какой-нибудь квалифицированный специалист свяжется с вами по электронной почте или телефону.
Также, администраторы могут добавлять работу, а также редактировать/удалять любую другую.

Слайд 8

Возможности. Профиль

В профиле вы можете увидеть имя пользователя, адрес электронной почты, номер

Возможности. Профиль В профиле вы можете увидеть имя пользователя, адрес электронной почты,
телефона и статистику о задачах: последние 10 отправок и статистику вердиктов.
Также, если это бизнес-аккаунт, Вы можете с помощью фильтра просмотреть работы именно этого работодателя.
Также вы можете изменить аватар и пароль своего аккаунта.

Слайд 9

Возможности. API

Платформа богата API. В API вы можете запросить:
список пользователей и пользователь

Возможности. API Платформа богата API. В API вы можете запросить: список пользователей
по id
список вакансий и вакансии по id
список посылок и посылка по id
список задач и задача по id
API находится по адресу http://127.0.0.1:5000/api/v1.

Слайд 10

Пример API

Запрос: http://127.0.0.1:5000/api/v1/user/1
Ответ:

Запрос: http://127.0.0.1:5000/api/v1/submission/1
Ответ:

Пример API Запрос: http://127.0.0.1:5000/api/v1/user/1 Ответ: Запрос: http://127.0.0.1:5000/api/v1/submission/1 Ответ:
Имя файла: WnSOJ.-Спортивное-программирование.pptx
Количество просмотров: 24
Количество скачиваний: 0