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 нужна для парсинга данных.
- Авторизуйтесь на My Telegram с помощью номера телефона вашего Telegram аккаунта.
1.1. Запустите команду set_telegram_session: uv run python manage.py set_telegram_session
1.2. Передайте в команде параметры "API_ID", "API_HASH", "PHONE" для первой настройки клиента Telegram. Также передайте StringSession для запуска уже сохраненной версии клиента Telegram.
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 migrate
-
Соберите статические файлы (требуется только для продакшена):
make collectstatic
-
Запустите dev сервер Django (требуется только для разработки):
make dev
По умолчанию сервер доступен на http://127.0.0.1:8000. Порт задаётся переменной PORT в
Makefile. -
Запустите prod-сервер на Gunicorn (требуется только для продакшена):
make prod-run
Можно указать порт:
make prod-run PORT=8080. См. настройки вconfig/settings.py.
-
Запустите Redis:
make redis
-
Запустите Celery worker:
make celery
-
Запустите планировщик задач Celery Beat:
make celery-beat
Плановые задачи настраиваются в
config/settings.py(CELERY_BEAT_SCHEDULE). -
Откройте мониторинг задач (Flower) (используется только для разработки):
make flower
- Сгенерируйте/обновите Telegram сессию через management команду (запускает uv run python manage.py set_telegram_session):
make s