# Contributing to Meshview First off, thanks for taking the time to contribute! ❤️ All types of contributions are encouraged and valued. See the [Table of Contents](#table-of-contents) for ways to help and details about how this project handles contributions. Please read the relevant section before getting started — it will make things smoother for both you and the maintainers. The Meshview community looks forward to your contributions. 🎉 > And if you like the project but don’t have time to contribute code, that’s fine! You can still support Meshview by: > - ⭐ Starring the repo on GitHub > - Talking about Meshview on social media > - Referencing Meshview in your own project’s README > - Mentioning Meshview at local meetups or to colleagues/friends --- ## Table of Contents - [Code of Conduct](#code-of-conduct) - [I Have a Question](#i-have-a-question) - [I Want to Contribute](#i-want-to-contribute) - [Reporting Bugs](#reporting-bugs) - [Suggesting Enhancements](#suggesting-enhancements) - [Your First Code Contribution](#your-first-code-contribution) - [Improving the Documentation](#improving-the-documentation) - [Styleguides](#styleguides) - [Commit Messages](#commit-messages) - [Join the Project Team](#join-the-project-team) --- ## Code of Conduct Meshview is an open and welcoming community. We want everyone to feel safe, respected, and valued. ### Our Standards - Be respectful and considerate in all interactions. - Welcome new contributors and help them learn. - Provide constructive feedback, not personal attacks. - Focus on collaboration and what benefits the community. Unacceptable behavior includes harassment, insults, hate speech, personal attacks, or publishing others’ private information without permission. --- ## I Have a Question > Before asking, please read the [documentation](docs/README.md) if available. 1. Search the [issues list](../../issues) to see if your question has already been asked. 2. If not, open a [new issue](../../issues/new) with the **question** label. 3. Provide as much context as possible (OS, Python version, database type, etc.). --- ## I Want to Contribute ### Legal Notice By contributing to Meshview, you agree that: - You authored the content yourself. - You have the necessary rights to the content. - Your contribution can be provided under the project’s license. --- ### Reporting Bugs Before submitting a bug report: - Make sure you’re using the latest Meshview version. - Verify the issue is not due to a misconfigured environment (SQLite/MySQL, Python version, etc.). - Search existing [bug reports](../../issues?q=label%3Abug). - Collect relevant information: - Steps to reproduce - Error messages / stack traces - OS, Python version, and database backend - Any logs (`meshview-db.service`, `mqtt_reader.py`, etc.) How to report: - Open a [new issue](../../issues/new). - Use a **clear and descriptive title**. - Include reproduction steps and expected vs. actual behavior. ⚠️ Security issues should **not** be reported in public issues. Instead, email us at **meshview-maintainers@proton.me**. --- ### Suggesting Enhancements Enhancements are tracked as [issues](../../issues). Before suggesting: - Make sure the feature doesn’t already exist. - Search for prior suggestions. - Check that it fits Meshview’s scope (mesh packet analysis, visualization, telemetry, etc.). When submitting: - Use a **clear and descriptive title**. - Describe the current behavior and what you’d like to see instead. - Include examples, screenshots, or mockups if relevant. - Explain why it would be useful to most Meshview users. --- ### Your First Code Contribution We love first-time contributors! 🚀 If you’d like to start coding: 1. Look for issues tagged with [good first issue](../../issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22). 2. Fork the repository and clone it locally. 3. Set up the development environment: 4. Run the app locally 5. Create a new branch, make your changes, commit, and push. 6. Open a pull request! --- ### Improving the Documentation Docs are just as important as code. You can help by: - Fixing typos or broken links. - Clarifying confusing instructions. - Adding examples (e.g., setting up Nginx as a reverse proxy, SQLite vs. MySQL setup). - Writing or updating tutorials. --- ## Join the Project Team Meshview is a community-driven project. If you consistently contribute (code, documentation, or community help), we’d love to invite you as a maintainer. Start by contributing regularly, engaging in issues/PRs, and helping others. --- ✨ That’s it! Thanks again for being part of Meshview. Every contribution matters.