First off, thank you for considering contributing to ShopSphere! It's people like you who make ShopSphere such a great tool. This document provides guidelines and steps for contributing.
By participating in this project, you are expected to uphold our Code of Conduct:
- Use welcoming and inclusive language
- Be respectful of differing viewpoints and experiences
- Gracefully accept constructive criticism
- Focus on what is best for the community
- Show empathy towards other community members
- Fork the repository
- Clone your fork:
git clone https://github.com/your-username/shopsphere.git
- Set up the development environment as described in the README.md
- Create a new branch for your feature/fix:
git checkout -b feature/your-feature-name
- Ensure you have all prerequisites installed:
- Node.js (>=14.x)
- MongoDB
- Git
- Install dependencies for both frontend and backend:
# Install frontend dependencies cd frontend npm install # Install backend dependencies cd ../backend npm install
- Set up environment variables as specified in example.env
- Start the development server:
# Starts both frontend and backend using concurrently npm run dev # OR # Starts frontend using vite cd frontend npm run dev # AND # Starts backend using nodemon cd ../backend npm run dev
- Work on your feature or bug fix
- Follow the project's coding style and conventions:
- Use meaningful variable and function names
- Write clear commit messages
- Comment your code when necessary
- Follow the existing code structure
- Test your changes thoroughly
- Use clear and meaningful commit messages
- Format:
type(scope): description - Types: feat, fix, docs, style, refactor, test, chore
- Example:
feat(auth): add password reset functionality
- Update your fork to include the latest changes from the main repository
- Push your changes to your fork
- Create a Pull Request (PR) to the main repository
- In your PR description:
- Clearly describe the changes
- Link any related issues
- Include screenshots for UI changes
- List any breaking changes
- Mention any additional dependencies
- Shopping cart functionality implementation
- Secure payment integration
- Admin panel development
- Mobile responsiveness improvements
- Bug fixes and performance optimizations
- Bug fixes
- New features
- Documentation improvements
- Performance optimizations
- UI/UX enhancements
- Use ES6+ features
- Follow React best practices
- Use functional components and hooks
- Maintain proper component structure
- Use meaningful component and variable names
- Use Tailwind utility classes appropriately
- Maintain responsive design principles
- Keep styles modular and reusable
- Create a feature branch
- Make your changes
- Write or update tests
- Update documentation
- Submit a pull request
- Ensure all tests pass before submitting PR
- Test across different browsers and devices
- Update README.md if needed
- Document new features
- Update API documentation
- Include JSDoc comments for functions
- Add inline comments for complex logic
- Create an issue for bugs or feature requests
- Join our community discussions
- Contact maintainers at [anwishtaghosh@gmail.com]
- Check existing issues and PRs before creating new ones
Contributors will be added to the Contributors section in the README.md file automatically through the contributors-img.web.app integration.
Thank you for contributing to ShopSphere! Your efforts help make this project better for everyone.