尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 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.以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗