ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗An app blocker that teaches you botany instead of just saying "no".
You choose the apps that eat your time and how many plants you want to learn a day. Each day's lesson shows each new plant once (photos, name, a fact), then a short multiple-choice exam. When you open a locked app, FloraLock shows a photo of one of your plants with four names to choose from.
Everything runs offline; nothing leaves the phone (privacy policy).
| Piece | State |
|---|---|
| First-launch setup: plants per day, apps to lock, the lock | ✅ Built |
| Daily lesson + exam, spaced reviews, lock-screen quiz | ✅ Built and unit-tested |
| Look-alikes, field clues, streaks and milestones | ✅ Built and unit-tested |
| Evening reminder when the lesson isn’t done (can be off) | ✅ Built (expo-notifications), timing unit-tested |
| Plant browser and plant pages (about, edibility, uses, lore) | ✅ All 70 plants |
| Photos | ✅ 3 real iNaturalist photos per plant, CC0 / CC BY / CC BY-SA, bundled |
| Android app lock (UsageStats + foreground service) | ✅ Passes the emulator test on Android 8, 10, 13 and 15; needs real phones |
| Play Store signing and privacy policy | ✅ Ready; see docs/PLAY_STORE.md |
| FloraLock Plus (one-time or monthly, Google Play Billing) | ✅ Built; floralock_plus and floralock_plus_monthly must be created in Play |
| iOS shield (Screen Time API) | ⏳ Not started. See docs/PLATFORM_INTEGRATION.md |
Pure rules in src/core/, covered by npm test:
daily.ts): each day brings the next n plants you haven't learned (1–20, set in setup or
Settings). Each is shown once on a study card (photos, how to recognise it, edibility, and the plants it's
mistaken for), then the exam asks one question per plant.daily.ts): a plant comes back 1 day after its lesson, then 3, 7, 14 and 30 days after each
right answer. A miss, in an exam or on the lock screen, starts it over from tomorrow. After the fifth review
it's mastered. A day's exam asks at most 15 reviews, the most overdue first.quiz.ts, LOOKALIKE_PAIRS in src/data/plants.ts): wrong choices are a plant's real
look-alikes first (peony, rose, ranunculus…), then the same group. A wrong pick of a look-alike shows how to
tell the two apart.progress.ts, stats.ts): a streak of days with the exam done; collected and mastered counts;
milestones; and Botany IQ from 60 to 160 (a fifth for meeting a plant, the rest grows with each review).npm install
npx expo start # press a / i / w for Android, iOS or web
npm test # core logic tests (vitest)
npm run typecheck
The lock is native code (modules/app-blocker), so it doesn't run in Expo Go. On iOS and the web the lock
isn't available; Preview the lock screen on the Today tab shows the challenge instead.
Every push to main or a claude/** branch runs .github/workflows/main.yml on
GitHub Actions:
floralock-aab) and an
APK for the emulator tests.This is the beginning of the README. Read the rest at the original. Read the full README ↗