👍 Thanks for helping make PlugBot better!
We follow the fork → branch → pull-request workflow on GitHub.
| Tool | Purpose |
|---|---|
| Docker (optional) | Simplest way to run the full stack locally |
| Python 3.11 | Backend development & tests |
| Node 18 | Front-end development & tests |
pre-commit |
Auto-format & lint on commit |
Install hooks once:
pip install pre-commit
pre-commit installfeat/<short-description>→ new functionalityfix/<short-description>→ bug fixesdocs/<short-description>→ documentation only
| Language | Formatter / Linter |
|---|---|
| Python | black, isort, ruff |
| TypeScript/JSX | prettier, eslint |
| Tailwind CSS | prettier-plugin-tailwindcss |
Hooks run these automatically—commits that fail lint/format will be rejected.
# Backend (pytest)
docker compose exec backend pytest -q
# or, outside Docker
pytest
# Front-end (Jest + RTL)
cd frontend && npm testPull requests should keep the entire suite green.
Follow Conventional Commits:
feat: add webhook support
fix(db): nullable telegram_username
docs: update readme quick-start
- Code lints & is formatted
- Unit / integration tests added or updated
- Documentation updated (README, Storybook, OpenAPI, etc.)
-
docker compose up --buildstill works end-to-end - CI passes on GitHub Actions
Happy hacking! 🚀