The activities, onboarding, learning trail, local progress, rewards, Soko chat and optional word playground work now. Google and email accounts are implemented and await your Firebase project.
firebaseConfig object. It contains apiKey, authDomain, projectId and appId, plus optional fields.thetrading.site and desoko.sokovictor39.chatgpt.site.www.thetrading.site. Add thetrading.site too if the app will be served there.The forms include Google popup sign-in, email signup and login, verification email, reset email and sign-out. Popup sign-in needs popups allowed for the app.
Official Google sign-in instructions ↗
Official email/password instructions ↗
In Desoko, go to Parent & teacher corner Site owner: connect accounts. Paste the public configuration as valid JSON, with double-quoted field names.
{
"apiKey": "YOUR_PUBLIC_WEB_API_KEY",
"authDomain": "YOUR_PROJECT.firebaseapp.com",
"projectId": "YOUR_PROJECT_ID",
"appId": "YOUR_WEB_APP_ID"
}This owner testing panel saves the configuration only in the current browser. A site-wide connection requires adding your actual public web configuration to the app’s config.js and publishing that change.
If sign-in reports an unauthorised domain, check the authorised-domain list. If a provider is disabled, enable that provider in Firebase.
The app is publicly hosted at thetrading.site. Its custom domain and SSL are active. The original Desoko hosting address is also retained.
Add thetrading.site to Firebase’s authorised domains before testing authentication on the connected domain. If you also want www.thetrading.site, connect that exact hostname separately through Sites, apply the DNS records Sites provides, and add it to Firebase’s authorised domains too.
| Feature | Status |
|---|---|
| Grade R–3 onboarding and learner preferences | Works on this browser. |
| 24 activities per grade and language, three questions each | Playable: language, maths, life skills and creative arts. |
| Learning trail, daily goals, tasks, XP and badges | Progress saved in this browser. |
| Read-aloud | Uses available browser voices; no paid voice service required. |
| Google and email parent accounts | Firebase project desoko-61a92 is configured site-wide. The Firebase configuration and both live domains were verified. Google and Email/Password provider settings are managed in Firebase Authentication. |
| Cloud learner progress / multiple devices | Next phase: Firestore learner profiles tied to parent accounts, secure owner-only rules, and a progress migration flow. |
| Classroom rosters / multiple learner profiles | Future phase; current app has one learner profile per browser. |
| English, Afrikaans, isiZulu and isiXhosa tracks | Playable drafts; native-speaking educator review needed. Read-aloud depends on installed language voices. |
| Curriculum assessment | These are practice activities, not a complete CAPS curriculum or formal assessment. |
desoko-61a92 is now configured throughout Desoko. You do not need to paste the configuration into each browser. Authentication uses this project for Google, email sign-in, verification emails and password resets.
The Firebase API confirms that thetrading.site and desoko.sokovictor39.chatgpt.site are already authorised. Open Firebase Authentication to check that Google and Email/Password are enabled. Signing in does not yet sync learner progress between devices.
The hosted app uses a server endpoint for Gemini replies. The Gemini credential is kept in hosted environment variables and is never included in browser code. A parent or teacher can enable AI replies under Celebrations & learning chat. Provider failures are shown clearly with labelled practice replies.
Site owners can manage GEMINI_API_KEY and GEMINI_MODEL in Sites hosting settings. A working Google AI Studio key, enabled Gemini API access and available quota are required. Google/email parent signups use the separate Firebase configuration above.
The springbok mascot, subject icons, six distinct badges and two collectibles have transparent backgrounds and are already used throughout the app.
Download the PNG asset pack