# OzonGuard (AutoMarket) **OzonGuard** — это веб-приложение для быстрой подготовки, управления и отправки жалоб в службу поддержки маркетплейса Ozon на нарушителей (например, на копирование карточек товаров, нарушения интеллектуальной собственности и т.д.). ## Основной функционал - **Управление кейсами:** Создание новых жалоб (кейсов) с указанием ссылок на карточку нарушителя, его артикула и вашего артикула. - **Прикрепление доказательств:** Возможность загрузки файлов (изображений и PDF-документов) в качестве доказательной базы. - **Статусы кейсов:** Отслеживание процесса работы над жалобой по статусам: *Новый*, *Подготовлен*, *Отправлен*, *Закрыт*. - **Поиск и фильтрация:** Удобный поиск по артикулу или ссылке, а также фильтрация списка по текущему статусу жалобы. ## Технологический стек - **Frontend:** HTML5, CSS3, Vanilla JavaScript (без использования тяжеловесных фреймворков). - **Backend:** Python 3.9+, Flask, Werkzeug. - **База данных:** PostgreSQL. ## Установка и запуск (Linux/macOS) В проекте предусмотрен bash-скрипт `init.sh` для автоматической настройки окружения. 1. Убедитесь, что у вас установлены Python 3.9+ и PostgreSQL (`psql`). 2. При необходимости настройте подключение к БД в файле `backend/.env` (переменная `DATABASE_URL=postgresql://user:password@localhost:5432/dbname`). 3. Выполните скрипт инициализации из корневой директории: ```bash bash init.sh ``` **Что делает скрипт `init.sh`:** - Проверяет наличие Python 3 и создает виртуальное окружение `venv`. - Устанавливает Python-зависимости из файла `backend/requirements.txt`. - Инициализирует базу данных с помощью файла `db/init.sql` (если настроен `.env`). - Запускает локальный Flask-сервер на порту `5000`. ## Структура репозитория - `/frontend/` — статические файлы пользовательского интерфейса (страницы, стили, логика на JS). - `/backend/` — серверная часть на Flask (точка входа `app.py`, обработка маршрутов API в `routes/`). - `/db/` — SQL-скрипты для инициализации таблиц базы данных. - `init.sh` — стартовый скрипт для быстрого развертывания проекта.