← Dashboard

Σ Learning History

Actor: {{ actor }}
Tracking: lesson.completed, quiz.submitted, quiz.graded

{% if stats_error %}
Error loading stats: {{ stats_error }}
{% else %}
Total XP
{{ stats.xp or 0 }}
Lessons
{{ stats.lessons_completed or 0 }}
Quizzes
{{ stats.quizzes_graded or 0 }}
Current Streak
{{ stats.current_streak_days or 0 }} day{{ 's' if (stats.current_streak_days or 0) != 1 else '' }}
Best Streak
{{ stats.longest_streak_days or 0 }} day{{ 's' if (stats.longest_streak_days or 0) != 1 else '' }}
Last Active
{{ stats.last_active_date or "Never" }}
{% if stats.rank %}
{{ stats.rank.rank_index + 1 }}
{{ stats.rank.rank_name }}
{% if stats.rank.next_rank_name %}
{{ stats.rank.xp }} / {{ stats.rank.xp_for_next }} XP to {{ stats.rank.next_rank_name }}
{% else %}
Max rank achieved!
{% endif %}
{% endif %}
{% endif %} {% if events_error %}
Error loading events: {{ events_error }}
{% endif %}

Activity Log

{% if not events %}
📚

No learning events recorded yet.

Complete a Math Lab lesson to get started!

{% else %} {% for e in events %}
{% if e.event_type == "lesson.completed" %} Lesson {{ e.lesson }} completed {% elif e.event_type == "quiz.submitted" %} Quiz submitted (L{{ e.lesson }}) {% elif e.event_type == "quiz.graded" %} Quiz graded (L{{ e.lesson }}) {% elif e.event_type == "rank.changed" %} 🎖️ Rank Up! {% else %} {{ e.event_type }} {% endif %} {% if e.event_type == "lesson.completed" %}
Track: {{ e.track }} {% if e.metadata and e.metadata.title %} - {{ e.metadata.title }} {% endif %}
{% elif e.event_type == "quiz.graded" %}
Score: {% if e.score is not none %} {% set score_pct = (e.score * 100)|int %} {{ score_pct }}% {% if score_pct == 100 %} Perfect! {% endif %} {% else %} n/a {% endif %}
{% elif e.event_type == "rank.changed" %}
{{ e.old_rank or "New" }} {{ e.new_rank }}
XP: {{ e.xp or 0 }}
{% endif %}
{{ (e.timestamp or "")[:19] }}
{% if e.node_id %}
node: {{ e.node_id }}
{% endif %}
{% if e.event_type == "quiz.graded" and e.results %}
{% for r in e.results %}
{{ "✓" if r.correct else "✗" }} {{ r.id }}: {{ r.feedback[:60] }}{{ '...' if r.feedback|length > 60 else '' }}
{% endfor %}
{% endif %}
{% endfor %} {% endif %}

How to Earn XP