3.0 KiB
3.0 KiB
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
-
Fork the repository on GitHub
-
Clone your fork locally
git clone https://github.com/your-username/blogging-cms.git cd blogging-cms -
Create a feature branch
git checkout -b feature/your-feature-name -
Set up development environment
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
-
Format your code
make fmt -
Run linter
make lint make vet -
Run tests
make test -
Test in Docker
make docker-rebuild
Pull Request Process
- Update documentation if needed (README.md, comments)
- Add tests for new features
- Ensure all tests pass locally
- Write a clear commit message
- Push to your fork
- 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. 🙏