Skip to content

Latest commit

 

History

History
210 lines (151 loc) · 5.97 KB

File metadata and controls

210 lines (151 loc) · 5.97 KB

Contributing to SOM Music

First off, thank you for considering contributing to SOM Music! It's people like you that make SOM Music such a great tool.

🌟 How Can I Contribute?

Reporting Bugs

Before creating bug reports, please check the existing issues to avoid duplicates. When you create a bug report, include as many details as possible:

  • Use a clear and descriptive title
  • Describe the exact steps to reproduce the problem
  • Provide specific examples to demonstrate the steps
  • Describe the behavior you observed and what you expected to see
  • Include screenshots or animated GIFs if possible
  • Include your environment details (OS, browser, Node version, etc.)

Suggesting Enhancements

Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion:

  • Use a clear and descriptive title
  • Provide a detailed description of the suggested enhancement
  • Explain why this enhancement would be useful to most users
  • List any similar features in other applications if applicable

Pull Requests

  1. Fork the repository and create your branch from main
  2. Follow the coding style of the project
  3. Write clear, descriptive commit messages
  4. Include comments in your code where necessary
  5. Update documentation if you're changing functionality
  6. Test your changes thoroughly before submitting

🚀 Development Process

Setting Up Your Development Environment

  1. Fork and clone the repository

    git clone https://github.com/your-username/Som-Movie-API.git
    cd Som-Movie-API
  2. Install dependencies

    npm install
  3. Set up environment variables Create a .env file in the root directory:

    REACT_APP_FORMSPREE_API=https://formspree.io/f/your-form-id
  4. Start the development server

    npm start

Making Changes

  1. Create a new branch for your feature or fix

    git checkout -b feature/amazing-feature
  2. Make your changes following our coding standards

  3. Test your changes

    npm test
    npm run build
  4. Commit your changes

    git commit -m 'Add some amazing feature'
  5. Push to your fork

    git push origin feature/amazing-feature
  6. Open a Pull Request from your fork to our main branch

📝 Coding Standards

JavaScript/React Guidelines

  • Use functional components with hooks
  • Follow React best practices
  • Use meaningful variable and function names
  • Keep components small and focused
  • Use PropTypes or TypeScript for type checking (if applicable)
  • Write clean, readable code with proper indentation

CSS Guidelines

  • Use CSS modules or scoped styles where appropriate
  • Follow BEM naming convention for class names
  • Keep styles organized and maintainable
  • Use CSS variables for theming
  • Ensure responsive design for all screen sizes

Commit Message Guidelines

  • Use the present tense ("Add feature" not "Added feature")
  • Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
  • Limit the first line to 72 characters or less
  • Reference issues and pull requests liberally after the first line

Example:

Add infinite scroll to series page

- Implement Intersection Observer API
- Add loading spinner during fetch
- Update state management for pagination

Fixes #123

🧪 Testing

  • Write unit tests for new features
  • Ensure all tests pass before submitting PR
  • Test on multiple browsers (Chrome, Firefox, Safari, Edge)
  • Test responsive behavior on different screen sizes
  • Verify accessibility standards are met

📚 Documentation

  • Update the README.md if you change functionality
  • Add JSDoc comments to functions and components
  • Update inline comments for complex logic
  • Create or update user guides if needed

🤝 Code of Conduct

Our Pledge

We pledge to make participation in our project a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.

Our Standards

Positive behavior includes:

  • Using welcoming and inclusive language
  • Being respectful of differing viewpoints
  • Gracefully accepting constructive criticism
  • Focusing on what is best for the community
  • Showing empathy towards other community members

Unacceptable behavior includes:

  • Trolling, insulting/derogatory comments, and personal attacks
  • Public or private harassment
  • Publishing others' private information without permission
  • Other conduct which could reasonably be considered inappropriate

📞 Getting Help

If you need help or have questions:

🎯 Priority Areas

We're particularly interested in contributions in these areas:

  1. Performance Optimization

    • Lazy loading improvements
    • Bundle size reduction
    • Caching strategies
  2. New Features

    • Advanced search filters
    • User authentication
    • Watchlist functionality
    • Social sharing features
  3. UI/UX Improvements

    • Accessibility enhancements
    • Mobile experience optimization
    • Animation and transitions
  4. Testing

    • Unit test coverage
    • Integration tests
    • E2E testing
  5. Documentation

    • API documentation
    • Component documentation
    • User guides and tutorials

🏆 Recognition

Contributors will be recognized in our README.md file and release notes. Significant contributions may earn you a spot in our core contributors list!

📄 License

By contributing to SOM Music, you agree that your contributions will be licensed under the MIT License.


Thank you for contributing to SOM Music! 🎬✨