Files
smartsoltech_site/CONTRIBUTING.md
Andrew K. Choi d9adac609b 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
2025-11-24 07:12:04 +09:00

256 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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! 🎉