Files
ai-coding-starter-kit-v2/.claude/skills/backend/checklist.md
T
patrickandClaude Sonnet 5 4a19335a1e feat: rework starter kit for self-hosted deploy (Vite/React + Fastify/Drizzle/Postgres)
Replace Next.js/Supabase/Vercel stack with a self-hostable setup: Vite+React
frontend, Fastify+Drizzle+PostgreSQL backend with own JWT auth, deploy via
git pull + rsync + systemd (checkout/service separated, updates pulled from
Gitea). Adds a reference auth route (register/login/me) as the canonical
pattern for new routes. Updates all skills/rules/agents/docs to match.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BMdBJfD9TT6XUU2NqGG1PN
2026-09-08 11:42:47 +02:00

34 lines
1.7 KiB
Markdown

# Backend Implementation Checklist
## Core Checklist
- [ ] Checked existing tables/routes via git before creating new ones
- [ ] Database tables added to Drizzle schema (`backend/src/db/schema.ts`)
- [ ] Migration generated (`npm run db:generate`) and applied (`npm run db:migrate`)
- [ ] Indexes created on performance-critical columns
- [ ] Foreign keys set with appropriate `onDelete` behavior
- [ ] All planned endpoints implemented in `backend/src/routes/` — follow the pattern in `backend/src/routes/auth.ts` (Zod `safeParse`, typed JWT payload via `types.d.ts`, `app.authenticate` preHandler)
- [ ] Authentication verified (no access without a valid JWT)
- [ ] Ownership/authorization checked explicitly in the route handler
- [ ] Input validation with Zod on all POST/PUT requests
- [ ] Meaningful error messages with correct HTTP status codes
- [ ] No TypeScript errors in routes
- [ ] All endpoints tested manually
- [ ] No hardcoded secrets in source code
- [ ] Frontend connected to real API endpoints
- [ ] User has reviewed and approved
## Verification (run before marking complete)
- [ ] `npm run build` passes without errors (backend)
- [ ] All acceptance criteria from feature spec addressed in the API
- [ ] All endpoints return correct status codes (test with curl or Thunder Client)
- [ ] `features/INDEX.md` status updated to "In Progress"
- [ ] Code committed to git
## Performance Checklist
- [ ] All frequently filtered columns have indexes
- [ ] No N+1 queries (use Drizzle joins/relational queries instead of loops)
- [ ] All list endpoints paginate (limit/offset)
- [ ] Zod validation on all write endpoints
- [ ] Slow queries cached where appropriate (optional for MVP)
- [ ] Rate limiting on public-facing routes (optional for MVP)