FCT / models /personality_responses.py
Parthnuwal7
Adding analytical content
3d015cd
"""Personality responses model"""
from typing import Dict, List
from dataclasses import dataclass
@dataclass
class PersonalityResponses:
student_id: str
responses: Dict[str, int] # p_q1: 1-5, p_q2: 1-5, etc.
def to_dict(self):
data = {'student_id': self.student_id}
data.update(self.responses)
return data
@staticmethod
def get_questions() -> List[Dict[str, str]]:
"""Return 20 curated personality questions mapped to Big Five traits"""
return [
# Openness (4 questions)
{"id": "p_q1", "text": "I enjoy exploring new ideas and concepts", "trait": "openness"},
{"id": "p_q2", "text": "I prefer routine over spontaneity", "trait": "openness_r"},
{"id": "p_q3", "text": "I am curious about many different things", "trait": "openness"},
{"id": "p_q4", "text": "I appreciate art and creative expression", "trait": "openness"},
# Conscientiousness (4 questions)
{"id": "p_q5", "text": "I am highly organized and plan ahead", "trait": "conscientiousness"},
{"id": "p_q6", "text": "I often procrastinate on tasks", "trait": "conscientiousness_r"},
{"id": "p_q7", "text": "I pay attention to details", "trait": "conscientiousness"},
{"id": "p_q8", "text": "I complete tasks on time", "trait": "conscientiousness"},
# Extraversion (4 questions)
{"id": "p_q9", "text": "I enjoy being the center of attention", "trait": "extraversion"},
{"id": "p_q10", "text": "I prefer working alone", "trait": "extraversion_r"},
{"id": "p_q11", "text": "I make friends easily", "trait": "extraversion"},
{"id": "p_q12", "text": "I am energized by social interactions", "trait": "extraversion"},
# Agreeableness (4 questions)
{"id": "p_q13", "text": "I am considerate of others' feelings", "trait": "agreeableness"},
{"id": "p_q14", "text": "I prefer competition over collaboration", "trait": "agreeableness_r"},
{"id": "p_q15", "text": "I trust people easily", "trait": "agreeableness"},
{"id": "p_q16", "text": "I help others when they need it", "trait": "agreeableness"},
# Emotional Stability (4 questions)
{"id": "p_q17", "text": "I handle stress well", "trait": "stability"},
{"id": "p_q18", "text": "I often feel anxious", "trait": "stability_r"},
{"id": "p_q19", "text": "I remain calm under pressure", "trait": "stability"},
{"id": "p_q20", "text": "I recover quickly from setbacks", "trait": "stability"},
]