Getting Started
Development Commands
| Command | Description |
|---|---|
make setup | Install all dependencies |
make run | Start backend + frontend |
make dev-backend | FastAPI with hot reload |
make dev-frontend | Vite with HMR |
make db-migrate | Run Alembic migrations |
make lint | Run ruff + ESLint |
make format | Format with ruff + Prettier |
Code Style
Python (Backend)
- Ruff for linting and formatting (88-char lines, double quotes)
- Type hints required
- Config in
backend/pyproject.toml B008is intentionally ignored (FastAPIDepends()pattern)
TypeScript (Frontend)
- ESLint + Prettier
- Components in
PascalCase.tsx - Hooks start with
use - Utilities in
camelCase.ts
Testing
- Tests use
asyncio_mode = "auto"— no need for@pytest.mark.asyncio - Mock LLM calls to avoid API costs
- Fixtures in
backend/tests/conftest.py
Database Migrations
Pull Requests
- Fork the repository
- Create a feature branch
- Make your changes with tests
- Run
make lintandmake format - Submit a PR with a clear description