Logo Lanfrica

rejo132/naija-learn

Domain:

educationnatural language processing

Record type:

software
Creator:
rej
Host:
# 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 …

Languages

Licenses