Skip to content

Add Progress Dashboard with XP, Badges, and Streak System#525

Open
mohityadav8 wants to merge 7 commits into
adeyosemanputra:v3.0.0-prefrom
mohityadav8:feature/progress-dashboard
Open

Add Progress Dashboard with XP, Badges, and Streak System#525
mohityadav8 wants to merge 7 commits into
adeyosemanputra:v3.0.0-prefrom
mohityadav8:feature/progress-dashboard

Conversation

@mohityadav8

Copy link
Copy Markdown
Contributor

🚀 Progress Dashboard Feature

This PR introduces a complete user progress tracking system for PyGoat.

✨ Features

  • 📊 Progress dashboard for users
  • 🎯 XP system with level calculation
  • 🔥 Login streak tracking
  • 🏅 Badge system (first solve, streaks, completion)
  • 📈 Challenge completion tracking

🧠 Backend Changes

  • Added UserProfile model
  • Implemented Django signals for:
    • Auto profile creation
    • Login streak updates
  • XP and badge helper methods

🎨 Frontend

  • Modern dashboard UI
  • Responsive layout
  • Chart.js visualization

✅ Tested

  • Dashboard loads correctly
  • XP updates on solving challenges
  • Streak updates on login
  • No impact on existing features

UI improvements can be further enhanced in future PRs if needed.

image image image image

@Garvita-k

Copy link
Copy Markdown
Collaborator

The current design feels a bit inconsistent.
please fix the theme and explain your approach for scoring criteria.

@mohityadav8

mohityadav8 commented Apr 19, 2026

Copy link
Copy Markdown
Contributor Author

The current design feels a bit inconsistent. please fix the theme and explain your approach for scoring criteria.

🧠 Scoring Criteria

Here’s how the scoring system currently works:

XP Points:
Awarded based on challenge points (challenge.point) when a challenge is solved.

Level System:
Level is calculated as:
level = (xp_points // 100) + 1

Progress:
Based on number of solved challenges vs total challenges.

Badges:
first_blood → first challenge solved
half_way → 50% challenges solved
completionist → all challenges solved
streak_3, streak_7 → login streaks
high_scorer → XP ≥ 500
Streak System:

Updates on login via signals
Resets if user skips a day

I’ll refine the UI theme and push an update shortly 👍

Updated colors and styles for dashboard elements to ensure consistency and improve visibility across themes.
@mohityadav8

Copy link
Copy Markdown
Contributor Author
image image now i have done all the changes ad its 24bcf10057 is my username

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants