nakama/CONTRIBUTING.md

159 lines
4.3 KiB
Markdown
Raw Normal View History

2025-11-03 20:35:01 +00:00
# Руководство по внесению вклада в 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! 🎉