Local Setup (Without Docker)
If you prefer running services directly on your machine instead of Docker.
Backend
cd apps/server
# Copy environment file
cp .env.example .env
# Install Python dependencies
uv sync
# Run migrations (uses SQLite by default)
uv run python manage.py migrate
# Seed default categories (18 categories)
uv run python manage.py seed_categories
# Optional: create admin user
uv run python manage.py createsuperuser
# Verify setup
uv run pytest -v
# Start dev server
uv run python manage.py runserver
# Server runs on http://127.0.0.1:8000
Mobile Client
cd apps/mobile-client
# Install Node.js dependencies (from repo root)
cd ../..
pnpm install
# Start Metro bundler
cd apps/mobile-client
pnpm start
# Scan QR code with Expo Go, or press 'i' for iOS / 'a' for Android
Common Commands
Backend
| Command | Description |
|---|---|
uv sync | Install dependencies |
uv run python manage.py runserver | Start dev server |
uv run python manage.py migrate | Run migrations |
uv run python manage.py makemigrations | Create migrations |
uv run python manage.py seed_categories | Seed default categories |
uv run pytest | Run tests |
uv add <package> | Add a dependency |
uv add --dev <package> | Add a dev dependency |
Mobile
| Command | Description |
|---|---|
pnpm start | Start Metro bundler |
pnpm ios | Run on iOS simulator |
pnpm android | Run on Android emulator |
pnpm test | Run tests |
pnpm lint | Run ESLint |
pnpm type-check | Run TypeScript check |
pnpm db:generate | Generate Drizzle SQL migrations |