Для запуска ПО вам понадобятся консольный Git, Make, Docker и Docker Compose. Инструкции по их установке ищите на официальных сайтах:
Для тех, кто использует Windows необходимы также программы git и git bash. В git bash надо добавить ещё команду make:
- Go to ezwinports
- Download make-4.2.1-without-guile-w32-bin.zip (get the version without guile)
- Extract zip
- Copy the contents to C:\ProgramFiles\Git\mingw64\ merging the folders, but do NOT overwrite/replace any exisiting files.
Все дальнейшие команды запускать из-под git bash.
Для локального развертывания приложения необходимо создать в корне проекта файл .env. Сейчас можете оставитье его пустым:
$ touch .envПоложите в .env MOCK_API_SETTINGS__TOKEN. Токен был выслан в сообщении.
Склонируйте репозиторий.
Сначала скачайте и соберите докер-образы с помощью Docker Сompose:
$ docker compose pull --ignore-buildable
$ docker compose buildЗапустите докер-контейнеры и не выключайте:
$ docker compose upПримените миграции
$ make migrateВы можете создать суперпользователя командой:
$ make create_superuserПосле выполнения команды в системе создастся суперпользователь с реквизитами:
admin, парольadmin123
Сайт доступен по адресу 127.0.0.1:8000. Вход в админку находится по адресу http://127.0.0.1:8000/admin/.
После запуска проекта задача будет запущена автоматически, она будет выполняться каждые 2 минуты.
Настроить задачу можно в файле src/webapp/celery.py
Для часто используемых команд Docker Compose подготовлен набор альтернативных коротких команд make.
Полный набор доступных команд make и их скриптов можно найти в файле Makefile. Тот же список доступных команд можно вывести в консоль через встроенную справку:
$ make help
Cписок доступных команд:
lint Проверяет линтерами код в репозитории
format Запуск автоформатера
makemigrations Создаёт новые файлы миграций Django ORM
migrate Применяет новые миграции Django ORM
create_superuser Создаёт суперпользователя с кредами admin:admin123
test Создаёт суперпользователя с кредами admin:admin123
help Отображает список доступных команд и их описанияВ проекте используются автотесты pytest. Можно запустить их командой:
make test[
{
"updated_at": "2025-11-13T06:08:27.605Z",
"name": "Pizza",
"price": "866.75",
"category": "Health",
"id": "1"
},
{
"updated_at": "2025-11-12T17:38:33.904Z",
"name": "Soap",
"price": "881.09",
"category": "Kids",
"id": "2"
},
{
"updated_at": "2025-11-13T07:26:47.403Z",
"name": "Chicken",
"price": "960.19",
"category": "Tools",
"id": "3"
},
{
"updated_at": "2025-11-12T20:55:04.853Z",
"name": "Chicken",
"price": "177.45",
"category": "Jewelry",
"id": "4"
}
]
curl 'http://127.0.0.1:8000/api/v1/items/?&price_min=600'
curl 'http://127.0.0.1:8000/api/v1/items/?&price_min=600&price_max=700'
curl 'http://127.0.0.1:8000/api/v1/items/?category=home&price_min=500'
curl 'http://127.0.0.1:8000/api/v1/stats/avg-price-by-category/'