Thank you for your interest in contributing to QuickDesk! We welcome contributions from the community.
- Python 3.8+
- Node.js 18+
- Git
- PostgreSQL (for production testing)
-
Fork the repository
git clone https://github.com/YOUR_USERNAME/QuickDesk.git cd QuickDesk -
Backend Setup
cd backend python -m venv .venv source .venv/bin/activate # or .venv\Scripts\activate on Windows pip install -r requirements.txt cp .env.example .env python manage.py migrate python manage.py populate_defaults python manage.py createsuperuser
-
Frontend Setup
cd frontend npm install cp .env.example .env.local
- Follow PEP 8 style guidelines
- Use meaningful variable and function names
- Write docstrings for classes and functions
- Keep functions small and focused
- Use TypeScript for type safety
- Follow React best practices
- Use functional components with hooks
- Keep components small and reusable
Use conventional commit messages:
feat:new featurefix:bug fixdocs:documentation changesstyle:formatting, missing semicolons, etcrefactor:code change that neither fixes a bug nor adds a featuretest:adding missing testschore:updating build tasks, package manager configs, etc
Example:
feat: add ticket status update dropdown for agents
fix: resolve CSRF token issues with API calls
docs: update installation instructions
cd backend
python manage.py testcd frontend
npm test-
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes
- Write clean, well-documented code
- Add tests for new functionality
- Update documentation if needed
-
Test your changes
- Run backend tests:
python manage.py test - Test frontend functionality manually
- Ensure no linting errors
- Run backend tests:
-
Commit your changes
git add . git commit -m "feat: describe your changes"
-
Push to your fork
git push origin feature/your-feature-name
-
Create a Pull Request
- Go to GitHub and create a PR
- Fill out the PR template
- Link any related issues
When filing a bug report, include:
- Clear description of the issue
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
- Environment details (OS, browser, versions)
For feature requests:
- Check if it's already been requested
- Describe the problem you're trying to solve
- Explain why this feature would be beneficial
- Provide examples if possible
backend/
├── app/
│ └── core/
│ ├── models.py # Database models
│ ├── views.py # API views
│ ├── serializers.py # DRF serializers
│ ├── services.py # Business logic
│ └── urls.py # URL routing
├── config/
│ ├── settings.py # Django settings
│ └── urls.py # Main URL config
└── manage.py
frontend/
├── app/ # Next.js app directory
├── components/ # Reusable components
├── contexts/ # React contexts
├── hooks/ # Custom hooks
├── lib/ # Utilities and API client
└── public/ # Static assets
We pledge to make participation in our project a harassment-free experience for everyone.
- Use welcoming and inclusive language
- Be respectful of differing viewpoints
- Gracefully accept constructive criticism
- Focus on what is best for the community
- Show empathy towards other community members
Report any unacceptable behavior to venkatesh.k21062005@gmail.com.
Feel free to reach out:
- Create an issue for bug reports or feature requests
- Email: venkatesh.k21062005@gmail.com
- Start a discussion for general questions
Thank you for contributing to QuickDesk! 🚀