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:
2025-11-24 07:12:04 +09:00
parent 7bf003e70d
commit d9adac609b
26 changed files with 1869 additions and 11 deletions

255
CONTRIBUTING.md Normal file
View 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! 🎉