- Organize files into logical directories (docs/, scripts/, tests/) - Add comprehensive documentation (README, CONTRIBUTING, CHANGELOG) - Create deployment automation scripts - Add Docker production configuration - Update .gitignore and add .dockerignore - Remove temporary and test files from root - Improve settings.py with DEBUG from env variable Added: - README.md with project overview - CONTRIBUTING.md for contributors - CHANGELOG.md for version tracking - PROJECT_STATUS.md with current state - docker-compose.prod.yml for production - nginx.conf for production web server - scripts/deploy.sh for automated deployment - scripts/check-config.sh for configuration validation - scripts/setup-ssl.sh for SSL certificate setup - docs/DEPLOYMENT.md with detailed deployment guide - docs/ENV_VARIABLES.md with all environment variables Moved: - Documentation to docs/ - Scripts to scripts/ - Test files to tests/ Removed: - .history/ directory - Test response JSON files from root - settings_production.py (merged into settings.py) This commit prepares the project for: - Production deployment - Team collaboration - Docker containerization - Proper documentation
256 lines
7.2 KiB
Markdown
256 lines
7.2 KiB
Markdown
# Contributing to SmartSolTech
|
||
|
||
Спасибо за интерес к проекту SmartSolTech! Это руководство поможет вам начать работу.
|
||
|
||
## 🚀 Начало работы
|
||
|
||
### Требования для разработки
|
||
|
||
- Python 3.10+
|
||
- Docker & Docker Compose
|
||
- Git
|
||
- Базовые знания Django
|
||
|
||
### Настройка окружения для разработки
|
||
|
||
1. **Клонируйте репозиторий**
|
||
```bash
|
||
git clone <repository-url>
|
||
cd smartsoltech.kr-master
|
||
```
|
||
|
||
2. **Создайте .env файл**
|
||
```bash
|
||
cp .env.example .env
|
||
# Отредактируйте .env с вашими настройками
|
||
```
|
||
|
||
3. **Запустите проект**
|
||
```bash
|
||
docker-compose up -d
|
||
```
|
||
|
||
4. **Примените миграции**
|
||
```bash
|
||
docker-compose exec web python smartsoltech/manage.py migrate
|
||
```
|
||
|
||
5. **Создайте суперпользователя**
|
||
```bash
|
||
docker-compose exec web python smartsoltech/manage.py createsuperuser
|
||
```
|
||
|
||
## 📝 Соглашения о коде
|
||
|
||
### Python / Django
|
||
|
||
- Следуйте PEP 8
|
||
- Используйте type hints где возможно
|
||
- Документируйте функции и классы docstrings
|
||
- Максимальная длина строки: 120 символов
|
||
|
||
**Пример:**
|
||
```python
|
||
def send_telegram_notification(chat_id: str, message: str) -> bool:
|
||
"""
|
||
Отправляет уведомление в Telegram.
|
||
|
||
Args:
|
||
chat_id: ID чата Telegram
|
||
message: Текст сообщения
|
||
|
||
Returns:
|
||
True если сообщение отправлено успешно, False иначе
|
||
"""
|
||
pass
|
||
```
|
||
|
||
### Структура коммитов
|
||
|
||
Используйте понятные сообщения коммитов:
|
||
|
||
```
|
||
<type>: <subject>
|
||
|
||
<body>
|
||
|
||
<footer>
|
||
```
|
||
|
||
**Типы:**
|
||
- `feat`: Новая функция
|
||
- `fix`: Исправление бага
|
||
- `docs`: Изменения в документации
|
||
- `style`: Форматирование кода
|
||
- `refactor`: Рефакторинг
|
||
- `test`: Добавление тестов
|
||
- `chore`: Рутинные задачи
|
||
|
||
**Примеры:**
|
||
```
|
||
feat: add QR code generation for service requests
|
||
|
||
- Implement QR code generation using qrcode library
|
||
- Add QR code display in frontend
|
||
- Update ServiceRequest model with token field
|
||
|
||
Closes #123
|
||
```
|
||
|
||
## 🔄 Процесс разработки
|
||
|
||
### 1. Создайте ветку
|
||
|
||
```bash
|
||
git checkout -b feature/your-feature-name
|
||
# или
|
||
git checkout -b fix/bug-description
|
||
```
|
||
|
||
### 2. Внесите изменения
|
||
|
||
- Пишите чистый код
|
||
- Добавляйте комментарии
|
||
- Обновляйте документацию
|
||
|
||
### 3. Протестируйте
|
||
|
||
```bash
|
||
# Запустите тесты (когда будут добавлены)
|
||
docker-compose exec web python smartsoltech/manage.py test
|
||
|
||
# Проверьте миграции
|
||
docker-compose exec web python smartsoltech/manage.py makemigrations --check --dry-run
|
||
```
|
||
|
||
### 4. Закоммитьте изменения
|
||
|
||
```bash
|
||
git add .
|
||
git commit -m "feat: add your feature description"
|
||
```
|
||
|
||
### 5. Создайте Pull Request
|
||
|
||
- Опишите изменения подробно
|
||
- Приложите скриншоты (если применимо)
|
||
- Упомяните связанные issue
|
||
|
||
## 🐛 Отчеты о багах
|
||
|
||
При создании issue о баге, пожалуйста, укажите:
|
||
|
||
- **Описание**: Что произошло?
|
||
- **Ожидаемое поведение**: Что должно было произойти?
|
||
- **Шаги воспроизведения**: Как воспроизвести баг?
|
||
- **Окружение**: OS, версия Docker, браузер
|
||
- **Логи**: Если доступны
|
||
|
||
**Пример:**
|
||
```markdown
|
||
## Описание
|
||
Telegram бот не отправляет уведомления после создания заявки.
|
||
|
||
## Ожидаемое поведение
|
||
После создания заявки клиент должен получить уведомление в Telegram.
|
||
|
||
## Шаги воспроизведения
|
||
1. Создать заявку через веб-форму
|
||
2. Подождать 30 секунд
|
||
3. Проверить Telegram - уведомление не пришло
|
||
|
||
## Окружение
|
||
- OS: Ubuntu 22.04
|
||
- Docker: 20.10.21
|
||
- Browser: Chrome 120
|
||
|
||
## Логи
|
||
```
|
||
[ERROR] Failed to send message: Connection timeout
|
||
```
|
||
|
||
## 💡 Предложения новых функций
|
||
|
||
При предложении новой функции:
|
||
|
||
- **Описание**: Что вы хотите добавить?
|
||
- **Обоснование**: Зачем это нужно?
|
||
- **Примеры использования**: Как это будет работать?
|
||
- **Альтернативы**: Рассматривали ли другие варианты?
|
||
|
||
## 🧪 Тестирование
|
||
|
||
### Ручное тестирование
|
||
|
||
1. Создайте тестовые данные
|
||
2. Проверьте все измененные функции
|
||
3. Проверьте интеграции (Telegram, Email)
|
||
|
||
### Автоматическое тестирование
|
||
|
||
```bash
|
||
# Запуск тестов
|
||
docker-compose exec web python smartsoltech/manage.py test
|
||
|
||
# Запуск тестов с покрытием
|
||
docker-compose exec web coverage run --source='.' manage.py test
|
||
docker-compose exec web coverage report
|
||
```
|
||
|
||
## 📚 Структура проекта
|
||
|
||
```
|
||
smartsoltech/
|
||
├── web/ # Основное веб-приложение
|
||
│ ├── models.py # Модели данных
|
||
│ ├── views.py # Представления
|
||
│ ├── urls.py # URL маршруты
|
||
│ ├── forms.py # Формы
|
||
│ └── admin.py # Настройки админки
|
||
├── comunication/ # Telegram бот и коммуникации
|
||
│ ├── telegram_bot.py
|
||
│ └── models.py
|
||
└── smartsoltech/ # Настройки проекта
|
||
├── settings.py
|
||
└── urls.py
|
||
```
|
||
|
||
## 🔍 Полезные команды
|
||
|
||
```bash
|
||
# Просмотр логов
|
||
docker-compose logs -f web
|
||
docker-compose logs -f bot
|
||
|
||
# Доступ к shell
|
||
docker-compose exec web python smartsoltech/manage.py shell
|
||
|
||
# Создание миграций
|
||
docker-compose exec web python smartsoltech/manage.py makemigrations
|
||
|
||
# Применение миграций
|
||
docker-compose exec web python smartsoltech/manage.py migrate
|
||
|
||
# Сбор статики
|
||
docker-compose exec web python smartsoltech/manage.py collectstatic --noinput
|
||
|
||
# Проверка кода
|
||
docker-compose exec web python -m flake8 .
|
||
```
|
||
|
||
## ❓ Вопросы?
|
||
|
||
Если у вас есть вопросы:
|
||
|
||
- Создайте issue с меткой `question`
|
||
- Проверьте [документацию](docs/)
|
||
- Свяжитесь с командой
|
||
|
||
## 📄 Лицензия
|
||
|
||
Внося вклад в проект, вы соглашаетесь, что ваши изменения будут лицензированы под той же лицензией, что и проект.
|
||
|
||
---
|
||
|
||
Спасибо за ваш вклад в SmartSolTech! 🎉
|