Files
blogging-cms/CONTRIBUTING.md
T
nutshell9247 852613586f
CI/CD Pipeline / Test & Lint (push) Waiting to run
CI/CD Pipeline / Build Docker Image (push) Blocked by required conditions
CI/CD Pipeline / Security Scan (push) Waiting to run
first commit, mate!
2026-08-08 14:43:59 +08:00

149 lines
3.0 KiB
Markdown

# Contributing to Blogging CMS
First, thank you for considering contributing! This project is maintained by one person, and community contributions are essential.
## Code of Conduct
- Be respectful and inclusive
- Provide constructive feedback
- Focus on the code, not the person
- Help others learn and grow
## Getting Started
1. **Fork the repository** on GitHub
2. **Clone your fork locally**
```bash
git clone https://github.com/your-username/blogging-cms.git
cd blogging-cms
```
3. **Create a feature branch**
```bash
git checkout -b feature/your-feature-name
```
4. **Set up development environment**
```bash
make setup
make dev
```
## Development Guidelines
### Code Style
- Follow Go conventions (use `gofmt`)
- Keep functions small and focused
- Write meaningful variable and function names
- Add comments for exported functions
### Before Submitting
1. **Format your code**
```bash
make fmt
```
2. **Run linter**
```bash
make lint
make vet
```
3. **Run tests**
```bash
make test
```
4. **Test in Docker**
```bash
make docker-rebuild
```
## Pull Request Process
1. Update documentation if needed (README.md, comments)
2. Add tests for new features
3. Ensure all tests pass locally
4. Write a clear commit message
5. Push to your fork
6. Submit a Pull Request with a clear description
### Commit Messages
Use clear, descriptive commit messages:
- ✨ `feat:` for new features
- 🐛 `fix:` for bug fixes
- 📝 `docs:` for documentation
- ♻️ `refactor:` for refactoring
- ✅ `test:` for adding tests
- 🎨 `style:` for formatting
Example:
```
feat: add comment moderation panel
- Add admin interface for approving/rejecting comments
- Send notification email to post author
- Add tests for moderation logic
Fixes #123
```
## Areas for Contribution
### High Priority
- [ ] Password hashing with bcrypt
- [ ] Comment threading
- [ ] Batch operations in dashboard
- [ ] Email notifications
- [ ] Advanced search filters
### Medium Priority
- [ ] User profile pages
- [ ] Post scheduling
- [ ] Image optimization
- [ ] SEO metadata
- [ ] Social media preview cards
### Lower Priority
- [ ] Dark mode theme
- [ ] Multilingual support
- [ ] Export functionality
- [ ] Analytics integration
## Bug Reports
Found a bug? Open an issue with:
- Clear title and description
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, Go version, Docker version)
- Screenshots if applicable
## Feature Requests
Have an idea? Open an issue with:
- Clear description of the feature
- Why it would be useful
- Possible implementation approach
- Any relevant examples or links
## Documentation
- Keep README.md updated
- Add inline code comments for complex logic
- Document API changes
- Update architecture in README if needed
## Questions?
- Check existing issues/discussions first
- Ask in GitHub Discussions
- Email: kalvin@obulou.org
---
Thank you for contributing! Every contribution makes this project better. 🙏