Skip to content

Hexlet/tg-marketing-service

Repository files navigation

PriceAggregator 1.0

Описание

SPA веб-приложение. Единый портал для сравнения цен для сегментов B2C.

Фронтенд-стэк

  • Typescript
  • React 19
  • Redux Toolkit: упраление состоянием
  • React Router: клиентский роутинг
  • React Hook Form: формы
  • Vite
  • shadcn/ui с Tailwind СSS
  • см. другие зависимости в package.json

Бэкенд-стек

  • Python
  • Django
  • PostgreSQL
  • Docker
  • GitHub Actions
  • см. другие зависимости в package.json

Локальная установка

Для запуска приложения на локальном сервере необходима настройка Django, Telegram. Для полноценной работы приложения на локальном сервере необходима настройка Redis, Celery (запускаются в отдельном терминале).

Telegram

Настройка Telegram нужна для парсинга данных.

  1. Авторизуйтесь на My Telegram с помощью номера телефона вашего Telegram аккаунта.

CLI

1.1. Запустите команду set_telegram_session: uv run python manage.py set_telegram_session 1.2. Передайте в команде параметры "API_ID", "API_HASH", "PHONE" для первой настройки клиента Telegram. Также передайте StringSession для запуска уже сохраненной версии клиента Telegram.

.env

2.1. В .env присвойте переменной "PHONE" 2.2. Перейдите на API development tools. 2.3. Заполните поля "App configuration". Если поля уже заполнены, не меняйте их. 2.4. Сохраните настройки 2.5. В .env присвойте переменной "TELEGRAM_API_ID" значение "App api_id", "TELEGRAM_API_HASH" значение "App api_hash" 2.6. Запустите команду set_telegram_session: uv run python manage.py set_telegram_session

Бэкенд (запуск через Make)

  1. Примените миграции базы данных:

    make migrate
  2. Соберите статические файлы (требуется только для продакшена):

    make collectstatic
  3. Запустите dev сервер Django (требуется только для разработки):

    make dev

    По умолчанию сервер доступен на http://127.0.0.1:8000. Порт задаётся переменной PORT в Makefile.

  4. Запустите prod-сервер на Gunicorn (требуется только для продакшена):

    make prod-run

    Можно указать порт: make prod-run PORT=8080. См. настройки в config/settings.py.

Фоновые задачи (Redis + Celery). Запускаются в отдельном терминале.

  1. Запустите Redis:

    make redis
  2. Запустите Celery worker:

    make celery
  3. Запустите планировщик задач Celery Beat:

    make celery-beat

    Плановые задачи настраиваются в config/settings.py (CELERY_BEAT_SCHEDULE).

  4. Откройте мониторинг задач (Flower) (используется только для разработки):

    make flower

Утилиты

  1. Сгенерируйте/обновите Telegram сессию через management команду (запускает uv run python manage.py set_telegram_session):
    make s

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 22