feat(core): add core module with mixins, services, and background jobs
- Add Model Mixins: TimestampMixin, SoftDeleteMixin, AuditMixin, etc. - Add Base Services: BaseService, BulkOperationsMixin, QueryOptimizerMixin - Add Base ViewSets with bulk operations - Add BackgroundJob model for Celery task tracking - Add BaseAppCommand for management commands - Add permissions, pagination, filters, cache, logging - Migrate tests to factory_boy + faker - Add CHANGELOG.md - 297 tests passing
This commit is contained in:
109
README.md
109
README.md
@@ -17,21 +17,24 @@
|
||||
## Структура проекта
|
||||
|
||||
```
|
||||
src/
|
||||
├── config/ # Конфигурация Django
|
||||
│ ├── settings/ # Настройки (base, dev, prod)
|
||||
│ ├── celery.py # Конфигурация Celery
|
||||
│ └── urls.py # URL маршруты
|
||||
├── apps/
|
||||
│ ├── data_processor/ # Приложение обработки данных
|
||||
│ ├── scraping/ # Приложение веб-скрапинга
|
||||
│ └── api/ # API endpoints
|
||||
└── manage.py # Управление Django
|
||||
|
||||
docker/ # Docker конфигурации
|
||||
deploy/ # Файлы развертывания
|
||||
requirements.txt # Основные зависимости
|
||||
requirements-dev.txt # Зависимости для разработки
|
||||
mostovik-backend/
|
||||
├── src/ # Исходный код Django
|
||||
│ ├── config/ # Конфигурация Django
|
||||
│ │ ├── settings/ # Настройки (base, dev, prod, test)
|
||||
│ │ ├── celery.py # Конфигурация Celery
|
||||
│ │ └── urls.py # URL маршруты
|
||||
│ ├── apps/ # Django приложения
|
||||
│ │ └── user/ # Приложение пользователей
|
||||
│ └── manage.py # Управление Django
|
||||
├── tests/ # Тесты (в корне проекта)
|
||||
│ ├── apps/user/ # Тесты для user app
|
||||
│ ├── conftest.py # Конфигурация pytest
|
||||
│ └── README.md # Документация по тестам
|
||||
├── docker/ # Docker конфигурации
|
||||
├── deploy/ # Файлы развертывания
|
||||
├── pyproject.toml # Конфигурация проекта и инструментов
|
||||
├── Makefile # Команды для разработки
|
||||
└── docker-compose.yml # Docker Compose для разработки
|
||||
```
|
||||
|
||||
## Быстрый старт (локальная разработка)
|
||||
@@ -44,12 +47,17 @@ curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||
source $HOME/.cargo/env
|
||||
|
||||
# Создание виртуального окружения с uv
|
||||
uv venv venv
|
||||
source venv/bin/activate
|
||||
uv venv .venv
|
||||
source .venv/bin/activate
|
||||
|
||||
# Установка зависимостей через uv
|
||||
uv pip install -r requirements.txt
|
||||
uv pip install -r requirements-dev.txt
|
||||
uv pip install -e ".[dev]"
|
||||
|
||||
# Или через Makefile
|
||||
make install
|
||||
|
||||
# Настройка окружения разработки (pre-commit hooks)
|
||||
make setup-dev
|
||||
```
|
||||
|
||||
### 2. Настройка окружения
|
||||
@@ -207,20 +215,40 @@ celery -A config flower
|
||||
### Запуск тестов
|
||||
```bash
|
||||
# Запуск всех тестов
|
||||
pytest
|
||||
make test
|
||||
|
||||
# Запуск с покрытием
|
||||
pytest --cov=src
|
||||
make test-cov
|
||||
|
||||
# Запуск линтеров
|
||||
flake8 src/
|
||||
black src/
|
||||
# Запуск только быстрых тестов
|
||||
make test-fast
|
||||
|
||||
# Запуск тестов конкретного модуля
|
||||
make test TARGET=user
|
||||
|
||||
# Линтинг и форматирование
|
||||
make lint
|
||||
make format
|
||||
|
||||
# Проверка типов
|
||||
make type-check
|
||||
|
||||
# Проверка безопасности
|
||||
make security-check
|
||||
```
|
||||
|
||||
### Создание миграций
|
||||
```bash
|
||||
# Через Makefile
|
||||
make migrate
|
||||
|
||||
# Или напрямую
|
||||
cd src
|
||||
python manage.py makemigrations
|
||||
python manage.py migrate
|
||||
|
||||
# Создание суперпользователя
|
||||
make createsuperuser
|
||||
```
|
||||
|
||||
### Работа с задачами Celery
|
||||
@@ -234,6 +262,39 @@ result = process_extracted_data.delay()
|
||||
print(result.id) # ID задачи
|
||||
```
|
||||
|
||||
## Конфигурация инструментов
|
||||
|
||||
Все конфигурации инструментов разработки централизованы в файле `pyproject.toml`:
|
||||
|
||||
- **pytest**: настройки тестирования
|
||||
- **coverage**: отчеты о покрытии кода
|
||||
- **ruff**: линтинг и форматирование
|
||||
- **black**: форматирование кода
|
||||
- **isort**: сортировка импортов
|
||||
- **mypy**: проверка типов
|
||||
- **bandit**: проверка безопасности
|
||||
|
||||
### Полезные команды Make
|
||||
|
||||
```bash
|
||||
# Качество кода
|
||||
make lint # Проверка линтерами
|
||||
make format # Форматирование кода
|
||||
make type-check # Проверка типов
|
||||
make security-check # Проверка безопасности
|
||||
make pre-commit # Запуск всех pre-commit hooks
|
||||
|
||||
# Тестирование
|
||||
make test # Все тесты
|
||||
make test-cov # Тесты с покрытием
|
||||
make test-fast # Только быстрые тесты
|
||||
|
||||
# Разработка
|
||||
make shell # Django shell
|
||||
make migrate # Миграции
|
||||
make clean # Очистка временных файлов
|
||||
```
|
||||
|
||||
## Безопасность
|
||||
|
||||
- Все секретные ключи хранятся в переменных окружения
|
||||
|
||||
Reference in New Issue
Block a user