# Onboarding Document Template

## README.md - Full Template

```markdown
# [Project Name]

> One-sentence description of what this does and who uses it.

[![CI](https://github.com/org/repo/actions/workflows/ci.yml/badge.svg)](https://github.com/org/repo/actions/workflows/ci.yml)
[![Coverage](https://codecov.io/gh/org/repo/branch/main/graph/badge.svg)](https://codecov.io/gh/org/repo)

## What is this?

[2-3 sentences: problem it solves, who uses it, current state]

**Live:** https://myapp.com  
**Staging:** https://staging.myapp.com  
**Docs:** https://docs.myapp.com

---

## Quick Start

### Prerequisites

| Tool | Version | Install |
|------|---------|---------|
| Node.js | 20+ | `nvm install 20` |
| pnpm | 8+ | `npm i -g pnpm` |
| Docker | 24+ | [docker.com](https://docker.com) |
| PostgreSQL | 16+ | via Docker (see below) |

### Setup (5 minutes)

```bash
git clone https://github.com/org/repo
cd repo
pnpm install
docker compose up -d
cp .env.example .env
pnpm db:migrate
pnpm db:seed
pnpm dev
pnpm test
```

### Verify it works

- [ ] App loads on localhost
- [ ] Health endpoint returns ok
- [ ] Tests pass

---

## Architecture

### System Overview

```
Browser / Mobile
    |
    v
[Next.js App] <- [Auth]
    |
    +-> [PostgreSQL]
    +-> [Redis]
    +-> [S3]
```

### Tech Stack

| Layer | Technology | Why |
|-------|-----------|-----|
| Frontend | Next.js | SSR + routing |
| Styling | Tailwind + shadcn/ui | Rapid UI |
| API | Route handlers | Co-location |
| Database | PostgreSQL | Relational |
| Queue | BullMQ + Redis | Background jobs |

---

## Key Files

| Path | Purpose |
|------|---------|
| `app/` | Pages and route handlers |
| `src/db/` | Schema and migrations |
| `src/lib/` | Shared utilities |
| `tests/` | Test suites and helpers |
| `.env.example` | Required variables |

---

## Common Developer Tasks

### Add a new API endpoint

```bash
touch app/api/my-resource/route.ts
touch tests/api/my-resource.test.ts
```

### Run a database migration

```bash
pnpm db:generate
pnpm db:migrate
```

### Add a background job

```bash
# Create worker module and enqueue path
```

---

## Debugging Guide

### Common Errors

- Missing environment variable
- Database connectivity failure
- Expired auth token
- Generic 500 in local dev

### Useful SQL Queries

- Slow query checks
- Connection status
- Table bloat checks

### Log Locations

| Environment | Logs |
|-------------|------|
| Local dev | local terminal |
| Production | platform logs |
| Worker | worker process logs |

---

## Contribution Guidelines

### Branch Strategy

- `main` protected
- feature/fix branches with ticket IDs

### PR Requirements

- CI green
- Tests updated
- Why documented
- Self-review completed

### Commit Convention

- `feat(scope): ...`
- `fix(scope): ...`
- `docs: ...`

---

## Audience-Specific Notes

### Junior Developers
- Start with core auth/data modules
- Follow tests as executable examples

### Senior Engineers
- Read ADRs and scaling notes first
- Validate performance/security assumptions early

### Contractors
- Stay within scoped feature boundaries
- Use wrappers for external integrations
```

## Usage Notes

- Keep onboarding setup under 10 minutes where possible.
- Include executable verification checks after each setup phase.
- Prefer links to canonical docs instead of duplicating long content.
- Update this template when stack conventions or tooling change.
