47 lines
2.4 KiB
Markdown
47 lines
2.4 KiB
Markdown
# Evergreen Applicator 🌲
|
|
|
|
**Washington pesticide applicator exam prep** — an interactive single-page study
|
|
suite for passing the WSDA pesticide applicator license (Core + Structural +
|
|
Ornamental & Turf + Agricultural). Built from the *Study Manual for Pest
|
|
Management Professionals* (WSU EM019) plus an original question bank.
|
|
|
|
## Live
|
|
**https://evergreenapplicator.thetempleofdoom.com**
|
|
|
|
## What's inside
|
|
- **WA Cert** — WSDA licensing guide: exam format, fees, categories, CE requirements, printable application checklist
|
|
- **Field guide** — all 13 chapters with real pest photos (Wikimedia, CC/PD)
|
|
- **Identification keys** — branching keys, walked one couplet at a time
|
|
- **House faults** — 22 points of faulty construction/maintenance, in order
|
|
- **WA Prep** — 318 questions (249 original + 69 from the manual) with instant feedback + a timed 50-question mock exam (120 min, 70% pass)
|
|
- **Flashcards** 🔒 / **Practice exam** 🔒 — premium
|
|
- **Glossary** — every defined term, searchable
|
|
|
|
## Monetization
|
|
Freemium: the field guide, keys, house faults, WA Cert, and WA Prep are free.
|
|
**Flashcards and the practice exam are a $5 Bitcoin unlock** via BTCPay.
|
|
|
|
- BTCPay store: `FDT6DHWEaA7DF5WFePkp4pufgQ9yy1G6JfzTCwey1jYn`
|
|
- Price: $5 USD (on-chain BTC)
|
|
- Flow: `/unlock` → BTCPay invoice → `/webhook/btcpay` (InvoiceSettled) → client polls `/api/status` → unlocks
|
|
|
|
## Stack
|
|
- Single self-contained `index.html` (vanilla JS SPA, no build step)
|
|
- Flask (`app.py`) for the paywall + BTCPay webhook (HMAC-verified)
|
|
- nginx reverse proxy → Flask :5000
|
|
- SQLite (`orders.db`) for order state
|
|
|
|
## Deploy
|
|
- Proxmox LXC CT **117** (`nocturne`) @ 10.30.20.234
|
|
- systemd `nocturne.service`, nginx `sites-enabled/nocturne`
|
|
- Cloudflare tunnel `thetemple-fleet` (`1aeb1ac0-3c49-4801-b61d-bc92e6e4932a`), ingress → `:80`
|
|
|
|
## Files
|
|
- `index.html` — the study suite (paywall gate, photos, WA Prep, BMAC footer injected)
|
|
- `app.py` — Flask backend (BTCPay invoice, webhook, unlock status, image serving)
|
|
- `images/` — 25 real pest photos (Wikimedia Commons)
|
|
- `wa_exam_data.py` / `wa_exam_data2.py` — the original 249-question bank (part 2 imports part 1)
|
|
- `rebuild_wa_prep.py` — build script for the WA Prep view + mock exam
|
|
- `inject.py` / `integrate_photos.py` / `add_wa_view.py` / `rename.py` — one-shot build scripts
|
|
- `nocturne.service` / `nocturne.nginx` — service + nginx config
|