Skip to content

Commit ba882be

Browse files
docs: add CONTRIBUTING.md
1 parent 1a637b3 commit ba882be

1 file changed

Lines changed: 180 additions & 0 deletions

File tree

.github/CONTRIBUTING.md

Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
# Contributing to OverKeys
2+
3+
Thank you for your interest in contributing to OverKeys! We welcome contributions from the community to help improve this open-source keyboard layout visualizer. Whether you're fixing bugs, adding features, improving documentation, or suggesting ideas, your help is greatly appreciated.
4+
5+
## Ways to Contribute
6+
7+
There are many ways you can contribute to OverKeys:
8+
9+
- **Code Contributions**: Fix bugs, implement new features, or improve existing functionality
10+
- **Documentation**: Improve docs, add tutorials, or update old instructions
11+
- **Testing**: Report bugs or verify fixes and new features in nightly builds
12+
- **Design**: Suggest UI/UX improvements
13+
- **Community Support**: Help other users in discussions or issues
14+
15+
## Getting Started
16+
17+
### Prerequisites
18+
19+
Before you begin, ensure you have the following installed:
20+
21+
- [Flutter](https://flutter.dev/docs/get-started/install) (latest stable version)
22+
- [Git](https://git-scm.com/downloads)
23+
24+
### Development Setup
25+
26+
1. **Fork the Repository**
27+
- Click the "Fork" button at the top of this repository
28+
- Clone your fork locally:
29+
30+
```bash
31+
git clone https://github.com/YOUR_USERNAME/OverKeys.git
32+
cd OverKeys
33+
```
34+
35+
2. **Set Up the Development Environment**
36+
- Install dependencies:
37+
38+
```bash
39+
flutter pub get
40+
```
41+
42+
- Run the app for testing:
43+
44+
```bash
45+
flutter run -d windows
46+
```
47+
48+
3. **Create a Feature Branch**
49+
- Create and switch to a new branch:
50+
51+
```bash
52+
git checkout -b feat/your-feature-name
53+
```
54+
55+
- Use descriptive branch names (e.g., `feat/add-dark-theme`, `fix/keyboard-layout-bug`, `docs/update-installation-guide`)
56+
57+
### Building from Source
58+
59+
For detailed build instructions:
60+
61+
```bash
62+
# For testing
63+
flutter run -d windows
64+
65+
# For release build
66+
flutter build windows
67+
```
68+
69+
The release executable will be located at `build\windows\x64\runner\Release`.
70+
71+
## Coding Standards
72+
73+
To maintain code quality and consistency:
74+
75+
- Follow Dart's [effective Dart guidelines](https://dart.dev/guides/language/effective-dart)
76+
- Use meaningful variable and function names
77+
- Add comments for complex logic
78+
- Write clear commit messages following [conventional commits](https://www.conventionalcommits.org/)
79+
- Ensure your code passes `flutter analyze`
80+
81+
### Commit Message Format
82+
83+
Use the following format for commit messages:
84+
85+
```text
86+
type(scope): description
87+
88+
[optional body]
89+
90+
[optional footer]
91+
```
92+
93+
Types:
94+
95+
- `feat`: New features
96+
- `fix`: Bug fixes
97+
- `docs`: Documentation changes
98+
- `style`: Code style changes (formatting, etc.)
99+
- `refactor`: Code refactoring
100+
- `test`: Adding or updating tests
101+
- `chore`: Maintenance tasks
102+
103+
Examples:
104+
105+
- `feat: add support for custom keyboard themes`
106+
- `fix: resolve crash when loading invalid layout file`
107+
- `docs: update installation guide for Windows 11`
108+
109+
## Testing
110+
111+
- Run tests before submitting changes:
112+
113+
```bash
114+
flutter test
115+
```
116+
117+
- Add tests for new features when possible
118+
- Ensure all existing tests pass
119+
120+
## Submitting Changes
121+
122+
1. **Commit Your Changes**
123+
124+
```bash
125+
git add .
126+
git commit -m "feat: add your feature description"
127+
```
128+
129+
2. **Push to Your Fork**
130+
131+
```bash
132+
git push origin feat/your-feature-name
133+
```
134+
135+
3. **Create a Pull Request**
136+
- Go to the original repository
137+
- Click "New Pull Request"
138+
- Select your branch and provide a clear description
139+
- Reference any related issues
140+
141+
### Pull Request Guidelines
142+
143+
- Provide a clear title and description
144+
- Reference related issues (e.g., "Fixes #123")
145+
- Include screenshots for UI changes
146+
- Ensure CI checks pass
147+
- Request review from maintainers
148+
149+
## Reporting Issues
150+
151+
Found a bug or have a feature request? Please:
152+
153+
1. Check existing [issues](https://github.com/conventoangelo/OverKeys/issues) first
154+
2. Use the appropriate issue template (bug report or feature request)
155+
3. Provide detailed information:
156+
- Steps to reproduce
157+
- Expected vs. actual behavior
158+
- System information (OS, Flutter version, etc.)
159+
- Screenshots if applicable
160+
161+
## Code of Conduct
162+
163+
We are committed to providing a welcoming and inclusive environment for all contributors. Please read our [Code of Conduct](./CODE_OF_CONDUCT.md) to understand our expectations for behavior and how to report issues.
164+
165+
## Recognition
166+
167+
We appreciate all contributions! Check out our top contributors:
168+
169+
<a href="https://github.com/conventoangelo/OverKeys/graphs/contributors">
170+
<img src="https://contrib.rocks/image?repo=conventoangelo/OverKeys" alt="contrib.rocks image" />
171+
</a>
172+
173+
## Questions?
174+
175+
If you have questions about contributing, feel free to:
176+
177+
- Open a [discussion](https://github.com/conventoangelo/OverKeys/discussions)
178+
- Contact the maintainer directly via [email](mailto:convento.angelo@gmail.com)
179+
180+
Thank you for contributing to OverKeys! 🚀

0 commit comments

Comments
 (0)