Skip to content

Norgius/test_project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Разработчикам бэкенда

Как развернуть local-окружение

Необходимое ПО

Для запуска ПО вам понадобятся консольный 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

Для локального развертывания приложения необходимо создать в корне проекта файл .env. Сейчас можете оставитье его пустым:

$ touch .env

Положите в .env MOCK_API_SETTINGS__TOKEN. Токен был выслан в сообщении.

Работа с кодом с использованием docker

Склонируйте репозиторий.

Сначала скачайте и соберите докер-образы с помощью 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/.

Запуск периодической задачи Celery

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

Настроить задачу можно в файле src/webapp/celery.py

Команды для быстрого запуска с помощью make

Для часто используемых команд 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

Пример моковых данных из API

[
  {
    "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"
  }
]

Примеры запросов к API

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/'

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors