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
` β¦