Getting Started
Fork and Clone
- Fork the repository on GitHub by clicking the “Fork” button
- Clone your fork locally:
- Add upstream remote to stay in sync:
Development Environment Setup
- Install dependencies using Bun:
- Set up environment variables:
- Start the development server:
Contribution Workflow
Creating Feature Branches
Always create a new branch for your work. Use descriptive names that reflect the change:Making Changes
- Write your code following our code style guidelines
- Add tests for new features and bug fixes
- Run checks locally before pushing:
- Commit your changes using Conventional Commits:
Pull Request Process
- Push to your fork:
-
Create a Pull Request on GitHub with:
- Descriptive title using conventional commit format
- Clear description explaining:
- What problem does this solve?
- How does it solve it?
- Any breaking changes?
- Link related issues:
- Request review from maintainers
- Address feedback from reviewers promptly
- Keep your branch updated with the base branch:
PR Review Criteria
What reviewers look for:- Clear, descriptive commit messages
- Well-documented code with comments
- Comprehensive test coverage
- No breaking changes (unless necessary and discussed)
- Follows project conventions
- Updated documentation
- Large monolithic commits
- Undocumented code
- Missing tests
- Breaking changes without discussion
- Inconsistent style
- Outdated documentation
Contribution Areas
Bug Fixes
Found a bug? We appreciate bug fixes!- Search existing issues to avoid duplicates
- Create an issue describing the bug (if not exists)
- Create a fix with tests that verify the bug is resolved
- Link the issue in your PR description:
Fixes #123
New Features
Want to add a new feature?- Discuss first by creating a feature request issue
- Get consensus from maintainers before starting work
- Write a design document for complex features
- Implement with tests and documentation
- Update relevant docs (README, API docs, etc.)
Documentation
Documentation improvements are always welcome!- Fix typos and grammatical errors
- Clarify confusing sections
- Add missing examples
- Update outdated information
- Improve code comments
Tests
Help us improve test coverage:- Add missing unit tests
- Add integration tests
- Improve test clarity and maintainability
- Add edge case tests
UI/UX Improvements
Enhance the user experience:- Improve accessibility
- Better error messages
- Enhanced visual design
- Performance optimizations
- Responsive design improvements
Project Structure
Understanding the codebase organization:Common Development Tasks
Working on Frontend
- Components:
packages/frontend/src/components/ - Pages:
packages/frontend/src/pages/ - Styling: Tailwind CSS (
tailwind.config.js)
Working on Backend
- Routes:
packages/worker/src/routes/ - Middleware:
packages/worker/src/middleware/ - Services:
packages/worker/src/services/
Working on Shared Types
- Types:
packages/shared/src/types.ts - Utils:
packages/shared/src/utils.ts
Database Development
Feature Development Workflow
1. Design Phase
- Write design document for complex features
- Discuss with maintainers before major changes
- Update architecture docs if needed
2. Implementation Phase
- Create feature branch
- Write code with tests
- Update types in shared package
- Document new APIs
3. Testing Phase
- Run local tests:
bun test - Test in dev environment
- Verify no regressions
4. Documentation Phase
- Update README if user-facing
- Add/update API documentation
- Add comments for complex logic
5. Review Phase
- Push to your fork
- Create pull request
- Address reviewer feedback
- Squash commits if requested
6. Merge Phase
- Maintainer merges to develop
- Tested in staging
- Merged to main for production
Reporting Issues
Bug Reports
Include:- Clear description of the bug
- Steps to reproduce
- Expected behavior
- Actual behavior
- Environment details (OS, Node version, browser, etc.)
- Screenshots or logs if applicable
Feature Requests
Include:- Use case / problem it solves
- Proposed solution
- Alternatives considered
- Any breaking changes
- Willingness to contribute implementation
Getting Help
Need assistance?- GitHub Issues: Bug reports and feature requests
- GitHub Discussions: Q&A and general discussions
- Documentation: Check our documentation
Code of Conduct
- Be respectful and inclusive
- Be professional in all interactions
- Welcome newcomers and help them get started
- Respect differing viewpoints and experiences
- Report violations to maintainers
License
By contributing, you agree that your contributions will be licensed under the MIT License.Thank you for contributing to Orquestra!