Локальное GUI-приложение для работы с Wildberries API.
Портфолио-проект на Python для демонстрации:
- работы с внешним API;
- GUI-разработки;
- локального хранения данных;
- безопасного хранения API-ключей;
- работы с JSON-схемами;
- импорта локальных выгрузок;
- проектирования прав доступа.
- ввод и хранение API-ключей WB и Ozon;
- проверка живости ключа: WB — пинг разделов API по правам токена, Ozon — отдельная проверка Seller и Performance credentials;
- тестирование методов Wildberries API;
- просмотр request/response JSON;
- сохранение raw JSON в локальную БД;
- импорт JSON / CSV / Excel выгрузок;
- роли доступа: Viewer, Tester, Operator, Admin;
- история запросов;
- локальное обновление API-схем.
| Keys | Users | Diagnostics |
|---|---|---|
![]() |
![]() |
![]() |
Версия v0.4 — API и данные (в работе).
- структура проекта, Git, виртуальное окружение, pyproject.toml;
- ролевая модель доступа (Viewer / Tester / Operator / Admin) и единая матрица прав;
- режимы Test / Real с правилом доступа к Real, роль и режим переживают перезапуск приложения (запоминаются после Apply Settings);
- логика пользователей: создание, защита от дублей, поиск, смена роли, деактивация, JSON-персистентность (переживают перезапуск);
- три варианта хранения ключей: keyring, шифрованный файл, сессия;
- диагностика окружения;
- декодер JWT-ключей WB (кабинет, права по битам, срок действия);
- проверка живости ключей: WB (пинг разделов) и Ozon (Seller + Performance);
- БД-слой подключён: SQLite создаётся при старте, CRUD-репозитории для ключей и истории запросов, метаданные ключа несут маркетплейс и тип;
- GUI-каркас и все основные разделы: Diagnostics, Settings, Users, Keys (WB + Ozon: сохранение, проверка живости, список с масками), API Tester (GET/POST, выбор раздела WB API — у каждого свой хост, Test mode с временным ключом / Real mode с сохранённым, опциональное сохранение ответа в историю запросов);
- main_window.py разобран на секции-миксины (app/gui/sections/) — было 978 строк одним классом, стало ~250 строк каркаса + разделы по файлам;
- 127 тестов (pytest) на core-логике + скриптовый смоук-тест на GUI.
- импорт локальных выгрузок (Imports) и раздел History;
- кэширование результата проверки ключа (чтобы не дёргать API на каждый клик);
- реальная таблица для списка ключей в Keys вместо текстового вывода;
- реальная аутентификация (сейчас роль — просто дропдаун в Settings, без проверки личности);
- актуальные скриншоты (текущие — до рефакторинга и до API Tester).


