Thank you for your interest in contributing to Cerno Docs! We welcome contributions from the community.
- Check if the bug has already been reported in Issues
- If not, create a new issue with:
- Clear title and description
- Steps to reproduce
- Expected vs actual behavior
- System information (OS, Python version, GPU/CPU)
- Relevant logs or error messages
- Open an issue with the
enhancementlabel - Describe the feature and its use case
- Explain how it aligns with the project's goals
- Fork the repository
- Create a new branch from
main:git checkout -b feature/your-feature-name
-
Install dependencies:
pip install -r requirements.txt cd frontend && npm install
-
Set up your
.envfile:cp .env.sample .env # Add your API keys -
Run the application:
# Backend uvicorn api.main:app --reload # Frontend (in another terminal) cd frontend && npm run dev
- Python: Follow PEP 8, use type hints
- TypeScript/React: Follow existing code style
- Formatting: Run linting scripts in
scripts/folder before committing:# Windows scripts\format.bat scripts\lint.bat # Linux/Mac ./scripts/format.sh ./scripts/lint.sh
Follow conventional commits format:
feat:New featurefix:Bug fixdocs:Documentation changesrefactor:Code refactoringtest:Adding or updating testschore:Maintenance tasks
Example:
feat: Add support for PowerPoint presentations
fix: Resolve CUDA memory overflow on large documents
docs: Update installation instructions for Windows
- Update documentation if needed (README, INSTALLATION.md)
- Add tests for new functionality
- Ensure all tests pass
- Update CHANGELOG.md (if it exists)
- Create a Pull Request with:
- Clear description of changes
- Link to related issues
- Screenshots/GIFs for UI changes
- Test results
- 📝 Documentation: Improve tutorials, add examples
- 🐛 Bug Fixes: Check open issues
- ✨ Features: See roadmap in README.md
- 🧪 Testing: Add unit/integration tests
- 🌍 Localization: Multi-language support
- ⚡ Performance: Optimization improvements
# Test backend
pytest tests/
# Test frontend
cd frontend && npm run test- Use
--reloadflag for hot-reloading during development - Check logs in
qa_log.logfor backend issues - Use browser DevTools for frontend debugging
- GPU/CPU compatibility: Test both modes
- Large file processing: Consider memory limits
- API rate limits: Handle gracefully
- Cross-platform: Test on Windows/Linux/Mac if possible
- Be respectful and inclusive
- Welcome newcomers
- Accept constructive criticism
- Focus on what's best for the community
- Harassment or discriminatory language
- Trolling or insulting comments
- Personal or political attacks
- Publishing others' private information
- Discussions: Use GitHub Discussions for questions
- Issues: For bugs and feature requests
- Pull Requests: For code contributions
By contributing, you agree that your contributions will be licensed under the MIT License.
Thank you for making Cerno Docs better! 🎉