Skip to main content

Overview

The Complete Profile game is the most advanced identification challenge in Relaciona. You see a target student and must identify them from comprehensive data including age, favorite artist, motivation, VARK learning style, and Chapman results.
URL Pattern: /minijuegos/perfil-completo/<group_id>/Minimum Students: 4 with profile pictures and completed assessments

How to Play

1

See the Target Student

The game displays a classmate’s name and profile picture.
2

Review Comprehensive Data

Four student cards appear, each showing:
  • Full name
  • Age
  • Favorite artist
  • VARK learning style result
  • Chapman assessment result
  • Personal motivation
3

Match the Profile

Click on the card that matches the target student’s comprehensive profile data.
4

Get Instant Feedback

AJAX confirms if you correctly matched all the data points.
5

Master Your Knowledge

This game tests your complete understanding of classmates.

Data Fields Displayed

From minigames/views.py:369-381, each option card shows:
options_data.append({
    'student_id': s.id,
    'full_name': s.full_name or s.username,
    'age': calculate_age(s.date_of_birth),
    'favorite_artist': s.favorite_artist or "N/A",
    'vark_result': vark.dominant_category if vark else "Pte",
    'chapman_result': chapman.dominant_category if chapman else "Pte",
    'motivation': s.motivation or "N/A"
})

Personal Data

  • Full name
  • Age (calculated)
  • Favorite artist
  • Motivation quote

VARK Result

Visual, Aural, Read/Write, or Kinesthetic learning preference

Chapman Result

Love language category for educational feedback

Age Calculation

From minigames/views.py:20-23:
def calculate_age(birth_date):
    if not birth_date: return "desconocida"
    today = date.today()
    return today.year - birth_date.year - ((today.month, today.day) < (birth_date.month, birth_date.day))
Age is dynamically calculated from date_of_birth, accounting for whether the birthday has occurred this year.

Assessment Data Integration

From minigames/views.py:361-372:
vark_q = Questionnaire.objects.filter(title="VARK").first()
chapman_q = Questionnaire.objects.filter(title="Chapman").first()
target = random.choice(students)
request.session['complete_profile_target_id'] = target.id

raw_options = list(students.exclude(id=target.id).order_by('?')[:3]) + [target]
random.shuffle(raw_options)

options_data = []
for s in raw_options:
    vark = UserResult.objects.filter(user=s, questionnaire=vark_q).first()
    chapman = UserResult.objects.filter(user=s, questionnaire=chapman_q).first()
Process:
  1. Query VARK and Chapman questionnaires
  2. Select target student
  3. Pick 3 random distractors
  4. For each student, fetch their assessment results
  5. Display “Pte” (Pending) if assessments not completed

Game Mechanics

Student Requirements

From minigames/views.py:347-349:
students = group.students.filter(profile_picture__isnull=False).exclude(id=request.user.id).distinct()

if students.count() < 4: 
    return render(request, 'minigames/not_enough_students.html')
Requirements:
  • At least 4 students (excluding yourself) with profile pictures
  • Ideally students have completed:
    • VARK learning style assessment
    • Chapman love languages assessment
    • Personal profile fields (age, favorite artist, motivation)
The game works even if some data is missing, showing “N/A” or “Pte” for incomplete fields. However, it’s most effective when profiles are complete.

Scoring

Session variables tracked:
  • complete_profile_correct: Correct identifications
  • complete_profile_total: Total attempts
Displayed as: Correct / Total

Answer Validation

From minigames/views.py:354-359:
is_correct = str(request.POST.get('selected_student_id')) == str(request.session.get('complete_profile_target_id'))
request.session['complete_profile_total'] += 1
if is_correct: request.session['complete_profile_correct'] += 1
request.session.modified = True
return get_ajax_response(request, is_correct, "¡Listo!", 'complete_profile')

AJAX Implementation

From minigames/views.py:359:
return get_ajax_response(request, is_correct, "¡Listo!", 'complete_profile')
JSON response:
{
  "success": true,
  "message": "¡Listo!",
  "correct": 6,
  "total": 10
}

Tips for Success

Before playing, review classmates’ profiles methodically. Note their age, interests, and assessment results.
Don’t rely on just one field. Cross-reference age, artist, and assessments to narrow down options.
Some learning styles (like Kinesthetic) might correlate with certain personality types or motivations.
If you know some students’ data well, eliminate those options first to reduce choices.
Age often narrows options significantly. Start by eliminating age mismatches.
Personal motivations are often distinctive and memorable - use them as strong identifiers.

Encouraging Complete Profiles

This game works best with complete data:
1

Students: Complete Assessments

Take VARK and Chapman assessments at /cuestionarios/vark/ and /cuestionarios/chapman/
2

Students: Fill Profile Fields

Add your birthdate, favorite artist, and motivation in profile settings
3

Teachers: Assign Profile Completion

Make profile completion part of course onboarding or assign it as an icebreaker activity
4

Teachers: Track Completion

Use analytics to see which students need to complete profiles

Role-Based Access

For Students

From minigames/views.py:338-341:
if request.user.role == 'student':
    group = request.user.student_groups.first()
    if not group: return render(request, 'minigames/no_students.html')
    group_id = group.id

For Teachers

Teachers select which class to play with from the group selection screen.

Session State

Variables maintained:
  • complete_profile_correct: Correct matches count
  • complete_profile_total: Total attempts count
  • complete_profile_target_id: Current target student ID

Comparison with Other Games

FeatureComplete ProfileStudent InterestsQuiz Results
Data Points6 (age, artist, motivation, VARK, Chapman)3 (age, artist, motivation)2 (VARK, Chapman)
DifficultyHardMediumMedium
Profile RequirementsComprehensiveBasicAssessments only
Educational ValueVery HighMediumHigh
Best ForAdvanced playersIntermediateAssessment focus

Educational Value

This game provides the most comprehensive learning experience:

Holistic Understanding

Learn about classmates’ personalities, preferences, and learning styles all at once

Assessment Application

See how VARK and Chapman results connect to real people and personalities

Memory Reinforcement

Multiple data points create stronger memory associations

Empathy Development

Understanding comprehensive profiles builds deeper empathy and connection

Technical Implementation

View Function: student_complete_profile_game() in minigames/views.py:336-386 Key Features:
  • Queries multiple data sources (UserProfile, UserResult)
  • Joins VARK and Chapman assessment data
  • Handles missing data gracefully (“N/A”, “Pte”)
  • Dynamic age calculation
  • Random option shuffling
  • AJAX instant feedback
  • Profile picture requirement filtering

Database Queries

The game performs efficient queries:
# Fetch questionnaires once
vark_q = Questionnaire.objects.filter(title="VARK").first()
chapman_q = Questionnaire.objects.filter(title="Chapman").first()

# For each student option, query their results
vark = UserResult.objects.filter(user=s, questionnaire=vark_q).first()
chapman = UserResult.objects.filter(user=s, questionnaire=chapman_q).first()
Optimized to minimize database hits while providing comprehensive data.

Next Steps

Complete Your Profile

Add all fields to your profile so others can practice identifying you

Take Assessments

Complete VARK and Chapman to unlock full game features

Simpler Games

Try Student Interests game for a less challenging version

Teacher Analytics

See how teachers use comprehensive profile data

Build docs developers (and LLMs) love