desoko.BY THE TRADING · OWNER CONNECTION GUIDE

Bring the grown-up
accounts to life.

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.

Current status: This is browser-local learning. Firebase Authentication is not configured site-wide. Signing in, once connected, identifies the parent account; it does not yet synchronise learner progress. The app is publicly hosted at the connected thetrading.site domain.

1. Create your Firebase web app

  1. Open Firebase Console and create a project, or select a project you intend to use for The Trading.
  2. In Project settings General, add a Web app. Give it a nickname such as Desoko.
  3. Find the public firebaseConfig object. It contains apiKey, authDomain, projectId and appId, plus optional fields.
  4. Share the public web configuration to connect the published app site-wide. Do not share a service-account JSON file, private key or Firebase Admin credential.

Official Firebase web setup instructions ↗

2. Enable Google and email signup

  1. Firebase Console Authentication Get started Sign-in method.
  2. Enable Google, select the project support email and save.
  3. Enable Email/Password and save. The app uses email and password, not email-link login.
  4. Authentication Settings Authorized domains: add thetrading.site and desoko.sokovictor39.chatgpt.site.
  5. When you connect the custom domain, add the exact domain you will use, such as www.thetrading.site. Add thetrading.site too if the app will be served there.
  6. In Authentication Templates, customise the verification and password-reset email sender name to The Trading / Desoko.

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 ↗

3. Test the connection

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.

  1. Try creating a parent account with email. Open the verification email.
  2. Sign out, sign in again, then test password reset.
  3. Test Google sign-in and confirm the parent account appears in Firebase Authentication Users.
  4. Test the same provider on a phone, including denied or blocked popup handling.

If sign-in reports an unauthorised domain, check the authorised-domain list. If a provider is disabled, enable that provider in Firebase.

4. Hosting and your custom domain

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.

What works, and what comes next

FeatureStatus
Grade R–3 onboarding and learner preferencesWorks on this browser.
24 activities per grade and language, three questions eachPlayable: language, maths, life skills and creative arts.
Learning trail, daily goals, tasks, XP and badgesProgress saved in this browser.
Read-aloudUses available browser voices; no paid voice service required.
Google and email parent accountsFirebase 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 devicesNext phase: Firestore learner profiles tied to parent accounts, secure owner-only rules, and a progress migration flow.
Classroom rosters / multiple learner profilesFuture phase; current app has one learner profile per browser.
English, Afrikaans, isiZulu and isiXhosa tracksPlayable drafts; native-speaking educator review needed. Read-aloud depends on installed language voices.
Curriculum assessmentThese are practice activities, not a complete CAPS curriculum or formal assessment.

Your connected Firebase project

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.

Gemini learning chat

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.

Your clay PNG assets

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