docs: overhaul project documentation and contributing guide (Task #190)

This commit is contained in:
2026-01-13 23:28:16 +01:00
parent 2553d087a0
commit 712f62f7ae
5 changed files with 213 additions and 10 deletions

View File

@@ -1,15 +1,44 @@
# Contributing to Plexus
# 🤝 Contributing to Plexus
Thank you for your interest in contributing to Plexus!
We maintain high standards for code quality and documentation. Please follow this workflow for all contributions.
## 🤝 How to Contribute
## 🔄 Development Workflow
1. **Pick a Task**: Check the [Task Tracker](file:///home/sinan/Documents/repositories/local/plexus/docs/tasks.md) for open items.
2. **Fork & Branch**: Create a new branch for your feature or bugfix.
3. **Develop**: Follow the [Development Guide](file:///home/sinan/Documents/repositories/local/plexus/docs/development.md).
4. **Test**: Ensure all tests pass.
5. **Pull Request**: Submit a PR with a clear description of your changes.
### 1. Pick a Task
Before coding, ensure you are working on an assigned task.
- List tasks: `make task-list`
- Add a task: `make task-add title="Your Task"`
- Mark as in-progress: (Update manually in `tasks/tasks.duckdb` or via CLI if implemented).
## 📜 Code of Conduct
### 2. Implementation
- Write clean, modular code.
- Follow the existing design patterns (Vue 3 Composition API, Pinia, Socket.io).
- Ensure UI changes are mobile-friendly and follow the Discord-inspired aesthetic.
Please be respectful and collaborative. We aim to build a welcoming community for all developers.
### 3. Verification
Before committing, you **must** verify your changes:
- Run linting: `make lint`
- Run tests: `make test`
- Manual check: Verify the feature in the browser.
### 4. Commit
We use **Husky** and **lint-staged** to enforce quality.
- Your commit will fail if linting or tests do not pass.
- Use descriptive commit messages (e.g., `feat: add user profiles`, `fix: message alignment`).
### 5. Documentation
If your change affects the architecture, data model, or API:
- Update the relevant file in `docs/`.
- Ensure the root `README.md` is still accurate.
### 6. Finalize Task
Mark the task as done:
- `make task-done id=X`
## 🛠 Tooling
- **Linting**: ESLint for JS/Vue, Ruff for Python.
- **Testing**: Mocha for backend integration tests.
- **Automation**: Use the `Makefile` for all common operations.
---
Thank you for helping make Plexus better!