4.3 KiB
4.3 KiB
Руководство по внесению вклада в NakamaSpace
Спасибо за интерес к проекту! Мы рады любым улучшениям.
🤝 Как внести вклад
1. Форкните репозиторий
Создайте свою копию проекта на GitHub.
2. Создайте ветку
git checkout -b feature/amazing-feature
Названия веток:
feature/- новая функциональностьfix/- исправление баговdocs/- документацияstyle/- стили и UI
3. Внесите изменения
Придерживайтесь существующего стиля кода:
- 2 пробела для отступов
- Понятные имена переменных
- Комментарии на русском языке
- ES6+ синтаксис
4. Коммит изменений
git commit -m "feat: добавлена новая функция"
Формат сообщений коммитов:
feat:- новая функциональностьfix:- исправление багаdocs:- изменения в документацииstyle:- форматирование, стилиrefactor:- рефакторинг кодаtest:- добавление тестовchore:- обновление зависимостей и т.д.
5. Пуш и Pull Request
git push origin feature/amazing-feature
Создайте Pull Request с описанием изменений.
📝 Стандарты кода
JavaScript/React
// ✅ Хорошо
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 переменные */
.button {
background: var(--button-dark);
color: var(--text-primary);
}
/* ❌ Плохо - хардкод цветов */
.button {
background: #1C1C1E;
color: #000000;
}
MongoDB схемы
// ✅ Хорошо - валидация и значения по умолчанию
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! 🎉