Skip to content

Latest commit

 

History

History
155 lines (117 loc) · 3.51 KB

File metadata and controls

155 lines (117 loc) · 3.51 KB

Contributing to QA Test Prep

Thank you for your interest in contributing to QA Test Prep! This document provides guidelines for contributing to the project.

🌳 Branching Strategy

We use a Git Flow-inspired branching model:

  • main - Production branch (protected, requires PR)
  • develop - Development branch (default branch for new features)
  • feature/* - Feature branches (branch from develop)
  • bugfix/* - Bug fix branches (branch from develop)
  • hotfix/* - Emergency fixes (branch from main)

🔄 Development Workflow

  1. Fork the repository and clone your fork

  2. Create a feature branch from develop:

    git checkout develop
    git pull origin develop
    git checkout -b feature/your-feature-name
  3. Make your changes:

    • Write clean, documented code
    • Follow existing code style
    • Add tests if applicable
    • Update documentation
  4. Commit your changes:

    git add .
    git commit -m "feat: add new feature"

    Follow Conventional Commits:

    • feat: New feature
    • fix: Bug fix
    • docs: Documentation changes
    • style: Code style changes
    • refactor: Code refactoring
    • test: Test changes
    • chore: Build/tool changes
  5. Push to your fork:

    git push origin feature/your-feature-name
  6. Open a Pull Request to develop branch

📝 Pull Request Guidelines

  • Target the develop branch (not main)
  • Provide a clear description of changes
  • Reference any related issues
  • Ensure all tests pass
  • Update documentation if needed
  • Request review from maintainers

🧪 Testing

Before submitting a PR:

# Install dependencies
npm install

# Run build
npm run build

# Run tests (if available)
npm test

# Check linting
npm run lint

🐛 Reporting Issues

  • Use GitHub Issues
  • Provide clear reproduction steps
  • Include browser/OS information
  • Add screenshots if relevant
  • Check existing issues first

💻 Development Setup

  1. Prerequisites:

    • Node.js 18+
    • npm 9+
  2. Local development:

    # Install dependencies
    npm install
    
    # Start dev server
    npm run dev
    
    # Build for production
    npm run build

📚 Adding Questions

To add new questions:

  1. Edit src/data/questions.ts
  2. Follow the existing format:
    {
      id: 'q171',
      topic: 'topic-id',
      text: 'Your question in Hebrew',
      options: ['Option 1', 'Option 2', 'Option 3', 'Option 4'],
      correctAnswer: 0, // Index of correct option
      explanation: 'Explanation in Hebrew',
      difficulty: 'easy' | 'medium' | 'hard',
      tags: ['tag1', 'tag2']
    }

🎨 UI/UX Guidelines

  • Maintain mobile-first design
  • Support RTL (Hebrew) layout
  • Ensure dark mode compatibility
  • Follow existing Tailwind CSS patterns
  • Test on multiple screen sizes

📄 Code Style

  • Use TypeScript for type safety
  • Follow ESLint configuration
  • Use meaningful variable names
  • Add comments for complex logic
  • Keep components small and focused

🤝 Code of Conduct

  • Be respectful and inclusive
  • Welcome newcomers
  • Provide constructive feedback
  • Focus on what's best for the community

📬 Contact

For questions or discussions:

  • Open a GitHub Issue
  • Start a GitHub Discussion
  • Contact maintainers through GitHub

Thank you for contributing! 🎉