First off, thank you for considering contributing to SOM Music! It's people like you that make SOM Music such a great tool.
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.)
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
- Fork the repository and create your branch from
main - Follow the coding style of the project
- Write clear, descriptive commit messages
- Include comments in your code where necessary
- Update documentation if you're changing functionality
- Test your changes thoroughly before submitting
-
Fork and clone the repository
git clone https://github.com/your-username/Som-Movie-API.git cd Som-Movie-API -
Install dependencies
npm install
-
Set up environment variables Create a
.envfile in the root directory:REACT_APP_FORMSPREE_API=https://formspree.io/f/your-form-id
-
Start the development server
npm start
-
Create a new branch for your feature or fix
git checkout -b feature/amazing-feature
-
Make your changes following our coding standards
-
Test your changes
npm test npm run build -
Commit your changes
git commit -m 'Add some amazing feature' -
Push to your fork
git push origin feature/amazing-feature
-
Open a Pull Request from your fork to our
mainbranch
- 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
- 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
- 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
- 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
- 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
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.
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
If you need help or have questions:
- Email: yousufmoha255@gmail.com
- WhatsApp: +252 90 668 0955
- GitHub Issues: Open an issue with the
questionlabel
We're particularly interested in contributions in these areas:
-
Performance Optimization
- Lazy loading improvements
- Bundle size reduction
- Caching strategies
-
New Features
- Advanced search filters
- User authentication
- Watchlist functionality
- Social sharing features
-
UI/UX Improvements
- Accessibility enhancements
- Mobile experience optimization
- Animation and transitions
-
Testing
- Unit test coverage
- Integration tests
- E2E testing
-
Documentation
- API documentation
- Component documentation
- User guides and tutorials
Contributors will be recognized in our README.md file and release notes. Significant contributions may earn you a spot in our core contributors list!
By contributing to SOM Music, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to SOM Music! 🎬✨