Thanks for your interest in contributing! This project has two main parts: a FastAPI backend (backend/) and a React/TypeScript dashboard (dashboard/).
- Backend setup: see backend/README.md
- Frontend setup: see dashboard/README.md
- Docker deployment (fastest way to run the whole stack): see docker/README.md
- Fork the repository and create a branch from
masterfor your change. - Make your change. Keep pull requests focused on a single fix or feature.
- Before opening a PR, verify locally:
- Backend: the app imports cleanly (
uv run python -c "import app.main"frombackend/) - Dashboard:
npm run buildpasses indashboard/
- Backend: the app imports cleanly (
- Open a pull request against
master. CI (backend import smoke-test + dashboard build) runs automatically on every PR.
Please open an issue using the bug report template and include:
- Steps to reproduce
- What you expected vs. what happened
- Relevant logs (
docker compose logsif running via Docker)
Please do not open a public issue for security vulnerabilities. See SECURITY.md for how to report them privately.
- Backend: Python, formatted with
black, linted withflake8(seebackend/package.jsonscripts) - Frontend: TypeScript/React, linted with
eslint(npm run lintindashboard/)
By contributing, you agree that your contributions will be licensed under the project's MIT License.