Thank you for your interest in contributing to the AgriTech Blog Platform! This project thrives on community contributions from developers, AgriTech enthusiasts, and content creators of all skill levels.
Found a bug? Help us fix it!
- Search existing issues first
- Use our bug report template
- Include steps to reproduce, expected behavior, and screenshots
Have an idea for improvement?
- Check existing feature requests
- Use our feature request template
- Explain the problem and proposed solution
Ready to write some code?
- Look for good first issues
- Check out help wanted issues
- Follow our development workflow below
Help make the project more accessible!
- Improve existing documentation
- Add code comments and examples
- Create tutorials and guides
- Translate documentation
Make the platform more beautiful and user-friendly!
- UI/UX improvements
- Accessibility enhancements
- Mobile responsiveness
- Visual design elements
# Fork the repository on GitHub
# Clone your fork
git clone https://github.com/YOUR_USERNAME/AgriTechBlog.git
cd AgriTechBlog
# Add upstream remote
git remote add upstream https://github.com/asamountain/AgriTechBlog.git
# Install dependencies
npm install
# Copy environment template
cp env.example .env
# Set up your MongoDB connection in .env
# MONGODB_URI=your-mongodb-connection-string
# SESSION_SECRET=your-random-secret-key
# Start development server
npm run dev# Sync with upstream
git checkout main
git pull upstream main
# Create your feature branch
git checkout -b feature/your-feature-name
# or
git checkout -b fix/your-bug-fix
# or
git checkout -b docs/your-documentation-update- TypeScript: Use strict typing throughout
- React: Use functional components with hooks
- Naming: Use descriptive names for variables and functions
- Comments: Add JSDoc comments for complex functions
- Formatting: Use Prettier for consistent formatting
client/src/
βββ components/ # Reusable React components
β βββ ui/ # Basic UI components (buttons, inputs)
β βββ [feature]/ # Feature-specific components
βββ pages/ # Route components
βββ hooks/ # Custom React hooks
βββ lib/ # Utilities and configurations
βββ styles/ # CSS and styling files
api/ # Vercel serverless functions
server/ # Development server files
shared/ # Shared TypeScript types
// Good component structure
interface ComponentProps {
title: string;
onAction?: () => void;
children?: React.ReactNode;
}
export default function Component({ title, onAction, children }: ComponentProps) {
// Component logic here
return (
<div className="space-y-4">
<h2 className="text-xl font-semibold">{title}</h2>
{children}
{onAction && (
<button onClick={onAction} className="btn-primary">
Action
</button>
)}
</div>
);
}# Type checking
npm run type-check
# Build the project
npm run build
# Test locally
npm run dev
# Run linting
npm run lint# Stage your changes
git add .
# Commit with descriptive message
git commit -m "β¨ Add feature: user profile management
- Add user profile component
- Implement profile editing functionality
- Add validation for profile fields
- Update navigation to include profile link
Closes #123"Use conventional commits with emojis:
- β¨
:sparkles:- New features - π
:bug:- Bug fixes - π
:memo:- Documentation - π¨
:art:- UI/UX improvements - β»οΈ
:recycle:- Code refactoring - β‘
:zap:- Performance improvements - π
:lock:- Security fixes - π§ͺ
:test_tube:- Tests
Example:
β¨ Add AI-powered content tagging
- Integrate Perplexity API for tag suggestions
- Add tag management UI component
- Implement tag validation and storage
- Update post editor with tag suggestions
Closes #45
# Push to your fork
git push origin feature/your-feature-name
# Create a pull request on GitHub
# - Use a descriptive title
# - Reference related issues
# - Add screenshots for UI changes
# - Request review from maintainers- Code follows project style guidelines
- Self-review completed
- Comments added for complex logic
- Documentation updated if needed
- No new TypeScript errors
- Builds successfully
- Tested locally
- Screenshots included for UI changes
## Description
Brief description of changes
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Documentation update
- [ ] Performance improvement
- [ ] Code refactoring
## Testing
- [ ] Tested locally
- [ ] No TypeScript errors
- [ ] Builds successfully
## Screenshots (if applicable)
Add screenshots for UI changes
## Related Issues
Closes #123- Documentation improvements
- UI/UX enhancements
- Accessibility features
- Bug fixes
- Code comments
- API endpoint improvements
- Database optimization
- Performance enhancements
- Testing infrastructure
- Mobile responsiveness
- Architecture improvements
- Security enhancements
- Advanced features (search, analytics)
- CI/CD pipeline
- Deployment optimization
- Be respectful and inclusive
- Welcome newcomers and help them learn
- Focus on constructive feedback
- Collaborate openly and transparently
- Respect different perspectives and experiences
- Use GitHub Issues for bug reports and feature requests
- Use GitHub Discussions for questions and ideas
- Be patient with response times - we're all volunteers!
- Tag issues appropriately for better organization
Contributors are recognized in:
- Project README contributors section
- Release notes for significant contributions
- Community highlights in discussions
- Potential invitation to core contributor team
Stuck or have questions? We're here to help!
- π¬ GitHub Discussions - Ask questions and get help
- π GitHub Issues - Report bugs and request features
- π§ Email: Create an issue and we'll respond there
- π Documentation - Comprehensive guides and references
Welcome! Here's how to get started:
- Star the repository β
- Look for good first issues
- Read this contributing guide
- Set up your development environment
- Make a small change (fix a typo, improve documentation)
- Create your first pull request
Don't worry about making mistakes - we're all learning! The community is here to support you.
Thank you for contributing to the AgriTech Blog Platform! Every contribution, no matter how small, helps make this project better for the entire agricultural technology community. π±
Together, we're building a platform that helps share knowledge and advances agricultural technology for a better world.