Skip to content

[FEATURE] Basic User Rating System Based on Profile Completion #401

Description

@sanaderi

Implement a basic rating system for users (students and teachers) based solely on how complete their profile data is. This serves as an initial trust and engagement metric before introducing community-based ratings in the future.

Overview

Users receive a rating score (0–100) and a corresponding level based on the percentage of required profile fields completed. The rating is calculated automatically and updates in real-time as users add or modify profile information.

Rating Calculation

Weighted Fields

Each field contributes a specific percentage to the total rating score:

Field Weight Requirement
Profile picture 15% Image uploaded
First name 5% Not empty
Last name 5% Not empty
Current status sentence 10% At least 10 characters
Bio 15% At least 50 characters
Skills 20% At least 1 skill selected
Experience entries 30% At least 1 experience added

Rating Levels

Score Range Level Badge
0–19 Beginner 🟢 Just Started
20–39 Basic 🔵 Getting There
40–59 Intermediate 🟠 Making Progress
60–79 Advanced 🟣 Well Rounded
80–100 Complete ⭐ Full Profile

Functionality

Display Rating

  • Rating score and level shown on user's own profile
  • Rating shown on public profile (if profile is public)
  • Small badge displayed next to username in comments, messages, and listings

Auto-Update Triggers

Rating recalculates automatically when user:

  • Uploads or changes profile picture
  • Updates first or last name
  • Edits current status sentence
  • Modifies bio
  • Adds or removes skills
  • Adds, edits, or deletes experience entries

Rating Details Page (Optional)

  • Show breakdown of completed vs missing fields
  • Display current score and what's needed to reach next level
  • Suggestions for improving rating (e.g., "Add a bio to gain +15%")

Acceptance Criteria

  • Rating score calculates correctly based on completed fields
  • Rating updates automatically when profile data changes
  • Rating level and badge display correctly for each score range
  • Rating badge visible on user's profile
  • Rating badge visible on public profile (when public)
  • Rating badge appears next to username in relevant areas
  • Users can see detailed breakdown of their rating
  • New users start with 0% rating until they add data
  • Experience entries require both year and title to count

Future Considerations (Not in this issue)

  • Peer-to-peer ratings (students rating teachers, teachers rating students)
  • Review system with written feedback
  • Average rating from community votes
  • Rating affects search ranking or visibility

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

Status
Todo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions