Thank you for your interest in contributing to SmartDoc AI! This document provides guidelines and workflows for contributing.
- Code of Conduct
- Development Setup
- Making Changes
- Pull Request Process
- Coding Standards
- Documentation
- Testing
- Be respectful and inclusive
- Focus on constructive feedback
- Maintain professionalism in communications
- Report unacceptable behavior to project maintainers
- Fork the repository
- Clone your fork locally
- Setup development environment:
Backend:
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
Frontend:
cd frontend
npm install
-
Create a new branch:
git checkout -b feature/your-feature-name
-
Make your changes
-
Test thoroughly
-
Commit with clear messages:
- Use present tense ("Add feature" not "Added feature")
- Reference issues/PRs where appropriate
- Update documentation reflecting changes
- Add tests for new features
- Ensure all tests pass
- Update
CHANGELOG.md
- Submit PR with detailed description
- Address review feedback
- Follow PEP 8
- Type hints required
- Docstrings for all functions
- Max line length: 88 characters
- Sort imports with isort
- Use TypeScript where possible
- Follow Prettier configuration
- ESLint compliance required
- Component-based architecture
- Props interface definitions
- Update README.md for user-facing changes
- Document API changes in OpenAPI spec
- Add JSDoc for frontend utilities
- Include examples for new features
- Unit tests required for new features
- Integration tests for API endpoints
- Minimum 80% coverage
- Run tests:
python -m pytest
- Component tests with React Testing Library
- E2E tests for critical paths
- Run tests:
npm test
- One feature per branch
- Rebase before PR
- Clean commit history
- No merge commits
-
AI Model Improvements
- Model optimization
- Alternative model support
- Performance enhancements
-
Frontend Development
- UI/UX improvements
- Accessibility features
- Mobile responsiveness
-
Backend Enhancements
- API optimization
- Database integration
- Caching improvements
-
Documentation
- User guides
- API documentation
- Setup tutorials
-
Testing
- Test coverage
- Performance testing
- Security testing
Contributors will be added to CONTRIBUTORS.md
with:
- Name/GitHub username
- Contributions summary
- Date of first contribution
Open an issue for:
- Feature proposals
- Bug reports
- Documentation improvements
- General questions
By contributing, you agree that your contributions will be licensed under the MIT License. See LICENSE for details.