About Contributions
How to contribute to ODE.
Overview
The OpenDataEnsemble (ODE) project welcomes contributions from everyone—whether you're interested in code, documentation, design, testing, or community building. We believe that diverse perspectives make our project stronger, and we're committed to creating an inclusive environment where contributors of all backgrounds and experience levels feel welcome.
You don't need to be an expert to contribute. Many of our most valuable contributions come from people who:
- Found a bug while using ODE
- Wanted to improve our documentation
- Had an idea for a new feature
- Wanted to help other users
Ways to Contribute
1. Report Bugs
Found an issue? Help us improve ODE by reporting it:
- Check existing issues first to avoid duplicates
- Create a new issue with:
- Clear title describing the bug
- Steps to reproduce the issue
- Expected behavior vs. actual behavior
- Your environment (OS, browser/app version, etc.)
- Screenshots or error messages if applicable
- Relevant logs or stack traces
2. Suggest Features
Have an idea? We'd love to hear it:
- Check existing issues and GitHub Discussions to prevent duplicates
- Start a discussion about your idea
- Describe the feature and why it would be useful
- Include examples of how you'd use it
- Wait for community feedback before implementing
3. Improve Documentation
Love writing? Documentation is critical to ODE's success:
- Fix typos and grammar errors
- Clarify confusing sections
- Add missing examples or code snippets
- Create how-to guides for common tasks
- Translate documentation to other languages
- Add FAQs based on common questions
Documentation lives in the /docs folder and uses Markdown + Docusaurus.
4. Write Code
Ready to code? We welcome code contributions:
- Bug fixes - Fix reported issues
- Features - Implement new functionality
- Refactoring - Improve code quality
- Tests - Add missing test coverage
- Performance - Optimize bottlenecks
- Dependencies - Update libraries and frameworks
ODE is built with:
- Frontend: TypeScript, React, React Native
- Backend: Go, PostgreSQL
- DevOps: Docker, GitHub Actions
5. Review Code
Experienced with ODE? Help review PRs:
- Review pull requests from other contributors
- Test changes locally
- Provide constructive feedback
- Help document design decisions
- Verify that solutions address the root cause
6. Participate in Community
Like helping others? Build our community:
- Answer questions in GitHub Discussions
- Help troubleshoot issues
- Share your ODE projects and use cases
- Contribute to design discussions
- Mentor new contributors
- Organize community events or webinars
7. Improve Accessibility
Care about inclusion? Help make ODE accessible:
- Report accessibility issues
- Test with screen readers
- Improve color contrast
- Add missing alt-text to images
- Ensure keyboard navigation works
- Test with different browsers/devices
Contribution Process
Phase 1: Planning
- Check existing work - Browse issues and discussions to understand scope
- Discuss first - For major features, start a discussion to get feedback
- Claim the work - Comment on the issue: "I'd like to work on this"
- Understand requirements - Talk to maintainers about expectations
Phase 2: Development
- Set up environment - Follow setup guide for your component
- Create a branch - Use
git checkout -b descriptive-branch-name - Make changes - Write code or documentation
- Test thoroughly - Run tests and verify your changes work
- Commit with clear messages - Use conventional commit format
- Keep commits logical - One feature/fix per commit
For detailed instructions, see the First Time Contributors guide.
Phase 3: Pull Request
- Create PR - Push your branch and open a pull request on GitHub
- Fill out template - Describe your changes clearly
- Link the issue - Reference the issue you're fixing
- Wait for review - Maintainers will review your code
- Respond to feedback - Address comments and requests
- Iterate - Push new commits to update your PR
Phase 4: Merge
- Get approval - Usually 1-2 approvals required
- Pass checks - All automated tests must pass
- Merge! - Maintainers will merge your PR
- Celebrate! - Your code is now part of ODE!
Additional Resources
Getting Started
- First Time Contributors Guide - Step-by-step walkthrough
- Architecture Overview - Understand how ODE works
- Development Setup - Set up your development environment
Development Guides
- Formulus Development - Mobile app
- Formplayer Development - Web app
- Synkronus Development - Backend server
Community
- GitHub Issues - Bug reports and feature requests
- GitHub Discussions - Community discussions
- Code of Conduct - Our community standards
Recognition
Contributors are the backbone of ODE. We recognize contributions by:
- Mentioning you in release notes - Your work is highlighted in each release
- Adding you to contributors list - Your name appears in the README and documentation
- Inviting you to join the team - Major contributors may be invited to join maintainers
- Sharing your work - We highlight great contributions on social media and in announcements
Questions?
Not sure where to start? Here are some options:
- Read this page - You might find your answer here
- Check existing discussions - Search GitHub Discussions
- Start a new discussion - Ask your question in GitHub Discussions
- Comment on an issue - Ask questions on related issues
- Email maintainers - Contact the project maintainers directly
We're here to help and want to make contributing as easy as possible!