Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PRICE TRACKER - ОТСЛЕЖИВАНИЕ ЦЕН НА ТОВАРЫ

Веб-приложение для отслеживания цен на товары из разных интернет-магазинов. Пользователи могут создавать поисковые запросы, и система будет автоматически находить товары и отслеживать изменение их цен.

ВОЗМОЖНОСТИ

  • Поиск товаров по названию из внешнего API
  • Отслеживание цен - сравнение с желаемой ценой
  • История изменений - процентное изменение цен с цветовой индикацией
  • Интуитивный интерфейс - адаптивный дизайн с Tailwind CSS
  • Пользовательские аккаунты - каждый пользователь видит только свои поиски
  • Автообновление - обновление данных о товарах по кнопке

ТЕХНОЛОГИЧЕСКИЙ СТЕК

  • Backend: Django 4.x
  • Frontend: HTML5, Tailwind CSS, JavaScript
  • Database: PostgreSQL
  • API: Внешний JSON API для получения данных о товарах

УСТАНОВКА И ЗАПУСК

ТРЕБОВАНИЯ

  • Python 3.8+
  • pip
  • Git

ШАГ 1: КЛОНИРОВАНИЕ РЕПОЗИТОРИЯ

git clone https://github.com/pulsvr/project_tracker
cd project_tracker

ШАГ 2: СОЗДАНИЕ ВИРТУАЛЬНОГО ОКРУЖЕНИЯ

# Для Windows
python -m venv venv
venv\Scripts\activate

# Для Linux/Mac
python3 -m venv venv
source venv/bin/activate

ШАГ 3: УСТАНОВКА ЗАВИСИМОСТЕЙ

pip install -r requirements.txt

Если файла requirements.txt нет, установите зависимости вручную:

pip install django django-crispy-forms django-crispy-bootstrap4 requests python-decouple

ШАГ 4: НАСТРОЙКА ПЕРЕМЕННЫХ ОКРУЖЕНИЯ

Создайте файл .env в корне проекта:

DEBUG=True
SECRET_KEY=ваш-секретный-ключ-здесь
SEARCH_API_URL=http://localhost:3000/products

ШАГ 5: МИГРАЦИИ БАЗЫ ДАННЫХ

python manage.py makemigrations
python manage.py migrate

ШАГ 6: СОЗДАНИЕ СУПЕРПОЛЬЗОВАТЕЛЯ (ОПЦИОНАЛЬНО)

python manage.py createsuperuser

ШАГ 7: ЗАПУСК СЕРВЕРА РАЗРАБОТКИ

python manage.py runserver

Приложение будет доступно по адресу: http://127.0.0.1:8000

СТРУКТУРА ПРОЕКТА

project_tracker/
├── manage.py                 # Управление Django
├── requirements.txt          # Зависимости Python
├── .env                     # Переменные окружения
├── README.md                 # Этот файл
└── project_tracker/          # Основной пакет Django
    ├── settings.py          # Настройки проекта
    ├── urls.py              # URL-маршруты
    ├── searches/            # Приложение поиска
    │   ├── models.py        # Модели данных
    │   ├── views.py         # Логика представлений
    │   ├── templates/       # HTML-шаблоны
    │   └── urls.py          # URL-маршруты поиска
    └── users/               # Приложение пользователей
        ├── models.py        # Модель пользователя
        ├── views.py         # Аутентификация
        └── templates/       # Шаблоны пользователей

ИСПОЛЬЗОВАНИЕ

1. РЕГИСТРАЦИЯ И ВХОД

  • Зарегистрируйте новый аккаунт или войдите в существующий
  • Все данные привязаны к вашему пользователю

2. СОЗДАНИЕ ПОИСКА

  1. Нажмите "Создать новый поиск"
  2. Введите название товара (например, "iPhone 13")
  3. Укажите желаемую цену
  4. Система найдет все подходящие товары

3. ОТСЛЕЖИВАНИЕ ЦЕН

  • Зеленая цена - товар дешевле желаемой цены
  • Красная цена - товар дороже желаемой цены
  • История цен - показывает процент изменения:
    • Зеленый - цена упала
    • Красный - цена выросла

4. ОБНОВЛЕНИЕ ДАННЫХ

  • Нажмите "Обновить поиск" для получения актуальных цен
  • Система автоматически пересчитает минимальную цену и статистику

API ИНТЕГРАЦИЯ

Проект использует внешний JSON API для получения данных о товарах. Настройте URL API в переменной окружения SEARCH_API_URL.

Ожидаемый формат ответа API:

{
  "products": [
    {
      "id": 1,
      "name": "iPhone 13 Pro",
      "price": 89990,
      "image": "https://example.com/image.jpg",
      "product_url": "https://shop.example.com/iphone13"
    }
  ]
}

ОСОБЕННОСТИ РЕАЛИЗАЦИИ

ПОИСК И СОРТИРОВКА ТОВАРОВ

  • Умный поиск: ищет по всем словам из запроса без учета регистра
  • Релевантность: сортирует результаты по совпадению слов
  • Ценовая сортировка: товары отображаются по возрастанию цены
  • Обработка ошибок: товары без цен или некорректными данными обрабатываются корректно

БЕЗОПАСНОСТЬ

  • Все запросы требуют аутентификации
  • Пользователи видят только свои данные
  • Защита от CSRF-атак
  • Валидация входных данных

ПРОИЗВОДИТЕЛЬНОСТЬ

  • Кэширование запросов к API
  • Оптимизированные запросы к базе данных
  • Ленивая загрузка изображений

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages