# Learnova
AI-powered primary school tutor for Nigerian pupils (Primary 1–6).
Children chat with an AI teacher (Claude by Anthropic) in English,
Yorùbá, Igbo, or Hausa, following Nigeria's official NERDC curriculum.
## What makes Learnova different
- **Built natively for Nigeria** — Nigerian names, Naira, and culturally familiar examples in every lesson
- **NERDC curriculum aligned** — Subjects and prompts scoped to Primary 1–6 and Nigeria's revised national curriculum (FG/NERDC)
- **AI key secured server-side** — The Anthropic API key never ships in the app; only a Supabase Edge Function holds it
- **Works on low-end Android devices** — React Native UI, no heavy WebView shell; animations use Reanimated efficiently
- **Offline detection with graceful degradation** — NetInfo banner on every screen; lesson chat disables send when offline
## Tech stack
| Technology | Why we use it |
|------------|----------------|
| **Expo (SDK 54)** | Fast cross-platform development for iOS, Android, and web from one codebase |
| **React Native** | Native-feeling UI on phones, including low-end Android common in Nigerian schools |
| **Expo Router** | File-based navigation (`app/` screens) with typed routes and deep linking |
| **Zustand + AsyncStorage persist** | Lightweight global state; language, grade, subject, and study time survive app restarts |
| **Supabase Edge Functions** | Serverless proxy for AI calls — keeps secrets off the client |
| **Anthropic Claude API (`claude-sonnet-4-6`)** | High-quality tutoring responses with strong instruction-following for children |
| **react-native-markdown-display** | Renders AI replies (bold, lists, headings) instead of raw `**` and `##` in chat bubbles |
| **@react-native-community/netinfo** | Detects connectivity for offline banners and disabling the lesson input |
| **@sentry/react-native** | Production error tracking (optional; skipped when `EXPO_PUBLIC_SENTRY_DSN` is unset) |
| **TypeScript (strict mode)** | Catches bugs at compil …