Contributing¶
Thank you for considering contributing to IP-HOP! 🎉
Ways to Contribute¶
- 🐛 Report bugs
- 💡 Suggest features
- 📝 Improve documentation
- 🔧 Submit code improvements
- 🌍 Add translations
Development Setup¶
Prerequisites¶
- Python 3.12+
- Node.js 20+
- Docker and Docker Compose
Clone Repository¶
Backend Development¶
cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip install -r requirements-dev.txt
# Run tests
pytest
# Run backend server
uvicorn app.main:app --reload
Frontend Development¶
Pull Request Process¶
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Run tests:
pytestandnpm test - Commit with clear message:
git commit -m 'feat: add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open Pull Request
Commit Convention¶
We use Conventional Commits:
feat:New featurefix:Bug fixdocs:Documentationstyle:Formattingrefactor:Code restructuringtest:Adding testschore:Maintenance
Code Style¶
Python¶
- Follow PEP 8
- Use type hints
- Run
blackfor formatting - Run
mypyfor type checking
TypeScript/React¶
- Follow project ESLint config
- Use Prettier for formatting
- Write tests for new components
Testing¶
All contributions should include tests:
- Backend: pytest tests in
backend/tests/ - Frontend: Jest tests in
frontend/__tests__/
Run all tests:
Documentation¶
Update documentation when:
- Adding new features
- Changing configuration
- Modifying API endpoints
Documentation lives in docs/ directory.
Questions?¶
- 💬 Open a Discussion
- 📧 Contact maintainers
Thank you for contributing! ❤️