# 🤝 Руководство по внесению вклада / Contributing Guide

Спасибо за ваш интерес к проекту **SSV Prof**! Мы ценим любой вклад в развитие платформы.

## 📋 Содержание / Table of Contents
- [Кодекс поведения](#кодекс-поведения--code-of-conduct)
- [Как я могу помочь?](#как-я-могу-помочь--how-can-i-help)
- [Процесс внесения изменений](#процесс-внесения-изменений--contribution-process)
- [Стиль кода](#стиль-кода--code-style)
- [Коммиты](#коммиты--commits)
- [Pull Requests](#pull-requests)
- [Сообщения об ошибках](#сообщения-об-ошибках--reporting-bugs)

## 🌟 Кодекс поведения / Code of Conduct

Участвуя в этом проекте, вы соглашаетесь соблюдать уважительное и конструктивное общение.

## 🛠️ Как я могу помочь? / How Can I Help?

### 📝 Документация
- Улучшение README и других документов
- Перевод документации
- Исправление опечаток

### 🐛 Сообщения об ошибках
- Используйте шаблон Bug Report
- Предоставьте максимально подробную информацию
- Приложите скриншоты, если возможно

### ✨ Новые функции
- Используйте шаблон Feature Request
- Обсудите идею перед началом разработки
- Убедитесь, что функция соответствует целям проекта

### 🎨 Дизайн и UX
- Предложения по улучшению интерфейса
- Accessibility improvements
- Адаптация для мобильных устройств

## 🔄 Процесс внесения изменений / Contribution Process

### 1. Fork репозитория
```bash
git clone https://github.com/your-username/Serg2206.github.io.git
cd Serg2206.github.io
```

### 2. Создайте ветку для изменений
```bash
git checkout -b feature/your-feature-name
# или
git checkout -b fix/your-bug-fix
```

### 3. Внесите изменения
- Следуйте стилю кода проекта
- Добавьте комментарии к сложным участкам
- Обновите документацию, если необходимо

### 4. Проверьте изменения
```bash
# Откройте index.html в браузере
# Проверьте на разных разрешениях экрана
# Убедитесь, что все ссылки работают
```

### 5. Сделайте коммит
```bash
git add .
git commit -m "feat: описание изменений"
```

### 6. Отправьте изменения
```bash
git push origin feature/your-feature-name
```

### 7. Создайте Pull Request
- Используйте шаблон PR
- Заполните все секции
- Свяжите с соответствующим issue

## 💻 Стиль кода / Code Style

### HTML
- Используйте семантические теги
- Добавляйте alt к изображениям
- Соблюдайте отступы (2 пробела)

```html
<section class="library">
  <h2>Библиотека</h2>
  <article class="publication">
    <img src="..." alt="Описание изображения">
  </article>
</section>
```

### CSS
- Используйте осмысленные имена классов
- Группируйте связанные стили
- Добавляйте комментарии к сложным селекторам

```css
/* Основные стили библиотеки */
.library {
  padding: 2rem;
  background: var(--bg-color);
}
```

### JavaScript
- Используйте современный синтаксис (ES6+)
- Добавляйте JSDoc комментарии
- Обрабатывайте ошибки

```javascript
/**
 * Загружает данные публикации
 * @param {string} publicationId - ID публикации
 * @returns {Promise<Object>} Данные публикации
 */
async function loadPublication(publicationId) {
  try {
    const response = await fetch(`/api/publications/${publicationId}`);
    return await response.json();
  } catch (error) {
    console.error('Ошибка загрузки публикации:', error);
    throw error;
  }
}
```

## 📝 Коммиты / Commits

Используйте Conventional Commits:

- `feat:` - новая функция
- `fix:` - исправление ошибки
- `docs:` - изменения в документации
- `style:` - форматирование, отступы
- `refactor:` - рефакторинг кода
- `test:` - добавление тестов
- `chore:` - обновление зависимостей, конфигурации

Примеры:
```
feat: добавить фильтрацию по категориям в библиотеке
fix: исправить отображение формы на мобильных устройствах
docs: обновить инструкцию по установке
```

## 🔍 Pull Requests

### Хороший PR должен:
- ✅ Решать одну задачу
- ✅ Иметь понятное описание
- ✅ Ссылаться на issue
- ✅ Проходить все проверки
- ✅ Быть готовым к ревью

### Процесс ревью:
1. Автоматические проверки должны пройти
2. Код будет проверен мантейнерами
3. Внесите исправления, если потребуется
4. После одобрения PR будет слит в main

## 🐛 Сообщения об ошибках / Reporting Bugs

При сообщении об ошибке укажите:

1. **Шаги воспроизведения** - как повторить ошибку
2. **Ожидаемое поведение** - что должно происходить
3. **Фактическое поведение** - что происходит на самом деле
4. **Окружение** - ОС, браузер, версия
5. **Скриншоты** - если применимо

## 📞 Контакты / Contact

Если у вас есть вопросы:
- 📧 Email: ssvnauka@gmail.com
- 🐙 GitHub Issues: [создать issue](https://github.com/Serg2206/Serg2206.github.io/issues/new/choose)

## 🙏 Благодарности / Acknowledgments

Спасибо всем участникам проекта! Каждый вклад делает SSV Prof лучше.

---

**Примечание:** Прежде чем начать работу над крупной функцией, создайте issue для обсуждения. Это поможет избежать дублирования усилий и убедиться, что ваш вклад будет принят.
