# ShopProQuote Dashboard Overview

Complete map of all pages, tabs, modals, and features. Use this when asked "what's in the dashboard" or "overview of everything" — give a concise structured summary, NOT a code dive.

## Pages

| File | Purpose |
|------|---------|
| `login.html` | Login/signup/auth |
| `repair-orders.html` | Main dashboard (1448 lines) — repair orders + quote builder |
| `index.html` | Home/overview with tasks, alerts, financial dashboard |
| `appointments.html` | Appointments with scan screenshot (OCR + LLM) |
| `customers.html` | Customer database lookup |

## repair-orders.html — 3 Main Tabs

1. **Active Orders** — Current RO cards with status, vehicle, services. Shows next appointment at top.
2. **RO History** — Search/filter completed orders (RO#, name, VIN). Status filter dropdown.
3. **Generate Quote** — Quote builder: service search dropdown, selected services list, vehicle/mileage/discount fields, AI Write + Generate Priorities buttons, Save Quote, Print Preview, Saved Quotes card.

### Modals on repair-orders

- Add Custom Service (text input for recommendation reason, AI Write button)
- Edit RO (status dropdown)
- Financial Summary
- All Saved Quotes modal (search, sort, delete, load)
- Quote Settings (gear icon): 5 sub-tabs — Business Info, Advisor, Financial, Messages, Services
- Account Settings / Change Password / Site Settings

## index.html — Home/Overview

- Critical Alerts section
- Action cards: Repair Orders, Appointments, Financial Dashboard
- Tasks modal: Active tasks + Task History, create/edit with recurring options
- Financial Dashboard modal (3 tabs): Overview, Analytics, Performance — revenue charts, top services, top customers
- Account/Site Settings modals

## appointments.html

- Appointment list with customer/vehicle info
- Scan Screenshot: Tesseract.js OCR → local LLM via `/llm/v1/chat/completions` → parse to structured JSON → review modal → batch create
- Fallback: `parseWithRules()` client-side regex parser if LLM down

## Infrastructure

| Component | Role |
|-----------|------|
| nginx :3447 | Serves site + proxies `/llm/` → llama-server:8081 |
| llama-server | Currently Qwen2.5-7B Q2_K via Vulkan (3.2 GB VRAM). Drives AI Write, Generate Priorities, OCR parsing |
| PocketBase :8091 | Local DB. Stores services, quotes, repair orders, settings |
| Tesseract.js | CDN-loaded client-side OCR. `eng.traineddata` cached in browser |
| GPU | GTX 1050 Ti 4GB → RTX 2080 Ti 11GB (on order) |
