Africa's adaptive learning platform
# NiiDo — The Adaptive Learning Platform for Every Learner, Everywhere
> *Every child learns differently. NiiDo sees that.*
**Modules:**
- 🧠 **NiiDo Read** — Adaptive learning-style assessment & LearnerDNA profile
- 📖 **My Learning** — Self-paced, AI-generated lesson content tailored to each student's LearnerDNA (with illustrations for visual/multimodal learners)
- 📚 **NiiDo Teach** — AI lesson planner for teachers (web + WhatsApp)
- 📊 **NiiDo Pulse** — School administrator dashboard
- 📲 Installable as a PWA on mobile and desktop, with push notifications
---
## Architecture
NiiDo runs entirely on Google Cloud / Firebase — there is no Vercel involved:
- **Frontend** — Next.js 14 (App Router), deployed as a container on **Cloud Run** (`niido-frontend`)
- **Backend** — Express + TypeScript API, deployed as a container on **Cloud Run** (`niido-backend`)
- **Edge** — **Firebase Hosting** (site `niido-main`) sits in front of both Cloud Run services and serves the custom domain `niido.learnscape.africa`, proxying `/api/*` to the backend and everything else to the frontend
- **Auth** — Firebase Authentication (email/password, Google, phone/SMS)
- **Database** — Firestore, non-default database `niido`
- **File storage** — a dedicated Cloud Storage bucket (`niido-learning-content`) for AI-generated lesson illustrations
- **AI** — Google Gemini for the LearnerDNA assessment and lesson plans, the EduPrompt API for style-tailored self-paced content, and an image-generation model for lesson illustrations
- **Push notifications** — standard Web Push (VAPID), not Firebase Cloud Messaging
Both Cloud Run services live in `us-east1` under the GCP project `learnscape-490110`.
---
## Quick Start
### 1. Set up Firebase
1. Go to console.firebase.google.com
2. Create a project (or link to an existing Google Cloud project)
3. Enable: Authentication (Email/Password, Google, Phone), Firestore, Cloud Storage
4. Get your web config from Project Settings → Your Apps
### 2. Frontend
` …