- Python version >= 3.12
- uv >= 0.7.14
- Node.js (for UI development)
Clone the repository and install dependencies:
uv syncFor development tools (linting, testing):
uv sync
uv run pre-commit installTo start the FastAPI backend:
uv run python app/main.pyOr, using Uvicorn directly:
uv run uvicorn app.main:app --reloadNavigate to the ui directory and install dependencies:
cd ui
npm installStart the development server:
npm run devThe UI will be available at http://localhost:5173 by default.
-
Lint Python code:
uv run ruff check . uv run mypy .
-
Lint and format UI code:
cd ui npm run lint npm run format -
Run tests:
uv run pytest
-
Clean project:
uv run cleanpy .
app/— Backend FastAPI applicationui/— Frontend (Vite + TypeScript + TailwindCSS)tests/— Tests for backenddeployment/— Deployment scripts and Dockerfilessupabase/— Supabase configuration
See the Makefile for
-
Install Supabase CLI Follow the official guide or run:
npm install -g supabase
-
Start Supabase locally In the project root (where
supabase/exists):supabase start
-
Access Supabase Studio Visit http://localhost:54323 for the dashboard.
-
Apply migrations
supabase db push
-
Create a project Go to Supabase Dashboard, sign in, and create a new project.
-
Configure environment variables
- Get your Supabase URL and anon/public key from the project settings.
- Add them to your backend
.envfile:SUPABASE_URL=your-supabase-url SUPABASE_KEY=your-supabase-key
-
Apply migrations Push your schema to the hosted project:
supabase db push --db-url "postgresql://<username>:<password>@<host>:<port>/dbname" -
Connect your app Use the provided URL and key in your backend and frontend configuration.