Skip to main content

Overview

Relaciona offers various gamified activities designed to help students learn about their classmates and build connections. All games use session-based scoring to track your performance.
You must join a class before you can play games. See Joining a Class for details.

Accessing Games

When you’re a student, the game system automatically detects which class you belong to:
1

Select a Game

Choose from the available games on your student homepage.
2

Automatic Group Detection

The system automatically finds your class group (minigames/views.py:38-42):
  • Retrieves your first enrolled class
  • Redirects you to the game with your group
  • Shows an error if you haven’t joined any classes
3

Start Playing

The game loads with students from your class (excluding yourself).

Available Games

Face Recognition Games

Face Guess Game

How to Play:
  • A profile picture is shown
  • Type the student’s name, full name, or nickname
  • The system accepts partial matches (minigames/views.py:86-95)
Game Logic: minigames/views.py:53-121Requirements:
  • Classmates must have profile pictures
  • You are excluded from the pool of students
Scoring:
  • Correct answers increment face_guess_correct
  • Total attempts tracked in face_guess_total
The system avoids showing you the same student twice in a row (minigames/views.py:109-111)

Name to Face Game

How to Play:
  • A student’s name is displayed
  • Select the correct profile picture from 4 options
  • Click the image you think matches the name
Game Logic: minigames/views.py:124-160Requirements:
  • At least 4 classmates with profile pictures
  • Excludes yourself from options
Scoring:
  • Session variables: name_to_face_correct and name_to_face_total
  • 1 correct answer per round
  • 3 incorrect options randomized

Word Games

How to Play:
  • Guess letters to reveal a classmate’s name
  • Each incorrect guess adds to your error count
  • Win by guessing the complete name
  • Lose after 6 incorrect attempts
Game Logic: minigames/views.py:163-255Features:
  • Names are normalized (removes accents, converts to uppercase)
  • Spaces and non-alphabetic characters are revealed automatically
  • Game state persists across requests using session data
  • Alphabet provided in Spanish (includes Ñ)
Session Variables:
  • hangman_target_name: The normalized name to guess
  • hangman_guessed_letters: List of letters you’ve tried
  • hangman_incorrect_count: Number of wrong guesses (max 6)
  • hangman_game_over: Boolean indicating if game ended
Scoring:
  • Win = 1 point added to hangman_correct
  • All games (win or lose) increment hangman_total
The game automatically resets when you start a new round (minigames/views.py:178-186)

Profile-Based Games

Student Interests Game

How to Play:
  • A student’s profile is shown
  • Four descriptions are presented
  • Select which description matches the student
Game Logic: minigames/views.py:258-297Profile Data Used:
  • Age (calculated from date_of_birth)
  • Favorite artist
  • Motivation
Requirements:
  • At least 4 students in class
  • Excludes yourself
The description format: “Tiene [age] años. Su artista favorito es [artist] y le motiva: [motivation].” (minigames/views.py:286)

Complete Profile Game

How to Play:
  • See detailed profile information
  • Match it to the correct student
  • Information includes VARK and Chapman test results
Game Logic: minigames/views.py:337-386Profile Data Used:
  • Full name or username
  • Age (calculated from date of birth)
  • Favorite artist
  • VARK learning style result
  • Chapman love language result
  • Motivation
Requirements:
  • At least 4 classmates with profile pictures
  • Questionnaire results from VARK and Chapman tests

Quiz Results Game

How to Play:
  • View a student’s quiz/test performance
  • Guess which classmate achieved those results
  • Select from 4 options
Game Logic: minigames/views.py:300-334Requirements:
  • At least 4 students in class
  • Access to UserResult data from quizzes
Scoring:
  • Session variables: quiz_correct and quiz_total

Music Game

How to Play:
  • Listen to a Spotify song preview
  • Guess which classmate chose this as their favorite song
  • Select from 4 student options
Game Logic: minigames/views.py:389-437Requirements:
  • At least 4 classmates with Spotify links configured
  • Students must have added valid Spotify URLs to their profiles
  • Excludes yourself from the game
Technical Details:
  • Uses spotify_embed_url property to convert share links (accounts/models.py:60-71)
  • Filters students with non-null, non-empty spotify_link values
  • Avoids repeating the same song twice in a row (minigames/views.py:421-423)
Scoring:
  • Correct: Increments spotify_correct
  • Total attempts: Tracked in spotify_total
If fewer than 4 classmates have Spotify links, you’ll see an error message (minigames/views.py:401-404)

Social Games

Impostor Game

How to Play:
  • One player is the “impostor” with a different word
  • Everyone else sees the correct word
  • Discuss and figure out who the impostor is
Game Logic: minigames/views.py:461-543Features:
  • 80+ word pairs across 16 categories
  • Categories include: Future, Pedagogy, Teaching, History, Psychology, Dance, Athletics, Sports, and University Life
  • Anti-repeat system tracks used themes in session
  • Automatically resets when all themes used
Technical Details:
  • Session variable: impostor_history tracks used themes
  • Word library in minigames/views.py:465-516
Perfect for group play and discussion! No profile data needed.

Charadas Game

How to Play:
  • Act out or mime concepts without speaking
  • Teammates guess what you’re performing
  • Similar to Heads Up or Charades
Game Logic: minigames/views.py:546-690Categories:
  • Teaching and Initiation (Enseñanza e Iniciación)
  • Epistemology and History (Epistemología e Historia)
  • Sport Psychology (Psicología del Deporte)
  • Dance and Body Expression (Danza y Expresión Corporal)
  • Introduction to Athletics (Iniciación al Atletismo)
  • Presentation (University life)
  • Sports (Deportes)
Features:
  • 200+ words and concepts
  • JavaScript-based word library
  • Educational content focused on Physical Education topics

Bonus Game

How to Play:
  • Classic endless runner game
  • No classmate data required
  • Session counter tracks plays
Game Logic: minigames/views.py:440-458Features:
  • Standalone game for breaks
  • Session variable: dino_total tracks game sessions
  • Available to both students and teachers
This game doesn’t use any profile or class data—it’s just for fun!

Scoring System

All games use session-based tracking to monitor your performance during your current play session.

How Scoring Works

1

Session Initialization

When you first play a game, two session variables are created:
  • {game_name}_correct: Tracks correct answers
  • {game_name}_total: Tracks total attempts
Both start at 0 (minigames/views.py - varies per game)
2

Scoring Updates

After each answer:
  • total increments by 1
  • correct increments only if answer is right
  • Session is marked as modified to ensure persistence
3

Display

Your score is shown in the game interface:
Score: {correct} / {total}
4

Session Persistence

Scores persist as long as your browser session is active. Logging out or closing the browser typically resets scores.

AJAX-Based Games

Most games use AJAX (XMLHttpRequest) for smooth gameplay without page reloads:
  • Face Guess Game (minigames/views.py:103-104)
  • Name to Face Game (minigames/views.py:146)
  • Hangman Game (minigames/views.py:227-237)
  • Student Interests Game (minigames/views.py:282)
  • Spotify Guess Game (minigames/views.py:417-418)
Benefits:
  • Instant feedback
  • No page refresh
  • Smoother user experience
  • Real-time score updates

Tips for Success

Complete Your Profile

The more complete your profile, the more you’ll appear in games. Add your photo, interests, and Spotify link!

Learn About Classmates

Visit the classmates list (accounts/views.py:76-108) to study profiles before playing games.

Be Creative with Answers

In typing games like Face Guess, you can use:
  • Username
  • First name
  • Last name
  • Full name
  • Nickname
Partial matches often work too! (minigames/views.py:86-95)

Play Regularly

The more you play, the better you’ll know your classmates. Session scores show your progress!

Game Requirements Summary

GameMinimum StudentsProfile Picture RequiredOther Requirements
Face Guess1+YesNone
Name to Face4+YesNone
Hangman1+YesNone
Student Interests4+NoProfile data helpful
Complete Profile4+YesQuiz results (VARK, Chapman)
Quiz Results4+NoUserResult data
Spotify Guess4+NoSpotify links configured
ImpostorN/ANoGroup play
CharadasN/ANoGroup play
DinoN/ANoNone

Viewing Your Stats

Current Session Stats

Each game displays your performance for the current session:
  • Correct answers: How many you got right
  • Total attempts: How many questions you’ve answered
  • Percentage: Correct/Total (calculated in your browser)

Long-Term Tracking

Currently, the platform uses session-based scoring. Scores reset when you log out or your session expires. Long-term statistics tracking may be added in future updates.

Troubleshooting

”No Students Found” Error

Cause: Not enough classmates meet the game requirements Solutions:
  • Encourage classmates to complete their profiles
  • For Spotify Guess: Ask classmates to add Spotify links
  • For face games: Classmates need to upload profile pictures
  • Join a different/larger class

”Not Enough Students” Error

Cause: Game requires 4+ students but class is too small Solutions:
  • Wait for more students to join your class
  • Ask your teacher to add more students
  • Try games that work with fewer students (Face Guess, Hangman)

Game Won’t Load

Cause: You haven’t joined a class yet Solution: Use an invite code to join a class first (minigames/views.py:38-42)

Scores Not Saving

Cause: Session expired or browser cookies disabled Solutions:
  • Enable browser cookies
  • Stay logged in during gameplay
  • Check browser privacy settings

Technical Details

For Developers:
  • All game views require @login_required decorator (minigames/views.py)
  • Student auto-detection: request.user.student_groups.first() (minigames/views.py:38-42)
  • Session data structure: request.session['{game}_correct'] and request.session['{game}_total']
  • Text normalization for answers: normalize_text() removes accents and converts to uppercase (minigames/views.py:12-18)
  • Age calculation: calculate_age() handles date math (minigames/views.py:20-23)
  • AJAX response helper: get_ajax_response() standardizes JSON returns (minigames/views.py:25-32)
  • Anti-repeat logic: Uses last_id session variable to avoid consecutive duplicates
  • Game filtering: .exclude(id=request.user.id) removes current player from pool

Build docs developers (and LLMs) love