First off, thank you for considering contributing to Basking Shark! It's people like you that make Basking Shark such a great tool.
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
There are many ways you can contribute to Basking Shark:
- 🐛 Bug fixes
- ✨ New features
- 📝 Documentation improvements
- 💻 Code refactoring
- 🎨 UI/UX enhancements
- 🌐 Internationalization
- 🧪 Test coverage improvements
- Create your own fork of the code
- Do the changes in your fork
- If you like the change and think the project could use it:
- Be sure you have followed the code style
- Send a pull request
When filing an issue, make sure to answer these questions:
- What version of Basking Shark are you using?
- What version of Node.js are you using?
- What did you do?
- What did you expect to see?
- What did you see instead?
If you find yourself wishing for a feature that doesn't exist in Basking Shark, you are probably not alone. Open an issue which describes:
- Clear and descriptive title
- Detailed description of the feature
- Examples of how the feature would be used
- Why this feature would be useful to most Basking Shark users
-
Prerequisites:
- Node.js (v14 or higher)
- npm (v6 or higher)
- Git
-
Setup steps:
# Clone your fork git clone https://github.com/your-username/basking-shark.git cd basking-shark # Install server dependencies cd server npm install # Install client dependencies cd ../client npm install # Create environment file cp .env.example .env # Add your API keys to .env
-
Development workflow:
# Terminal 1: Run client in dev mode cd client npm run dev # Terminal 2: Run server in dev mode cd server npm run dev
- Use ES6+ features
- Follow Vue.js Style Guide
- Use meaningful variable names
- Keep functions small and focused
- Add comments for complex logic
- Use TypeScript types/interfaces where possible
- Use Tailwind utility classes
- Follow component-based structure
- Keep styles modular and reusable
- Use CSS variables for theming
- Follow BEM naming convention for custom classes
- 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
- Consider starting the commit message with an applicable emoji:
- ✨
:sparkles:when adding a new feature - 🐛
:bug:when fixing a bug - 📝
:memo:when adding or updating documentation - ♻️
:recycle:when refactoring code - 🎨
:art:when improving UI/UX - ⚡️
:zap:when improving performance - 🔒
:lock:when dealing with security
- ✨
- Update the README.md with details of changes to the interface
- Update the version numbers in package.json following Semantic Versioning
- The PR will be merged once you have the sign-off of maintainers
type(scope): description
Examples:
feat(cloud): add support for DigitalOcean
fix(ui): improve dark mode contrast
docs(readme): update installation steps
## Description
Clear and concise description of the changes
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation update
## How Has This Been Tested?
Describe the tests you ran
## Checklist
- [ ] My code follows the style guidelines
- [ ] I have performed a self-review
- [ ] I have commented my code where needed
- [ ] I have updated the documentation
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix/feature works- Join our Discord server
- Follow us on Twitter
- Read our blog
Contributors will be recognized in:
- README.md contributors section
- Release notes
- Our website's contributor page
Thank you for contributing to Basking Shark! 🦈✨