First off, thank you for considering contributing to MemeCoinGen! It's people like you that make MemeCoinGen such a great tool.
By participating in this project, you are expected to uphold our Code of Conduct:
- Be respectful and inclusive
- Welcome newcomers and help them get started
- Focus on what is best for the community
- Show empathy towards other community members
Before creating bug reports, please check 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
- Describe the behavior you observed and expected
- Include screenshots if relevant
- Include your environment details
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
- Provide specific examples to demonstrate the enhancement
- Describe the current behavior and expected behavior
- Explain why this enhancement would be useful
- Fork the repo and create your branch from
main - If you've added code that should be tested, add tests
- Ensure the test suite passes
- Make sure your code follows the existing code style
- Write a clear commit message
-
Fork and clone the repository
git clone https://github.com/your-username/memecoingen.git cd memecoingen -
Install dependencies
npm install
-
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes
- Write clean, documented code
- Add tests for new functionality
- Update documentation as needed
-
Run tests
npm test npm run lint -
Commit your changes
git commit -m "feat: add amazing feature"We follow Conventional Commits:
feat:new featurefix:bug fixdocs:documentation changesstyle:formatting changesrefactor:code refactoringtest:test additions/changeschore:maintenance tasks
-
Push to your fork
git push origin feature/your-feature-name
-
Open a Pull Request
- Use TypeScript for all new code
- Follow the existing ESLint configuration
- Use meaningful variable and function names
- Add JSDoc comments for public APIs
- Use functional components with hooks
- Keep components small and focused
- Use proper TypeScript types for props
- Follow the existing component structure
- Keep functions pure when possible
- Handle errors appropriately
- Add proper TypeScript types
- Document complex logic
- 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
- Write unit tests for utility functions
- Write integration tests for API endpoints
- Test error cases, not just happy paths
- Aim for high test coverage but focus on critical paths
- Update the README.md if you change functionality
- Update inline documentation for code changes
- Add JSDoc comments for new functions
- Update the API documentation if you change endpoints
Feel free to open an issue with your question or reach out on our Discord server.
Thank you for contributing! 🚀