149 lines
3.0 KiB
Markdown
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. 🙏
|