API для управления иерархической сетью поставщиков с системой контроля продуктов и контактов.
- Полноценный CRUD для звеньев сети (Завод / Розничная сеть / ИП)
- Кастомная модель пользователя с email-авторизацией
- JWT-аутентификация с refresh-токенами
- Автоматическое определение уровня в иерархии
- Интеграция с Celery для асинхронных задач
- Документированное API (Swagger / Redoc)
- Блокировка пользователя который не входил в сеть больше 45 дней (разблокировка через админку)
| Компонент | Технология |
|---|---|
| Backend | Django 5.2.1 + DRF 3.16 |
| База данных | PostgreSQL 15 |
| Аутентификация | JWT (SimpleJWT) |
| Документация | drf-yasg |
| Асинхронные задачи | Celery + Redis |
| Тестирование | pytest (86% покрытие) |
# Клонирование репозитория
git clone https://github.com/AlPogorelov/CertificationProject.git
cd CertificationProject
# Создание виртуального окружения
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
# Установка зависимостей
pip install -r requirements.txt
# Настройка файла окружения
cp .env.example .env
nano .env # Заполните параметры конфигурацииSECRET_KEY=your-secret-key
POSTGRES_DB=supplier_network
POSTGRES_USER=supplier_user
POSTGRES_PASSWORD=yourpassword
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
# Для Celery
CELERY_BROKER_URL=redis://localhost:6379/0
CELERY_RESULT_BACKEND=redis://localhost:6379/1
python manage.py migrate
python manage.py createsuperuser
python manage.py runserverПосле запуска сервера API будет доступен по адресу: http://localhost:8000/
| Метод | Endpoint | Описание |
|---|---|---|
| POST | /api/token/ | Получение JWT токена |
| POST | /api/token/refresh/ | Обновление токена |
- По стране контакта:
?country=Russia - По уровню поставщика:
?level=0(завод),?level=1(розница),?level=2(ИП)
Доступна после запуска сервера:
- Swagger UI: http://localhost:8000/swagger/
- ReDoc: http://localhost:8000/redoc/
# Запуск тестов
python manage.py test .
# Генерация отчета покрытия
coverage html
open htmlcov/index.htmlCertificationProject/
├── config/ # Основные настройки проекта
├── network/ # Модуль сети поставщиков
│ ├── models/ # Модели данных
│ ├── api/ # API эндпоинты
│ └── tests/ # Тесты (86% покрытие)
├── users/ # Модуль аутентификации
├── .env.example # Шаблон файла окружения
└── requirements.txt # Зависимости
- Александр Погорелов — eczempl@gmail.com
- GitHub профиль: https://github.com/AlPogorelov
- Репозиторий проекта: https://github.com/AlPogorelov/CertificationProject