Веб-приложение для отслеживания цен на товары из разных интернет-магазинов. Пользователи могут создавать поисковые запросы, и система будет автоматически находить товары и отслеживать изменение их цен.
- Поиск товаров по названию из внешнего API
- Отслеживание цен - сравнение с желаемой ценой
- История изменений - процентное изменение цен с цветовой индикацией
- Интуитивный интерфейс - адаптивный дизайн с Tailwind CSS
- Пользовательские аккаунты - каждый пользователь видит только свои поиски
- Автообновление - обновление данных о товарах по кнопке
- Backend: Django 4.x
- Frontend: HTML5, Tailwind CSS, JavaScript
- Database: PostgreSQL
- API: Внешний JSON API для получения данных о товарах
- Python 3.8+
- pip
- Git
git clone https://github.com/pulsvr/project_tracker
cd project_tracker# Для Windows
python -m venv venv
venv\Scripts\activate
# Для Linux/Mac
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txtЕсли файла requirements.txt нет, установите зависимости вручную:
pip install django django-crispy-forms django-crispy-bootstrap4 requests python-decoupleСоздайте файл .env в корне проекта:
DEBUG=True
SECRET_KEY=ваш-секретный-ключ-здесь
SEARCH_API_URL=http://localhost:3000/productspython manage.py makemigrations
python manage.py migratepython manage.py createsuperuserpython 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/ # Шаблоны пользователей
- Зарегистрируйте новый аккаунт или войдите в существующий
- Все данные привязаны к вашему пользователю
- Нажмите "Создать новый поиск"
- Введите название товара (например, "iPhone 13")
- Укажите желаемую цену
- Система найдет все подходящие товары
- Зеленая цена - товар дешевле желаемой цены
- Красная цена - товар дороже желаемой цены
- История цен - показывает процент изменения:
- Зеленый - цена упала
- Красный - цена выросла
- Нажмите "Обновить поиск" для получения актуальных цен
- Система автоматически пересчитает минимальную цену и статистику
Проект использует внешний 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
- Оптимизированные запросы к базе данных
- Ленивая загрузка изображений