/stepik-internship

Tasks for summer internship at Stepik

Primary LanguagePython

Stepik-internship

Задание для летней стажировки в Stepic "Серверное приложение для машинного перевода обучающих материалов на платформе Stepik"

Установка

Приложение написано на Python 3, использовался фреймворк Flask, так как он более легковесный и быстрый, чем Django. Все библиотеки находятся в файле requirements.txt. Установка:

pip install -r requirements.txt

Запуск

python server.py

Тестирование

Чтобы протестировать приложение:

python server_tests.py

Нагрузочное тестирование

Для нагрузочного тестирования был использован wrk. Скачать и посмотреть инструкции по установке можно по здесь. После установки в отдельном окне при запущенном сервере надо ввести команду:

 wrk -t12 -c400 -d30s -s "test_loading.lua" http://127.0.0.1:5000/

Данный скрипт запустит тестирование в 12 потоков, 400 коннекшинов на 30 секунд с параметрами в файле test_loading.lua

API

/api/steps/lesson=<lesson_id> Параметры get запроса:

  • lesson_id - id запрашиваемого урока

Ответ:

  • ids - массив id степов

Замечания

Для продакшн версии неплохо было бы установить сервер gunicorn, а также записать все параметры и библиотеки в готовый docker образ.