How to Contribute
Thank you for your interest in contributing to blinqr! This guide will help you get started.
Ways to Contribute
Section titled “Ways to Contribute”Report Bugs
Section titled “Report Bugs”Found a bug? Please open an issue on GitHub:
- Go to blinqr-firmware issues
- Click “New Issue”
- Include:
- What you expected to happen
- What actually happened
- Steps to reproduce
- Your hardware/software setup
Suggest Features
Section titled “Suggest Features”Have an idea? We’d love to hear it!
- Check existing issues to avoid duplicates
- Open a new issue with the “enhancement” label
- Describe the feature and why it would be useful
Improve Documentation
Section titled “Improve Documentation”Documentation improvements are always welcome:
- Fix typos or unclear explanations
- Add missing information
- Translate to other languages
- Add diagrams or images
Submit Code
Section titled “Submit Code”Ready to write some code? Here’s how:
Development Setup
Section titled “Development Setup”Firmware
Section titled “Firmware”# Clone the repositorygit clone https://github.com/hud-code/blinqr-firmware.gitcd blinqr-firmware
# Install PlatformIO (if not already installed)pip install platformio
# Buildpio run
# Upload to your devicepio run --target uploadDocumentation Site
Section titled “Documentation Site”# Clone the docs repositorygit clone https://github.com/hud-code/blinqr.io.gitcd blinqr.io
# Install dependenciesnpm install
# Start dev servernpm run devPull Request Process
Section titled “Pull Request Process”1. Fork the Repository
Section titled “1. Fork the Repository”Click the “Fork” button on GitHub to create your own copy.
2. Create a Branch
Section titled “2. Create a Branch”git checkout -b feature/my-new-feature# orgit checkout -b fix/bug-description3. Make Your Changes
Section titled “3. Make Your Changes”- Write clear, commented code
- Follow existing code style
- Test your changes thoroughly
4. Commit Your Changes
Section titled “4. Commit Your Changes”Write clear commit messages:
# Goodgit commit -m "Add brightness control for LEDs"git commit -m "Fix button debounce timing issue"
# Not so goodgit commit -m "fixed stuff"git commit -m "updates"5. Push and Create PR
Section titled “5. Push and Create PR”git push origin feature/my-new-featureThen go to GitHub and create a Pull Request.
6. Code Review
Section titled “6. Code Review”- Respond to feedback promptly
- Make requested changes
- Be patient - reviews take time
Code Style
Section titled “Code Style”C++ (Firmware)
Section titled “C++ (Firmware)”- Use descriptive variable names
- Comment complex logic
- Keep functions focused and small
- Use the existing formatting style
// Goodvoid HwController::setLed(int index, bool state) { if (index < 0 || index >= NUM_SLOTS) { Serial.printf("[HwController] Invalid LED index: %d\n", index); return; } // ... implementation}
// Avoidvoid setled(int i, bool s) { digitalWrite(p[i], s); }TypeScript (App/Docs)
Section titled “TypeScript (App/Docs)”- Use TypeScript strict mode
- Prefer
constoverlet - Use meaningful names
- Add JSDoc comments for public APIs
// Good/** Updates a reminder slot's configuration */const updateSlot = (id: number, updates: Partial<ReminderSlot>) => { // ...};
// Avoidconst update = (i, u) => { /* ... */ };Testing
Section titled “Testing”Firmware
Section titled “Firmware”Currently, testing is manual:
- Upload firmware to device
- Connect with the mobile app
- Test all LEDs and buttons
- Verify BLE communication
Automated testing contributions welcome!
Documentation
Section titled “Documentation”Preview your changes locally:
npm run dev# Open http://localhost:4321Check for broken links:
npm run buildCommunity Guidelines
Section titled “Community Guidelines”Be Respectful
Section titled “Be Respectful”- Treat everyone with respect
- Be welcoming to newcomers
- Assume good intentions
Be Constructive
Section titled “Be Constructive”- Provide helpful feedback
- Suggest improvements, not just criticisms
- Celebrate successes
Be Patient
Section titled “Be Patient”- Maintainers are volunteers
- Complex changes take time to review
- Not all suggestions can be accepted
Recognition
Section titled “Recognition”Contributors are recognized in:
- GitHub contributors list
- Release notes for significant contributions
- Special thanks in documentation
Getting Help
Section titled “Getting Help”Stuck? Need help?
- Open a GitHub Discussion
- Check existing issues for similar problems
- Read through the documentation
License
Section titled “License”By contributing, you agree that your contributions will be licensed under the same license as the project (MIT).
Thank you for helping make blinqr better! 🎉