chore: reorganize project structure and prepare for deployment
- 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
This commit is contained in:
255
CONTRIBUTING.md
Normal file
255
CONTRIBUTING.md
Normal file
@@ -0,0 +1,255 @@
|
||||
# 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! 🎉
|
||||
Reference in New Issue
Block a user