nakama/CONTRIBUTING.md

4.3 KiB
Raw Blame History

Руководство по внесению вклада в 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! 🎉