Contributing
How to contribute to SafariDesk
Getting Started
- Fork the repository
- Clone your fork
- Create a feature branch
- Make changes
- Submit a pull request
Repository Structure
backend/- Django REST APIfrontend/- React applicationdocker-compose.yml- Docker configuration
Development Setup
See Development for local setup instructions.
Code Style
Python (Backend)
- Follow PEP 8
- Use type hints where applicable
- Write docstrings for functions and classes
JavaScript/TypeScript (Frontend)
- Use TypeScript
- Follow existing code patterns
- Use functional components with hooks
Pull Request Guidelines
- Create feature branches from
main - Write clear commit messages
- Include tests for new features
- Update documentation as needed
- Ensure all tests pass before submitting
Commit Messages
Use clear, descriptive commit messages:
feat: add ticket priority filtering
fix: resolve email parsing issue
docs: update installation guide
refactor: simplify SLA calculationTesting
Backend Tests
cd backend
python manage.py testFrontend Tests
cd frontend
npm testReporting Issues
When reporting bugs, include:
- Steps to reproduce
- Expected behavior
- Actual behavior
- Environment details (OS, Docker version)
- Relevant logs
License
SafariDesk is licensed under AGPL-3.0. Contributions must be compatible with this license.
Questions
Open an issue on GitHub for questions or discussions.