External Testing Results (ETR) - приложение по отслеживанию посылок учеников на Codeforces API. В перспективе не только с Codeforces.
Документация для работы с API Codeforces
.
Исходники доступны по ссылке
.
Инструкция новичку
Первоначально необходимо получить исходники. Исходники etr можно найти, например, здесь
.
Для скачивания исходников необходимо установить git.
Далее открываем консоль (на windows можно нажать Win+R и написать cmd либо powershell). В консоли пишем
Также, исходники можно получить, например, через IDE.
Далее скачиваем и устанавливаем (если еще этого не сделали) любую IDE для Python. Рекомендую присмотреться к VS Code
или PyCharm
. В IDE открываем исходники.
Ниже указаны инструкции по запуску проекта.
Поздравляю! Вы можете запустить проект и следить за другими!
Стек технологий
Приложение написано на Flask. Для валидирования данных используется Pydantic. В качестве базы данных используется MySQL. Для работы с БД используется библиотека SQLAlchemy. Для работы с API Codeforces используется библиотека requests.
Как запустить?
Перед запуском необходимо проинициализировать файл .env. Пример находится в README.md
.
Для запуска достаточно прописать:
Более актуальная информация для запуска проекта может находится в README.md
.
Также, можно запустить в Docker образе. Все необходимы команды написаны в README.md.
Структура проекта
Общая информация
В проекте есть несколько модулей:
- models - представляет собой схему в базе данных. Каждый модуль отображает таблицу (в некоторых случаях таблицы) из базы данных;
- schemas - отвечает за валидирование данных на входе и на выходе;
- templates - содержит в себе шаблоны frontend части;
- views - отвечает за обработку пользовательских запросов.
How It's Made
На момент последней версии (v0.1.1) проект обрабатывает следующие запросы:
- GET /etr/user - возвращает html с таблицей всех пользователей в базе данных
- GET /etr/user/new - возвращает html форму для добавления нового пользователя
- POST /etr/user/new - принимает на вход handle с Codeforces и добавляет его в базу данных
- GET /etr/contest - возвращает html с таблицей всех отслеживаемых контестов
- GET /etr/contest/new - возвращает html форму для добавления нового контеста
- POST /etr/contest/new - ожидает id контеста и добавляет его в базу данных
- GET /etr/status - возвращает таблицу, содержащую все отправки отслеживаемых учеников (BBIWY) на отслеживаемые контесты
TODO проекта
Здесь собраны всевозможные хотелки, которые реализуем, реализуются или будут реализовываться.