Skip to content

API микросервиса для сбора статистики

Notifications You must be signed in to change notification settings

blakkheart/statistic_test_task

Repository files navigation

📈 Сбор статистики 📈

Описание

Микросервис для счетчиков статистики. Сервис взаимодействует с клиентом при помощи REST API запросов.

API методы:

  • Метод сохранения статистики. Принимает на вход:

    • date — дата события str
    • views — количество показов int
    • clicks — количество кликов int
    • cost — стоимость кликов (в рублях с точностью до копеек) float

    Поля views, clicks и cost — опциональные.

  • Метод показа статистики. Принимает на вход:

    • from — дата начала периода (включительно)
    • to — дата окончания периода (включительно)
    • sort_by — сортировка по выбранному полю в ответе (опционально) Дата передается в формате YYYY-MM-DD

    Отвечает статистикой, отсортированной по дате. В ответе поля:

    • date — дата события
    • views — количество показов
    • clicks — количество кликов
    • cost — стоимость кликов
    • cpc — cost/clicks (средняя стоимость клика)
    • cpm — cost/views * 1000 (средняя стоимость 1000 показов)
  • Метод сброса статистики

    Удаляет всю сохраненную статистику.

Стэк технологий

Установка

  1. Склонируйте репозиторий:
git clone https://github.com/blakkheart/statistic_test_task.git
  1. Перейдите в директорию проекта:
cd statistic_test_task
  1. Установите и активируйте виртуальное окружение:
    • Windows
    python -m venv venv
    .\venv\Scripts\activate
    • Linux/macOS
    python3 -m venv venv
    source venv/bin/activate
  2. Обновите pip:
    • Windows
    (venv) python -m pip install --upgrade pip
    • Linux/macOS
    (venv) python3 -m pip install --upgrade pip
  3. Установите зависимости из файла requirements.txt:
    (venv) pip install -r backend/requirements.txt

Создайте и заполните файл .env по примеру с файлом .env.example, который находится в корневой директории.

Использование

  1. Введите команду для запуска докер-контейнера:
    docker compose up
  2. Примените миграции:
    docker compose exec backend alembic upgrade head

Сервер запустится по адресу 127.0.0.1:8000 Вы можете посмотреть документацию по адресу 127.0.0.1:8000/docs

Дополнительно

Также можно прогнать тесты с помощью команды:

	docker compose exec backend pytest