Contributing
Thank you for your interest in contributing to Learningmap! This guide will help you get started.
Code of Conduct
By participating in this project, you agree to abide by our Code of Conduct.
How Can I Contribute?
Reporting Bugs
Before creating bug reports, please check the existing issues to avoid duplicates.
When creating a bug report, include:
- A clear and descriptive title
- Steps to reproduce the behavior
- Expected behavior
- Actual behavior
- Screenshots (if applicable)
- Your environment (browser, OS, Node.js version)
Suggesting Enhancements
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, include:
- A clear and descriptive title
- A detailed description of the proposed feature
- Explain why this enhancement would be useful
- If possible, provide examples of how it would work
Pull Requests
- Fork the repository and create your branch from
main - Set up your development environment (see Development)
- Make your changes following our coding standards
- Add tests if you're adding functionality
- Run linting and tests:
pnpm lint pnpm test pnpm build - Create a changeset:
Follow the prompts to describe your changespnpm exec changeset - Commit your changes with a clear commit message
- Push to your fork and submit a pull request
Development Guidelines
Code Style
- Follow the existing code style in the repository
- Use TypeScript with proper type definitions
- Run Prettier before committing (automatic with Husky)
- Keep components focused and modular
Commit Messages
- Use clear and descriptive commit messages
- Start with a verb in present tense (e.g., "Add", "Fix", "Update")
- Reference issues and PRs when relevant
Testing
- Write tests for new features
- Ensure existing tests pass
- Follow existing test patterns
- Run
pnpm testbefore submitting
Documentation
- Update documentation when adding features
- Add JSDoc comments for public APIs
- Update the changelog via changesets
Project Structure
learningmap/
├── packages/
│ ├── learningmap/ # Core React component library
│ └── web-component/ # Web component wrapper
├── platforms/
│ └── web/ # Web application
├── docs/ # Documentation
└── scripts/ # Build scripts
Making Your First Contribution
Not sure where to start? Look for issues labeled:
good first issue- Good for newcomershelp wanted- Extra attention is needed
Getting Help
- GitHub Issues: For bugs and feature requests
- Matrix Community: Join us at https://matrix.to/#/#openpatch:matrix.org
- Email: contact@openpatch.org
License
By contributing, you agree that your contributions will be licensed under the MIT License.
