My Dashboard

Track Your Learning Progress

Learner engagement can be monitored with a weighted score:

\[ E = 0.5\,Q + 0.3\,L + 0.2\,B \]

where \(Q\) is quiz completion rate, \(L\) is lab completion rate, and \(B\) is badge progress (all normalized 0 to 1).

Worked example: For \(Q=0.82\), \(L=0.55\), and \(B=0.40\), engagement score is \(E=0.5(0.82)+0.3(0.55)+0.2(0.40)=0.655\). Tracking this weekly helps detect drop-off early.

📊 Your Learning Dashboard

Welcome to your personalized learning dashboard! Track your progress, view earned badges, and see your learning statistics.

IoTClass.org uses Supabase Auth for Google sign-in. The site code only needs the Supabase project URL and publishable key; Google OAuth client secrets must stay in the Supabase dashboard and must not be committed to this repository.

  1. In Google Cloud Console, create an OAuth 2.0 Web application client.
  2. Add the Supabase callback URL as an authorized redirect URI: https://<project-ref>.supabase.co/auth/v1/callback.
  3. In Supabase, open Authentication > Providers > Google, enable Google, then paste the Google client ID and client secret.
  4. In Supabase, open Authentication > URL Configuration and set the production site URL to https://iotclass.org/.
  5. Add redirect URLs for every environment that should accept OAuth callbacks, such as https://iotclass.org/**, the GitHub Pages branch preview URL if used, and any local or proxy URL used for testing.
  6. In assets/js/iotclass-config.js, keep authProvider: 'google', set the Supabase project URL and publishable key, and add administrator email addresses to adminEmails when admin pages should work with Google accounts.
  7. Keep Row Level Security enabled on Supabase progress tables, with policies scoped to auth.uid() so each learner can read and write only their own progress rows.

Progress remains localStorage-first. Learners can build progress before signing in; after Google sign-in, UnifiedProgress.handleLogin() loads cloud state, flushes the local sync queue, and keeps future updates attached to the signed-in Supabase user ID.

<div style="font-size: 3em; margin-bottom: 20px;">⏳</div>
<p style="color: #7F8C8D;">Loading your dashboard...</p>

How to Earn More XP
  • Complete chapters: +100 XP each
  • Answer knowledge checks: +10 XP per correct answer
  • Complete Wokwi labs: +50 XP each
  • Score 90%+ on games: +25 XP
  • Complete capstone projects: +500 XP
  • 7-day learning streak: +100 XP bonus
Back to top