Overview
Relaciona uses an extended Django user model calledUserProfile that stores comprehensive information about students and teachers. These profiles are central to the platform’s gamification and personalization features.
Profile completeness is crucial for games to function properly. Many minigames require students to have profile pictures and personal information filled in.
UserProfile Model
TheUserProfile model extends Django’s AbstractUser and is defined in accounts/models.py:5-74.
Core Fields
Role System
Two-role system distinguishing between students and teachers:
student(Alumno)teacher(Profesor)
Basic Information
Essential profile data:
- Full name
- Date of birth
- Gender (male/female/other)
- Nickname
- Residence area
Profile Picture
Cloudinary-hosted images used in multiple games:
- Face recognition games
- Name-to-face matching
- Profile displays
Learning Data
Assessment results stored on profile:
- Learning style (VARK)
- Emotional reinforcement (Chapman)
Personal Preferences
Profiles capture detailed student preferences used for personalization and games.Entertainment & Interests
- Student Interests Game: Matches descriptions to students
- Spotify Guess Game: Players identify songs by student
- Personalized connections: Teachers learn about students
Reflection Questions
Deep Reflection Fields
Deep Reflection Fields
Profiles include thoughtful prompts that help teachers understand students better:
- Motivation:
motivation- What drives the student - Gratitude:
gratitude- What they’re most grateful for in life - Happy Memory:
happy_memory- Their happiest memory
Spotify Integration
The platform includes a special Spotify integration feature.How It Works
- Student Input: Students paste a Spotify song link in their profile
- Automatic Conversion: The
spotify_embed_urlproperty transforms sharing links to embeddable format - Game Usage: The Spotify Guess Game uses embedded players for gameplay
Privacy & Sharing Settings
Birthday Celebrations
Class Sharing
- Profile visibility in games
- Information displayed to other students
- Privacy in social features
Profile Completeness
Many games require complete profiles to function:
- Profile Picture: Required for Face Guess, Name to Face, Hangman games
- Personal Info: Used in Student Interests and Complete Profile games
- Spotify Link: Required for Spotify Guess game (minimum 4 students)
- Learning Assessments: Displayed in Complete Profile game
Game Requirements
Fromminigames/views.py, games filter students based on profile completeness:
Data Handling
Cloudinary Integration
Profile pictures are stored using Cloudinary’s Django field:- Automatic image optimization
- CDN distribution for fast loading
- Scalable storage solution
- Transformation capabilities
Database Schema
All fields are nullable and blank-allowed, making profile building gradual:- Students can complete profiles over time
- No mandatory fields beyond username/password
- Teachers can encourage profile completion for better game experiences
Teacher vs Student Roles
Student Profiles
Purpose: Personalization and gameplay
- Fill out personal preferences
- Complete learning assessments
- Participate in games
- Share information with class (optional)
Teacher Profiles
Purpose: Class management and insights
- View student learning styles
- Access assessment results
- Lead gamified activities
- Build classroom connections
Related Features
- Learning Assessments - VARK and Chapman results stored on profiles
- Gamification - How profiles power interactive games
- Class Management - Teachers managing student profiles