# Руководство по внесению вклада в NakamaSpace Спасибо за интерес к проекту! Мы рады любым улучшениям. ## 🤝 Как внести вклад ### 1. Форкните репозиторий Создайте свою копию проекта на GitHub. ### 2. Создайте ветку ```bash git checkout -b feature/amazing-feature ``` Названия веток: - `feature/` - новая функциональность - `fix/` - исправление багов - `docs/` - документация - `style/` - стили и UI ### 3. Внесите изменения Придерживайтесь существующего стиля кода: - 2 пробела для отступов - Понятные имена переменных - Комментарии на русском языке - ES6+ синтаксис ### 4. Коммит изменений ```bash git commit -m "feat: добавлена новая функция" ``` Формат сообщений коммитов: - `feat:` - новая функциональность - `fix:` - исправление бага - `docs:` - изменения в документации - `style:` - форматирование, стили - `refactor:` - рефакторинг кода - `test:` - добавление тестов - `chore:` - обновление зависимостей и т.д. ### 5. Пуш и Pull Request ```bash git push origin feature/amazing-feature ``` Создайте Pull Request с описанием изменений. ## 📝 Стандарты кода ### JavaScript/React ```javascript // ✅ Хорошо const handleSubmit = async () => { try { const result = await api.post('/data') setData(result) } catch (error) { console.error('Ошибка:', error) } } // ❌ Плохо const handleSubmit = () => { api.post('/data').then(result => { setData(result) }).catch(error => { console.log(error) }) } ``` ### CSS ```css /* ✅ Хорошо - используем CSS переменные */ .button { background: var(--button-dark); color: var(--text-primary); } /* ❌ Плохо - хардкод цветов */ .button { background: #1C1C1E; color: #000000; } ``` ### MongoDB схемы ```javascript // ✅ Хорошо - валидация и значения по умолчанию const UserSchema = new mongoose.Schema({ username: { type: String, required: true, trim: true, minlength: 3 }, createdAt: { type: Date, default: Date.now } }) ``` ## 🧪 Тестирование Перед отправкой PR убедитесь что: - [ ] Приложение запускается без ошибок - [ ] Все существующие функции работают - [ ] Новый код не ломает существующий функционал - [ ] UI выглядит корректно на мобильных устройствах - [ ] Нет console.error в браузере ## 🎨 Дизайн При добавлении новых UI элементов: - Придерживайтесь iOS-стиля дизайна - Используйте существующую цветовую палитру - Радиус скругления: 12-16px - Анимации: 0.2-0.3s ease-out - Тени: мягкие, rgba(0,0,0,0.08) ## 📚 Документация При добавлении новых функций: - Обновите README.md - Добавьте комментарии в код - Документируйте API endpoints - Обновите SETUP.md если нужно ## 🐛 Баг репорты При сообщении о баге укажите: - Шаги для воспроизведения - Ожидаемое поведение - Фактическое поведение - Скриншоты/видео (если возможно) - Версия Node.js и MongoDB - ОС и браузер ## 💡 Идеи и предложения Открывайте Issue с тегом "enhancement" для обсуждения новых функций. ## 📞 Вопросы? Если что-то непонятно - создайте Issue с вопросом. Спасибо за вклад в NakamaSpace! 🎉