# ReadMeABook - Audiobook Library Management

**Status:** MVP Complete (Phases 1-4 ✅) | Docker deployment pending

## Stack
- **Frontend:** Next.js 14+, TypeScript, Tailwind CSS
- **Backend:** Node.js/Express via Next.js API routes
- **Database:** PostgreSQL (Docker embedded)
- **Queue:** Bull + Redis (Docker embedded)
- **Deployment:** Single Docker image

## Architecture
```
Docker Container
├── Next.js App (Frontend + Backend)
├── PostgreSQL (users, audiobooks, requests, config, jobs)
├── Bull Queue + Redis (background jobs)
└── Volumes: /config, /downloads, /media
```

External integrations: Plex (auth + library), Prowlarr/Jackett (indexers), qBittorrent/Transmission (downloads), Audible (metadata scraping)

## Core Features (Implemented)
- Plex OAuth authentication
- Setup wizard (8 steps: admin, Plex, Prowlarr, download client, paths)
- Audiobook discovery (popular, new releases via Audible scraping)
- Request management with status tracking
- Automation pipeline: search → download → organize → Plex scan
- Admin dashboard with metrics, active downloads, recent requests
- Settings pages (Plex, Prowlarr, download client, paths)
- Scheduled jobs (Plex scan, Audible refresh, retry logic, cleanup)
- User/admin RBAC

## User Flow
1. Login with Plex → 2. Search/browse audiobooks → 3. Request → 4. Auto: search indexers → download torrent → organize files → scan Plex → 5. Available in Plex library

## Documentation Map
**Backend:**
- [database.md](backend/database.md) - PostgreSQL schema, Prisma ORM
- [services/auth.md](backend/services/auth.md) - Plex OAuth, JWT sessions
- [services/config.md](backend/services/config.md) - Settings storage, encryption
- [services/jobs.md](backend/services/jobs.md) - Bull queue, background processors
- [services/scheduler.md](backend/services/scheduler.md) - Recurring jobs (cron)

**Integrations:**
- [integrations/plex.md](integrations/plex.md) - Library scanning, OAuth, matching
- [integrations/audible.md](integrations/audible.md) - Web scraping, metadata

**Automation (Phase 3):**
- [phase3/README.md](phase3/README.md) - Automation pipeline overview
- [phase3/qbittorrent.md](phase3/qbittorrent.md) - Download client integration
- [phase3/prowlarr.md](phase3/prowlarr.md) - Indexer search
- [phase3/ranking-algorithm.md](phase3/ranking-algorithm.md) - Torrent selection
- [phase3/file-organization.md](phase3/file-organization.md) - File management, seeding

**Frontend:**
- [frontend/components.md](frontend/components.md) - React components catalog
- [frontend/routing-auth.md](frontend/routing-auth.md) - Route protection, auth flow
- [frontend/pages/login.md](frontend/pages/login.md) - Login page design

**Admin:**
- [admin-dashboard.md](admin-dashboard.md) - Metrics, monitoring
- [settings-pages.md](settings-pages.md) - Configuration UI
- [setup-wizard.md](setup-wizard.md) - First-time setup flow

**Deployment:**
- [deployment/docker.md](deployment/docker.md) - Docker Compose, volumes, env vars

**Testing:**
- [testing.md](testing.md) - Backend unit tests, scripts

## Development Phases
✅ Phase 1: Foundation (auth, database, setup wizard)
✅ Phase 2: User features (discovery, requests, dashboard)
✅ Phase 3: Automation (search, download, organize, Plex integration)
✅ Phase 4: Admin tools (dashboard, settings, monitoring, scheduled jobs)
⏳ Phase 5: Enhanced features (WebSockets, advanced search)
⏳ Phase 6: Advanced admin (analytics, notifications, quality profiles)

## Standards
- Files ≤400 lines
- File headers link to documentation
- Update docs before/after code changes
- Type-safe TypeScript throughout
- Encrypted sensitive config (AES-256)
