Thank you for your interest in contributing to QuckApp! This document provides guidelines and instructions for contributing.
By participating in this project, you agree to maintain a respectful and inclusive environment for everyone.
- Docker & Docker Compose
- Node.js 20+
- Go 1.21+
- Python 3.12+
- Java 17+
- Elixir 1.15+
# Clone with submodules
git clone --recurse-submodules https://github.com/quckapp/quckapp.git
cd quckapp
# Start infrastructure
cd infrastructure/docker
cp .env.example .env
docker compose -f docker-compose.infra.yml up -d
# Install dependencies for the service you're working on
cd services/<service-name>
# Follow service-specific setup instructions- Check existing issues to avoid duplicates
- Use the bug report template
- Include:
- Clear description of the issue
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, versions)
- Relevant logs or screenshots
- Check existing feature requests
- Use the feature request template
- Describe the use case and benefits
- Consider implementation approach
feature/<description> # New features
fix/<description> # Bug fixes
docs/<description> # Documentation
refactor/<description> # Code refactoring
test/<description> # Test additions/changes
Follow conventional commits:
<type>(<scope>): <description>
[optional body]
[optional footer]
Types: feat, fix, docs, style, refactor, test, chore
Examples:
feat(auth): add OAuth2 Google provider
fix(message-service): resolve race condition in broadcast
docs(api): update WebSocket endpoint documentation
- Fork & Branch: Create a feature branch from
main - Develop: Make your changes following code standards
- Test: Ensure all tests pass
- Document: Update relevant documentation
- PR: Submit a pull request with:
- Clear title and description
- Link to related issues
- Screenshots for UI changes
- Test evidence
- Write clean, readable, self-documenting code
- Follow existing patterns in the codebase
- Add comments only for complex logic
- Keep functions focused and small
npm run lint
npm run format
npm run test./mvnw spotless:check
./mvnw testgo fmt ./...
go vet ./...
go test ./...ruff check .
black --check .
pytestmix format --check-formatted
mix credo
mix test- Unit tests for new functionality
- Integration tests for API endpoints
- Maintain or improve code coverage
- All CI checks must pass
QuckApp/
├── admin/ # Admin dashboard (React)
├── docs/ # Documentation (Docusaurus)
├── infrastructure/ # DevOps & IaC
├── mobile/ # Mobile app (React Native)
├── packages/ # Shared packages
├── services/ # Microservices (33 total)
└── web/ # Web app (React)
| Stack | Services |
|---|---|
| NestJS | backend-gateway, notification-service, realtime-service |
| Spring Boot | auth, user, permission, audit, admin |
| Go | workspace, channel, thread, search, file, media, etc. |
| Elixir | presence, message, call, huddle, event-broadcast, etc. |
| Python | analytics, ml, moderation, sentiment, insights, etc. |
- Issues: For bugs and feature requests
- Discussions: For questions and ideas
- Pull Requests: For code contributions
Contributors will be recognized in:
- Release notes
- Contributors list
- Project documentation
By contributing, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to QuckApp!