chore: add missing project scaffolding
This commit is contained in:
69
CLAUDE.md
Normal file
69
CLAUDE.md
Normal file
@@ -0,0 +1,69 @@
|
||||
# Voyage Development Instructions (Claude Code)
|
||||
|
||||
## Project
|
||||
- **Name**: Voyage
|
||||
- **Purpose**: Build and maintain a self-hosted travel companion web app (fork of AdventureLog).
|
||||
- **Stack**: SvelteKit 2 (TypeScript) frontend · Django REST Framework (Python) backend · PostgreSQL + PostGIS · Memcached · Docker · Bun (frontend package manager)
|
||||
|
||||
## Architecture Overview
|
||||
- Use the API proxy pattern: never call Django directly from frontend components.
|
||||
- Route all frontend API calls through `frontend/src/routes/api/[...path]/+server.ts`.
|
||||
- Proxy target is `http://server:8000`; preserve session cookies and CSRF behavior.
|
||||
- Service ports:
|
||||
- `web` → `:8015`
|
||||
- `server` → `:8016`
|
||||
- `db` → `:5432`
|
||||
- `cache` → internal only
|
||||
- Keep authentication session-based with `django-allauth`.
|
||||
- Fetch CSRF token from `/auth/csrf/` and send `X-CSRFToken` on mutating requests.
|
||||
- Preserve mobile middleware support for `X-Session-Token`.
|
||||
|
||||
## Codebase Layout
|
||||
- Backend root: `backend/server/`
|
||||
- Apps: `adventures/`, `users/`, `worldtravel/`, `integrations/`, `achievements/`, `chat/`
|
||||
- Frontend root: `frontend/src/`
|
||||
- Routes: `src/routes/`
|
||||
- Shared types: `src/lib/types.ts`
|
||||
- Components: `src/lib/components/`
|
||||
- Locales: `src/locales/`
|
||||
|
||||
## Development Workflow
|
||||
- Develop Docker-first. Start services with Docker before backend-dependent work.
|
||||
- Use these commands:
|
||||
|
||||
### Frontend
|
||||
- `cd frontend && npm run format`
|
||||
- `cd frontend && npm run lint`
|
||||
- `cd frontend && npm run check`
|
||||
- `cd frontend && npm run build`
|
||||
|
||||
### Backend
|
||||
- `docker compose exec server python3 manage.py test`
|
||||
- `docker compose exec server python3 manage.py migrate`
|
||||
|
||||
### Docker
|
||||
- `docker compose up -d`
|
||||
- `docker compose down`
|
||||
|
||||
## Pre-Commit Checklist
|
||||
Run in this exact order:
|
||||
1. `cd frontend && npm run format`
|
||||
2. `cd frontend && npm run lint`
|
||||
3. `cd frontend && npm run check`
|
||||
4. `cd frontend && npm run build`
|
||||
|
||||
**ALWAYS run format before committing.**
|
||||
|
||||
## Known Issues (Expected)
|
||||
- Frontend `npm run check`: **3 type errors + 19 warnings** expected
|
||||
- Backend tests: **2/3 fail** (expected)
|
||||
- Docker dev setup has frontend-backend communication issues (500 errors beyond homepage)
|
||||
|
||||
## Key Patterns
|
||||
- i18n: wrap user-facing strings with `$t('key')`
|
||||
- API access: always use proxy route `/api/[...path]/+server.ts`
|
||||
- Styling: prefer DaisyUI semantic classes (`bg-primary`, `text-base-content`)
|
||||
- CSRF handling: use `/auth/csrf/` + `X-CSRFToken`
|
||||
|
||||
## Conventions
|
||||
- Do **not** attempt to fix known test/configuration issues as part of feature work.
|
||||
Reference in New Issue
Block a user