mayankjen commited on
Commit
5ead5df
·
verified ·
1 Parent(s): cd4438c

Upload 4 files

Browse files
Files changed (4) hide show
  1. .env +2 -0
  2. app.py +455 -0
  3. questionnaire.py +665 -0
  4. requirements.txt +15 -0
.env ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ OPENAI_API_KEY="sk-proj-8AKTBpgnl7Lc5Ol0XrPIT3BlbkFJVPFGD8MsDWVs9vGpmDhj"
2
+ GEMINI_API_KEY ="AIzaSyARfXt_fMYNLdwdBUK6Ap9uFObJN9gp1a0"
app.py ADDED
@@ -0,0 +1,455 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ import numpy as np
4
+ import matplotlib.pyplot as plt
5
+ from io import BytesIO
6
+ from reportlab.lib.pagesizes import letter
7
+ from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Image, ListFlowable, ListItem
8
+ from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
9
+ from datetime import date
10
+ from openai import OpenAI
11
+ import os
12
+ from datetime import datetime, timedelta
13
+ from dotenv import load_dotenv
14
+ from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Image, ListFlowable, ListItem
15
+
16
+
17
+ # Load environment variables
18
+ load_dotenv()
19
+
20
+ # Set up OpenAI client
21
+ client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
22
+
23
+ # Constants
24
+ MEAL_FREQUENCY = ["Breakfast", "Morning Snack", "Lunch", "Afternoon Snack", "Dinner", "Evening Snack"]
25
+ FOOD_GROUPS = ["Fruits", "Vegetables", "Grains", "Proteins", "Dairy"]
26
+ EXERCISE = ["Cardio", "Strength", "Flexibility", "Balance"]
27
+ LIFESTYLE = ["Sleep", "Stress", "Work-Life Balance", "Social Connections"]
28
+ MEDICAL_HISTORY = ["Chronic Conditions", "Family History", "Medications", "Allergies"]
29
+
30
+ # Helper functions
31
+ def get_gpt_analysis(prompt, data):
32
+ try:
33
+ response = client.chat.completions.create(
34
+ model="gpt-3.5-turbo",
35
+ messages=[
36
+ {"role": "system", "content": "You are a senior nutritionist and health advisor. Provide concise, personalized advice in bullet points."},
37
+ {"role": "user", "content": f"{prompt}\n\nUser Data: {data}"}
38
+ ],
39
+ temperature=0.2,
40
+ max_tokens=1024
41
+ )
42
+ return response.choices[0].message.content
43
+ except Exception as e:
44
+ print(f"Error in GPT API call: {e}")
45
+ return "I apologize, but I encountered an error while processing your request."
46
+
47
+ # Update the create_chart function
48
+ def create_chart(data, labels, title, chart_type='bar'):
49
+ fig, ax = plt.subplots(figsize=(8, 6))
50
+ if chart_type == 'bar':
51
+ ax.bar(labels, data)
52
+ elif chart_type == 'pie':
53
+ # Filter out zero values to avoid plotting empty slices
54
+ non_zero = [(label, value) for label, value in zip(labels, data) if value > 0]
55
+ if non_zero:
56
+ labels, data = zip(*non_zero)
57
+ ax.pie(data, labels=labels, autopct='%1.1f%%', startangle=90)
58
+ ax.axis('equal')
59
+ else:
60
+ ax.text(0.5, 0.5, "No data to display", ha='center', va='center')
61
+ ax.set_title(title)
62
+ plt.close(fig)
63
+
64
+ buf = BytesIO()
65
+ fig.savefig(buf, format='png')
66
+ buf.seek(0)
67
+ return buf
68
+
69
+ # Add this new function to generate a personalized weekly plan
70
+ def generate_personalized_weekly_plan(user_data):
71
+ prefs = user_data['detailed_preferences']
72
+ plan = {}
73
+
74
+ for i in range(7):
75
+ day = (datetime.now() + timedelta(days=i)).strftime("%A")
76
+ plan[day] = {
77
+ "Meals": [],
78
+ "Exercise": [],
79
+ "Lifestyle": []
80
+ }
81
+
82
+ # Generate meal suggestions based on preferences and nutrition data
83
+ if "Vegetarian" in prefs['meal_preferences']:
84
+ plan[day]["Meals"].append(f"Breakfast: Vegetarian omelette with spinach and mushrooms")
85
+ elif "Vegan" in prefs['meal_preferences']:
86
+ plan[day]["Meals"].append(f"Breakfast: Vegan smoothie bowl with berries and nuts")
87
+ else:
88
+ plan[day]["Meals"].append(f"Breakfast: Whole grain toast with avocado and eggs")
89
+
90
+ plan[day]["Meals"].append(f"Lunch: Mixed green salad with {', '.join(prefs['meal_preferences'][:2])} protein")
91
+ plan[day]["Meals"].append(f"Dinner: Grilled {prefs['meal_preferences'][0] if prefs['meal_preferences'] else 'chicken'} with roasted vegetables")
92
+
93
+ # Generate exercise suggestions based on preferences and schedule
94
+ if prefs['exercise_time'] == "Morning":
95
+ plan[day]["Exercise"].append(f"Morning: 30-minute {prefs['exercise_preferences'][0] if prefs['exercise_preferences'] else 'walk'}")
96
+ elif prefs['exercise_time'] == "Evening":
97
+ plan[day]["Exercise"].append(f"Evening: 45-minute {prefs['exercise_preferences'][0] if prefs['exercise_preferences'] else 'jog'}")
98
+ else:
99
+ plan[day]["Exercise"].append(f"Afternoon: 1-hour {prefs['exercise_preferences'][0] if prefs['exercise_preferences'] else 'gym session'}")
100
+
101
+ # Add lifestyle recommendations
102
+ plan[day]["Lifestyle"].append(f"Practice {prefs['stress_relief'][0] if prefs['stress_relief'] else 'meditation'} for 15 minutes")
103
+ plan[day]["Lifestyle"].append(f"Get {user_data.get('sleep_hours', 8)} hours of sleep, from {prefs['sleep_time'].strftime('%I:%M %p')} to {prefs['wake_time'].strftime('%I:%M %p')}")
104
+
105
+ return plan
106
+
107
+
108
+ def generate_pdf_report(user_data, analysis):
109
+ buffer = BytesIO()
110
+ doc = SimpleDocTemplate(buffer, pagesize=letter, rightMargin=72, leftMargin=72, topMargin=72, bottomMargin=18)
111
+
112
+ styles = getSampleStyleSheet()
113
+ if 'Bullet' not in styles:
114
+ styles.add(ParagraphStyle(name='Bullet', parent=styles['BodyText'], bulletIndent=20, leftIndent=35))
115
+
116
+ story = []
117
+
118
+ # Cover Page
119
+ story.append(Paragraph(f"{user_data['name']}'s Health and Wellness Report", styles['Title']))
120
+ story.append(Paragraph(f"Date: {date.today().strftime('%Y-%m-%d')}", styles['Normal']))
121
+ story.append(Spacer(1, 12))
122
+
123
+ # Personal Information
124
+ story.append(Paragraph("Personal Information", styles['Heading1']))
125
+ for key, value in user_data.items():
126
+ if key not in ['nutrition', 'exercise', 'lifestyle', 'medical_history', 'detailed_preferences']:
127
+ story.append(Paragraph(f"{key.capitalize()}: {value}", styles['Normal']))
128
+
129
+ # Nutrition Analysis
130
+ story.append(Paragraph("Nutrition Analysis", styles['Heading1']))
131
+ nutrition_data = [user_data['nutrition'].get(group, 0) for group in FOOD_GROUPS]
132
+ nutrition_chart = create_chart(nutrition_data, FOOD_GROUPS, "Food Group Intake")
133
+ story.append(Image(nutrition_chart, width=400, height=300))
134
+
135
+ bullet_points = [Paragraph(point.strip(), styles['Bullet']) for point in analysis['nutrition'].split('\n') if point.strip()]
136
+ story.append(ListFlowable(bullet_points, bulletType='bullet', start=''))
137
+
138
+ # Exercise Analysis
139
+ story.append(Paragraph("Exercise Analysis", styles['Heading1']))
140
+ exercise_data = [user_data['exercise'].get(exercise, 0) for exercise in EXERCISE]
141
+ exercise_chart = create_chart(exercise_data, EXERCISE, "Exercise Habits")
142
+ story.append(Image(exercise_chart, width=400, height=300))
143
+
144
+ bullet_points = [Paragraph(point.strip(), styles['Bullet']) for point in analysis['exercise'].split('\n') if point.strip()]
145
+ story.append(ListFlowable(bullet_points, bulletType='bullet', start=''))
146
+
147
+ # Lifestyle Analysis
148
+ story.append(Paragraph("Lifestyle Analysis", styles['Heading1']))
149
+ lifestyle_data = [user_data['lifestyle'].get(factor, 0) for factor in LIFESTYLE]
150
+ lifestyle_chart = create_chart(lifestyle_data, LIFESTYLE, "Lifestyle Factors", chart_type='pie')
151
+ story.append(Image(lifestyle_chart, width=400, height=300))
152
+
153
+ bullet_points = [Paragraph(point.strip(), styles['Bullet']) for point in analysis['lifestyle'].split('\n') if point.strip()]
154
+ story.append(ListFlowable(bullet_points, bulletType='bullet', start=''))
155
+
156
+ # Personalized Recommendations
157
+ story.append(Paragraph("Personalized Recommendations", styles['Heading1']))
158
+ bullet_points = [Paragraph(point.strip(), styles['Bullet']) for point in analysis['recommendations'].split('\n') if point.strip()]
159
+ story.append(ListFlowable(bullet_points, bulletType='bullet', start=''))
160
+
161
+ # Weekly Plan
162
+ story.append(Paragraph("Your Personalized Weekly Plan", styles['Heading1']))
163
+
164
+ # Generate a personalized weekly plan
165
+ weekly_plan = generate_personalized_weekly_plan(user_data)
166
+
167
+ # Add the weekly plan to the PDF
168
+ for day, plan in weekly_plan.items():
169
+ story.append(Paragraph(day, styles['Heading2']))
170
+ for category, items in plan.items():
171
+ story.append(Paragraph(category, styles['Heading3']))
172
+ bullet_points = [Paragraph(item, styles['Bullet']) for item in items]
173
+ story.append(ListFlowable(bullet_points, bulletType='bullet', start=''))
174
+
175
+ doc.build(story)
176
+ buffer.seek(0)
177
+ return buffer
178
+
179
+
180
+
181
+ # Streamlit UI
182
+ st.set_page_config(page_title="Health and Wellness Assessment", page_icon="🍏", layout="wide")
183
+
184
+
185
+ def introduction_page():
186
+ st.header("Welcome to Your Health and Wellness Journey")
187
+ st.markdown("""
188
+ This comprehensive assessment will help you understand your current health status and provide personalized recommendations for improvement.
189
+
190
+ Please answer all questions honestly for the most accurate results. Your data is confidential and will only be used to generate your personalized report.
191
+
192
+ Let's begin your journey to better health!
193
+ """)
194
+
195
+ def personal_info_page():
196
+ st.header("Personal Information")
197
+
198
+ st.session_state.user_data['name'] = st.text_input("Name", st.session_state.user_data.get('name', ''))
199
+ st.session_state.user_data['age'] = st.number_input("Age", min_value=18, max_value=100, value=st.session_state.user_data.get('age', 30))
200
+ st.session_state.user_data['gender'] = st.selectbox("Gender", ["Male", "Female", "Other"], index=["Male", "Female", "Other"].index(st.session_state.user_data.get('gender', 'Male')))
201
+ st.session_state.user_data['height'] = st.number_input("Height (cm)", min_value=100, max_value=250, value=st.session_state.user_data.get('height', 170))
202
+ st.session_state.user_data['weight'] = st.number_input("Weight (kg)", min_value=30, max_value=200, value=st.session_state.user_data.get('weight', 70))
203
+
204
+ def nutrition_page():
205
+ st.header("Nutrition Assessment")
206
+
207
+ if 'nutrition' not in st.session_state.user_data:
208
+ st.session_state.user_data['nutrition'] = {}
209
+
210
+ st.subheader("How often do you include the following food groups in your meals?")
211
+ for group in FOOD_GROUPS:
212
+ st.session_state.user_data['nutrition'][group] = st.select_slider(
213
+ f"{group}",
214
+ options=["Never", "Rarely", "Sometimes", "Often", "Always"],
215
+ value=st.session_state.user_data['nutrition'].get(group, "Sometimes")
216
+ )
217
+
218
+ st.subheader("Meal Frequency")
219
+ for meal in MEAL_FREQUENCY:
220
+ st.session_state.user_data['nutrition'][f"{meal}_frequency"] = st.select_slider(
221
+ f"How often do you have {meal}?",
222
+ options=["Never", "1-2 times/week", "3-4 times/week", "5-6 times/week", "Daily"],
223
+ value=st.session_state.user_data['nutrition'].get(f"{meal}_frequency", "Daily")
224
+ )
225
+
226
+ st.session_state.user_data['water_intake'] = st.number_input(
227
+ "How many glasses of water do you drink per day?",
228
+ min_value=0,
229
+ max_value=20,
230
+ value=st.session_state.user_data.get('water_intake', 8)
231
+ )
232
+
233
+ def exercise_page():
234
+ st.header("Exercise Habits")
235
+
236
+ if 'exercise' not in st.session_state.user_data:
237
+ st.session_state.user_data['exercise'] = {}
238
+
239
+ st.subheader("How often do you engage in the following types of exercise?")
240
+ for exercise_type in EXERCISE:
241
+ st.session_state.user_data['exercise'][exercise_type] = st.select_slider(
242
+ f"{exercise_type}",
243
+ options=["Never", "1-2 times/month", "1-2 times/week", "3-4 times/week", "5+ times/week"],
244
+ value=st.session_state.user_data['exercise'].get(exercise_type, "1-2 times/week")
245
+ )
246
+
247
+ st.session_state.user_data['exercise_duration'] = st.number_input(
248
+ "On average, how long are your exercise sessions? (minutes)",
249
+ min_value=0,
250
+ max_value=180,
251
+ value=st.session_state.user_data.get('exercise_duration', 30)
252
+ )
253
+
254
+ # Add this function to convert lifestyle ratings to numeric values
255
+ def lifestyle_to_numeric(rating):
256
+ conversion = {
257
+ "Poor": 1,
258
+ "Fair": 2,
259
+ "Good": 3,
260
+ "Very Good": 4,
261
+ "Excellent": 5,
262
+ "Very Low": 1,
263
+ "Low": 2,
264
+ "Moderate": 3,
265
+ "High": 4,
266
+ "Very High": 5
267
+ }
268
+ return conversion.get(rating, 3) # Default to 3 if rating not found
269
+
270
+ # Update the lifestyle_page function
271
+ def lifestyle_page():
272
+ st.header("Lifestyle Factors")
273
+
274
+ if 'lifestyle' not in st.session_state.user_data:
275
+ st.session_state.user_data['lifestyle'] = {}
276
+
277
+ st.subheader("Rate the following aspects of your lifestyle:")
278
+ options = ["Poor", "Fair", "Good", "Very Good", "Excellent"]
279
+ for factor in LIFESTYLE:
280
+ # Get the current value, defaulting to "Good" if not set or not in options
281
+ current_value = st.session_state.user_data['lifestyle'].get(factor, "Good")
282
+ if current_value not in options:
283
+ current_value = "Good"
284
+
285
+ rating = st.select_slider(
286
+ f"{factor}",
287
+ options=options,
288
+ value=current_value
289
+ )
290
+ st.session_state.user_data['lifestyle'][factor] = lifestyle_to_numeric(rating)
291
+
292
+ st.session_state.user_data['sleep_hours'] = st.number_input(
293
+ "How many hours of sleep do you get on average?",
294
+ min_value=4,
295
+ max_value=12,
296
+ value=st.session_state.user_data.get('sleep_hours', 7)
297
+ )
298
+
299
+ stress_options = ["Very Low", "Low", "Moderate", "High", "Very High"]
300
+ current_stress = st.session_state.user_data.get('stress_level', "Moderate")
301
+ if current_stress not in stress_options:
302
+ current_stress = "Moderate"
303
+
304
+ stress_level = st.select_slider(
305
+ "Rate your overall stress level",
306
+ options=stress_options,
307
+ value=current_stress
308
+ )
309
+ st.session_state.user_data['stress_level'] = lifestyle_to_numeric(stress_level)
310
+
311
+ def medical_history_page():
312
+ st.header("Medical History")
313
+
314
+ if 'medical_history' not in st.session_state.user_data:
315
+ st.session_state.user_data['medical_history'] = {}
316
+
317
+ for category in MEDICAL_HISTORY:
318
+ st.session_state.user_data['medical_history'][category] = st.text_area(
319
+ f"{category}",
320
+ value=st.session_state.user_data['medical_history'].get(category, ''),
321
+ help="Enter relevant information or 'None' if not applicable"
322
+ )
323
+
324
+ st.session_state.user_data['smoker'] = st.selectbox(
325
+ "Do you smoke?",
326
+ ["No", "Occasionally", "Regularly"],
327
+ index=["No", "Occasionally", "Regularly"].index(st.session_state.user_data.get('smoker', 'No'))
328
+ )
329
+
330
+ st.session_state.user_data['alcohol'] = st.selectbox(
331
+ "How often do you consume alcohol?",
332
+ ["Never", "Occasionally", "Weekly", "Daily"],
333
+ index=["Never", "Occasionally", "Weekly", "Daily"].index(st.session_state.user_data.get('alcohol', 'Occasionally'))
334
+ )
335
+
336
+ def detailed_preferences_page():
337
+ st.header("Detailed Preferences")
338
+
339
+ if 'detailed_preferences' not in st.session_state.user_data:
340
+ st.session_state.user_data['detailed_preferences'] = {}
341
+
342
+ prefs = st.session_state.user_data['detailed_preferences']
343
+
344
+ prefs['wake_time'] = st.time_input("What time do you usually wake up?", value=prefs.get('wake_time', datetime.strptime("07:00", "%H:%M").time()))
345
+ prefs['sleep_time'] = st.time_input("What time do you usually go to sleep?", value=prefs.get('sleep_time', datetime.strptime("22:00", "%H:%M").time()))
346
+
347
+ prefs['meal_preferences'] = st.multiselect(
348
+ "Do you have any specific meal preferences?",
349
+ ["Vegetarian", "Vegan", "Low-carb", "High-protein", "Gluten-free", "Dairy-free"],
350
+ default=prefs.get('meal_preferences', [])
351
+ )
352
+
353
+ prefs['food_allergies'] = st.text_input("Do you have any food allergies? (Separate with commas)", value=prefs.get('food_allergies', ''))
354
+
355
+ prefs['exercise_preferences'] = st.multiselect(
356
+ "What types of exercise do you enjoy?",
357
+ ["Walking", "Running", "Cycling", "Swimming", "Yoga", "Weight Training", "HIIT", "Dance", "Team Sports"],
358
+ default=prefs.get('exercise_preferences', [])
359
+ )
360
+
361
+ prefs['exercise_time'] = st.selectbox(
362
+ "When do you prefer to exercise?",
363
+ ["Morning", "Afternoon", "Evening"],
364
+ index=["Morning", "Afternoon", "Evening"].index(prefs.get('exercise_time', "Morning"))
365
+ )
366
+
367
+ prefs['work_hours'] = st.text_input("What are your typical work hours? (e.g., 9am-5pm)", value=prefs.get('work_hours', ''))
368
+
369
+ prefs['stress_relief'] = st.multiselect(
370
+ "What activities help you relieve stress?",
371
+ ["Meditation", "Reading", "Listening to Music", "Taking a Bath", "Gardening", "Painting/Art", "Cooking"],
372
+ default=prefs.get('stress_relief', [])
373
+ )
374
+
375
+ def generate_report_page():
376
+ st.header("Generate Your Health and Wellness Report")
377
+
378
+ if st.button("Generate Report", key="generate_report_button"): # Added unique key here
379
+ if not all(key in st.session_state.user_data for key in ['name', 'age', 'gender', 'height', 'weight', 'nutrition', 'exercise', 'lifestyle', 'medical_history']):
380
+ st.error("Please complete all sections before generating the report.")
381
+ else:
382
+ with st.spinner("Analyzing your data and generating report..."):
383
+ analysis = {
384
+ 'nutrition': get_gpt_analysis("Analyze the user's nutritional habits and provide 3-5 key insights or recommendations in bullet points.", st.session_state.user_data['nutrition']),
385
+ 'exercise': get_gpt_analysis("Analyze the user's exercise habits and provide 3-5 key insights or recommendations in bullet points.", st.session_state.user_data['exercise']),
386
+ 'lifestyle': get_gpt_analysis("Analyze the user's lifestyle factors and provide 3-5 key insights or recommendations in bullet points.", st.session_state.user_data['lifestyle']),
387
+ 'recommendations': get_gpt_analysis("Provide 5 personalized health and wellness recommendations based on the user's overall profile. Present these as bullet points.", st.session_state.user_data),
388
+ 'weekly_plan': get_gpt_analysis("Create a brief, bullet-point weekly plan for the user, including suggested meals, exercises, and lifestyle adjustments. Keep it concise and actionable.", st.session_state.user_data)
389
+ }
390
+
391
+ pdf_buffer = generate_pdf_report(st.session_state.user_data, analysis)
392
+
393
+ st.success("Your Health and Wellness Report has been generated!")
394
+ st.download_button(
395
+ label="Download Your Report",
396
+ data=pdf_buffer,
397
+ file_name="health_wellness_report.pdf",
398
+ mime="application/pdf"
399
+ )
400
+
401
+ st.subheader("Summary of Recommendations")
402
+ st.write(analysis['recommendations'])
403
+
404
+ st.subheader("Your Personalized Weekly Plan")
405
+ st.write(analysis['weekly_plan'])
406
+
407
+ # Make sure to add unique keys to the navigation buttons in the main() function as well
408
+ def main():
409
+ if 'user_data' not in st.session_state:
410
+ st.session_state.user_data = {}
411
+ if 'page' not in st.session_state:
412
+ st.session_state.page = 0
413
+
414
+ st.title("Health and Wellness Assessment")
415
+
416
+ pages = [
417
+ introduction_page,
418
+ personal_info_page,
419
+ nutrition_page,
420
+ exercise_page,
421
+ lifestyle_page,
422
+ medical_history_page,
423
+ detailed_preferences_page,
424
+ generate_report_page
425
+ ]
426
+
427
+
428
+ # Convert existing lifestyle data to numeric if it's not already
429
+ if 'lifestyle' in st.session_state.user_data:
430
+ for factor in LIFESTYLE:
431
+ if factor in st.session_state.user_data['lifestyle']:
432
+ st.session_state.user_data['lifestyle'][factor] = lifestyle_to_numeric(st.session_state.user_data['lifestyle'][factor])
433
+
434
+
435
+ st.sidebar.title("Navigation")
436
+ page_names = ["Introduction", "Personal Information", "Nutrition Assessment", "Exercise Habits", "Lifestyle Factors", "Medical History", "Generate Report"]
437
+
438
+ for i, page_name in enumerate(page_names):
439
+ if st.sidebar.button(page_name, key=f"nav_{i}"): # Added unique keys here
440
+ st.session_state.page = i
441
+
442
+ pages[st.session_state.page]()
443
+
444
+ col1, col2 = st.columns(2)
445
+ with col1:
446
+ if st.button("Previous", key="prev_button") and st.session_state.page > 0: # Added unique key
447
+ st.session_state.page -= 1
448
+ st.rerun()
449
+ with col2:
450
+ if st.button("Next", key="next_button") and st.session_state.page < len(pages) - 1: # Added unique key
451
+ st.session_state.page += 1
452
+ st.rerun()
453
+
454
+ if __name__ == "__main__":
455
+ main()
questionnaire.py ADDED
@@ -0,0 +1,665 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # questionnaire.py
2
+ import streamlit as st
3
+
4
+ questions = {
5
+ 'RIASEC': {
6
+ 'Realistic': [
7
+ ("How much do you enjoy working with tools and machines?", [
8
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
9
+ ("How comfortable are you with physical, hands-on work?", [
10
+ "Very uncomfortable", "Somewhat uncomfortable", "Neutral", "Comfortable", "Very comfortable"]),
11
+ ("How interested are you in building or repairing things?", [
12
+ "Not interested", "Slightly interested", "Moderately interested", "Very interested", "Extremely interested"]),
13
+ ("How much do you enjoy outdoor activities and working in nature?", [
14
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
15
+ ("How confident are you in your ability to work with your hands?", [
16
+ "Not confident", "Slightly confident", "Moderately confident", "Very confident", "Extremely confident"]),
17
+ ("How interested are you in operating vehicles, machinery, or equipment?", [
18
+ "Not interested", "Slightly interested", "Moderately interested", "Very interested", "Extremely interested"]),
19
+ ("How much do you enjoy solving practical, hands-on problems?", [
20
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
21
+ ("How comfortable are you with physically demanding work?", [
22
+ "Very uncomfortable", "Somewhat uncomfortable", "Neutral", "Comfortable", "Very comfortable"]),
23
+ ("How interested are you in working with plants, animals, or materials like wood, tools, or machinery?", [
24
+ "Not interested", "Slightly interested", "Moderately interested", "Very interested", "Extremely interested"]),
25
+ ("How much do you value practical skills over abstract thinking?", [
26
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"])
27
+ ],
28
+ 'Investigative': [
29
+ ("How much do you enjoy solving complex problems?", [
30
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
31
+ ("How interested are you in conducting research?", [
32
+ "Not interested", "Slightly interested", "Moderately interested", "Very interested", "Extremely interested"]),
33
+ ("How comfortable are you with analyzing data and information?", [
34
+ "Very uncomfortable", "Somewhat uncomfortable", "Neutral", "Comfortable", "Very comfortable"]),
35
+ ("How much do you enjoy learning about scientific theories?", [
36
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
37
+ ("How interested are you in exploring new ideas and concepts?", [
38
+ "Not interested", "Slightly interested", "Moderately interested", "Very interested", "Extremely interested"]),
39
+ ("How much do you enjoy working independently on intellectual tasks?", [
40
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
41
+ ("How comfortable are you with using logic to solve problems?", [
42
+ "Very uncomfortable", "Somewhat uncomfortable", "Neutral", "Comfortable", "Very comfortable"]),
43
+ ("How interested are you in conducting experiments or studies?", [
44
+ "Not interested", "Slightly interested", "Moderately interested", "Very interested", "Extremely interested"]),
45
+ ("How much do you enjoy reading scientific or technical materials?", [
46
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
47
+ ("How confident are you in your ability to understand complex theories?", [
48
+ "Not confident", "Slightly confident", "Moderately confident", "Very confident", "Extremely confident"])
49
+ ],
50
+ 'Artistic': [
51
+ ("How much do you enjoy expressing yourself creatively?", [
52
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
53
+ ("How interested are you in visual arts (painting, drawing, sculpture, etc.)?", [
54
+ "Not interested", "Slightly interested", "Moderately interested", "Very interested", "Extremely interested"]),
55
+ ("How comfortable are you with thinking outside the box?", [
56
+ "Very uncomfortable", "Somewhat uncomfortable", "Neutral", "Comfortable", "Very comfortable"]),
57
+ ("How much do you enjoy writing creatively?", [
58
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
59
+ ("How interested are you in performing arts (music, dance, theater)?", [
60
+ "Not interested", "Slightly interested", "Moderately interested", "Very interested", "Extremely interested"]),
61
+ ("How much do you value originality and self-expression?", [
62
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
63
+ ("How comfortable are you with ambiguity and lack of structure?", [
64
+ "Very uncomfortable", "Somewhat uncomfortable", "Neutral", "Comfortable", "Very comfortable"]),
65
+ ("How interested are you in unconventional ideas and ways of doing things?", [
66
+ "Not interested", "Slightly interested", "Moderately interested", "Very interested", "Extremely interested"]),
67
+ ("How much do you enjoy appreciating or creating art, music, or literature?", [
68
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
69
+ ("How confident are you in your creative abilities?", [
70
+ "Not confident", "Slightly confident", "Moderately confident", "Very confident", "Extremely confident"])
71
+ ],
72
+ 'Social': [
73
+ ("How much do you enjoy working with people?", [
74
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
75
+ ("How interested are you in helping others solve their problems?", [
76
+ "Not interested", "Slightly interested", "Moderately interested", "Very interested", "Extremely interested"]),
77
+ ("How comfortable are you in group settings?", [
78
+ "Very uncomfortable", "Somewhat uncomfortable", "Neutral", "Comfortable", "Very comfortable"]),
79
+ ("How much do you enjoy teaching or explaining things to others?", [
80
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
81
+ ("How interested are you in understanding people's motivations and behaviors?", [
82
+ "Not interested", "Slightly interested", "Moderately interested", "Very interested", "Extremely interested"]),
83
+ ("How much do you value cooperation and teamwork?", [
84
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
85
+ ("How comfortable are you with public speaking or performing?", [
86
+ "Very uncomfortable", "Somewhat uncomfortable", "Neutral", "Comfortable", "Very comfortable"]),
87
+ ("How interested are you in social issues and community service?", [
88
+ "Not interested", "Slightly interested", "Moderately interested", "Very interested", "Extremely interested"]),
89
+ ("How much do you enjoy organizing group activities or events?", [
90
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
91
+ ("How confident are you in your ability to communicate effectively with others?", [
92
+ "Not confident", "Slightly confident", "Moderately confident", "Very confident", "Extremely confident"])
93
+ ],
94
+ 'Enterprising': [
95
+ ("How much do you enjoy leading or managing others?", [
96
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
97
+ ("How interested are you in starting your own business?", [
98
+ "Not interested", "Slightly interested", "Moderately interested", "Very interested", "Extremely interested"]),
99
+ ("How comfortable are you with taking risks?", [
100
+ "Very uncomfortable", "Somewhat uncomfortable", "Neutral", "Comfortable", "Very comfortable"]),
101
+ ("How much do you enjoy persuading or influencing others?", [
102
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
103
+ ("How interested are you in sales or marketing activities?", [
104
+ "Not interested", "Slightly interested", "Moderately interested", "Very interested", "Extremely interested"]),
105
+ ("How much do you value competition and achievement?", [
106
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
107
+ ("How comfortable are you with making important decisions?", [
108
+ "Very uncomfortable", "Somewhat uncomfortable", "Neutral", "Comfortable", "Very comfortable"]),
109
+ ("How interested are you in politics or economic systems?", [
110
+ "Not interested", "Slightly interested", "Moderately interested", "Very interested", "Extremely interested"]),
111
+ ("How much do you enjoy negotiating or debating?", [
112
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
113
+ ("How confident are you in your ability to motivate and lead others?", [
114
+ "Not confident", "Slightly confident", "Moderately confident", "Very confident", "Extremely confident"])
115
+ ],
116
+ 'Conventional': [
117
+ ("How much do you enjoy working with numbers and data?", [
118
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
119
+ ("How interested are you in maintaining accurate records?", [
120
+ "Not interested", "Slightly interested", "Moderately interested", "Very interested", "Extremely interested"]),
121
+ ("How comfortable are you with following set procedures and routines?", [
122
+ "Very uncomfortable", "Somewhat uncomfortable", "Neutral", "Comfortable", "Very comfortable"]),
123
+ ("How much do you enjoy organizing and categorizing information?", [
124
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
125
+ ("How interested are you in working in an office environment?", [
126
+ "Not interested", "Slightly interested", "Moderately interested", "Very interested", "Extremely interested"]),
127
+ ("How much do you value attention to detail and accuracy?", [
128
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
129
+ ("How comfortable are you with using computer software for data management?", [
130
+ "Very uncomfortable", "Somewhat uncomfortable", "Neutral", "Comfortable", "Very comfortable"]),
131
+ ("How interested are you in financial or business operations?", [
132
+ "Not interested", "Slightly interested", "Moderately interested", "Very interested", "Extremely interested"]),
133
+ ("How much do you enjoy creating or following schedules and plans?", [
134
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
135
+ ("How confident are you in your ability to manage time and resources efficiently?", [
136
+ "Not confident", "Slightly confident", "Moderately confident", "Very confident", "Extremely confident"])
137
+ ]
138
+ },
139
+ 'OCEAN': {
140
+ 'Openness': [
141
+ ("How curious are you about various topics and ideas?", [
142
+ "Not at all curious", "Slightly curious", "Moderately curious", "Very curious", "Extremely curious"]),
143
+ ("How much do you enjoy trying new experiences?", [
144
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
145
+ ("How interested are you in abstract or philosophical discussions?", [
146
+ "Not interested", "Slightly interested", "Moderately interested", "Very interested", "Extremely interested"]),
147
+ ("How comfortable are you with change and variety in your life?", [
148
+ "Very uncomfortable", "Somewhat uncomfortable", "Neutral", "Comfortable", "Very comfortable"]),
149
+ ("How much do you value creativity and imagination?", [
150
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"])
151
+ ],
152
+ 'Conscientiousness': [
153
+ ("How organized are you in your daily life and work?", [
154
+ "Not at all organized", "Slightly organized", "Moderately organized", "Very organized", "Extremely organized"]),
155
+ ("How much do you value punctuality and meeting deadlines?", [
156
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
157
+ ("How thorough are you when completing tasks or projects?", [
158
+ "Not thorough at all", "Slightly thorough", "Moderately thorough", "Very thorough", "Extremely thorough"]),
159
+ ("How much do you plan ahead before taking action?", [
160
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
161
+ ("How disciplined are you in pursuing your goals?", [
162
+ "Not disciplined at all", "Slightly disciplined", "Moderately disciplined", "Very disciplined", "Extremely disciplined"])
163
+ ],
164
+ 'Extraversion': [
165
+ ("How much do you enjoy being around other people?", [
166
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
167
+ ("How comfortable are you in social situations?", [
168
+ "Very uncomfortable", "Somewhat uncomfortable", "Neutral", "Comfortable", "Very comfortable"]),
169
+ ("How often do you take the initiative in social interactions?", [
170
+ "Never", "Rarely", "Sometimes", "Often", "Always"]),
171
+ ("How energized do you feel after spending time with others?", [
172
+ "Not at all energized", "Slightly energized", "Moderately energized", "Very energized", "Extremely energized"]),
173
+ ("How much do you enjoy being the center of attention?", [
174
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"])
175
+ ],
176
+ 'Agreeableness': [
177
+ ("How easily do you trust and get along with others?", [
178
+ "Very difficult", "Somewhat difficult", "Neutral", "Somewhat easy", "Very easy"]),
179
+ ("How much do you value harmony in your relationships?", [
180
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
181
+ ("How willing are you to compromise or cooperate with others?", [
182
+ "Not willing at all", "Slightly willing", "Moderately willing", "Very willing", "Extremely willing"]),
183
+ ("How much do you care about others' feelings and well-being?", [
184
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
185
+ ("How forgiving are you when someone wrongs you?", [
186
+ "Not forgiving at all", "Slightly forgiving", "Moderately forgiving", "Very forgiving", "Extremely forgiving"])
187
+ ],
188
+ 'Neuroticism': [
189
+ ("How often do you experience stress or anxiety?", [
190
+ "Never", "Rarely", "Sometimes", "Often", "Always"]),
191
+ ("How easily do your moods change?", [
192
+ "Not easily at all", "Somewhat easily", "Moderately easily", "Very easily", "Extremely easily"]),
193
+ ("How much do you worry about things that might go wrong?", [
194
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
195
+ ("How sensitive are you to criticism or negative feedback?", [
196
+ "Not sensitive at all", "Slightly sensitive", "Moderately sensitive", "Very sensitive", "Extremely sensitive"]),
197
+ ("How often do you feel overwhelmed by your emotions?", [
198
+ "Never", "Rarely", "Sometimes", "Often", "Always"])
199
+ ]
200
+ },
201
+ 'Hofstede': {
202
+ 'PDI': [
203
+ ("How comfortable are you with hierarchical structures in organizations?", [
204
+ "Very uncomfortable", "Somewhat uncomfortable", "Neutral", "Comfortable", "Very comfortable"]),
205
+ ("How much do you believe in respecting authority figures?", [
206
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
207
+ ("How important is it for you to have clear directions from superiors?", [
208
+ "Not important", "Slightly important", "Moderately important", "Very important", "Extremely important"]),
209
+ ("How much do you value equality in power distribution?", [
210
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
211
+ ("How comfortable are you with challenging those in authority?", [
212
+ "Very uncomfortable", "Somewhat uncomfortable", "Neutral", "Comfortable", "Very comfortable"])
213
+ ],
214
+ 'IDV': [
215
+ ("How much do you value individual achievements over group success?", [
216
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
217
+ ("How comfortable are you with standing out from the crowd?", [
218
+ "Very uncomfortable", "Somewhat uncomfortable", "Neutral", "Comfortable", "Very comfortable"]),
219
+ ("How important is personal time and space to you?", [
220
+ "Not important", "Slightly important", "Moderately important", "Very important", "Extremely important"]),
221
+ ("How much do you rely on yourself versus others for support?", [
222
+ "Always rely on others", "Often rely on others", "Balance between self and others", "Often rely on self", "Always rely on self"]),
223
+ ("How much do you prioritize your personal goals over group harmony?", [
224
+ "Never", "Rarely", "Sometimes", "Often", "Always"])
225
+ ],
226
+ 'MAS': [
227
+ ("How much do you value competition and achievement in your work?", [
228
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
229
+ ("How important is it for you to be assertive and ambitious?", [
230
+ "Not important", "Slightly important", "Moderately important", "Very important", "Extremely important"]),
231
+ ("How much do you prioritize career success over work-life balance?", [
232
+ "Always prioritize work-life balance", "Often prioritize work-life balance", "Equal priority", "Often prioritize career success", "Always prioritize career success"]),
233
+ ("How comfortable are you with conflict and confrontation?", [
234
+ "Very uncomfortable", "Somewhat uncomfortable", "Neutral", "Comfortable", "Very comfortable"]),
235
+ ("How much do you believe in traditional gender roles?", [
236
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"])
237
+ ],
238
+ 'UAI': [
239
+ ("How much do you prefer structure and clear rules in your life?", [
240
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
241
+ ("How uncomfortable do you feel in ambiguous or uncertain situations?", [
242
+ "Not uncomfortable at all", "Slightly uncomfortable", "Moderately uncomfortable", "Very uncomfortable", "Extremely uncomfortable"]),
243
+ ("How important is job security to you?", [
244
+ "Not important", "Slightly important", "Moderately important", "Very important", "Extremely important"]),
245
+ ("How much do you rely on experts and their knowledge?", [
246
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
247
+ ("How resistant are you to change and new ideas?", [
248
+ "Not resistant at all", "Slightly resistant", "Moderately resistant", "Very resistant", "Extremely resistant"])
249
+ ],
250
+ 'LTO': [
251
+ ("How much do you value long-term planning over short-term gains?", [
252
+ "Always prefer short-term", "Often prefer short-term", "Equal preference", "Often prefer long-term", "Always prefer long-term"]),
253
+ ("How important is it for you to save and invest for the future?", [
254
+ "Not important", "Slightly important", "Moderately important", "Very important", "Extremely important"]),
255
+ ("How much do you believe in adapting traditions to new circumstances?", [
256
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
257
+ ("How patient are you in waiting for results or rewards?", [
258
+ "Not patient at all", "Slightly patient", "Moderately patient", "Very patient", "Extremely patient"]),
259
+ ("How much do you value perseverance in achieving goals?", [
260
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"])
261
+ ],
262
+ 'IVR': [
263
+ ("How much do you prioritize enjoying life and having fun?", [
264
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
265
+ ("How freely do you express your desires and emotions?", [
266
+ "Not freely at all", "Somewhat freely", "Moderately freely", "Very freely", "Extremely freely"]),
267
+ ("How important is leisure time to you?", [
268
+ "Not important", "Slightly important", "Moderately important", "Very important", "Extremely important"]),
269
+ ("How much do you believe in following your impulses?", [
270
+ "Not at all", "Somewhat", "Moderately", "Very much", "Extremely"]),
271
+ ("How optimistic are you about life in general?", [
272
+ "Not optimistic at all", "Slightly optimistic", "Moderately optimistic", "Very optimistic", "Extremely optimistic"])
273
+ ]
274
+ },
275
+ 'mbti_questions': {
276
+ 'E': [
277
+ ("How energized do you feel by social interactions?", [
278
+ "Not at all", "Slightly", "Moderately", "Very", "Extremely"]),
279
+ ("How comfortable are you in large group settings?", [
280
+ "Not comfortable at all", "Slightly comfortable", "Moderately comfortable", "Very comfortable", "Extremely comfortable"]),
281
+ ("How much do you enjoy being the center of attention?", [
282
+ "Not at all", "Slightly", "Moderately", "Very much", "Extremely"]),
283
+ ("How often do you initiate conversations with strangers?", [
284
+ "Never", "Rarely", "Sometimes", "Often", "Very often"]),
285
+ ("How energized do you feel after attending a social event?", [
286
+ "Not at all", "Slightly", "Moderately", "Very", "Extremely"])
287
+ ],
288
+ 'S': [
289
+ ("How much do you rely on concrete facts and details?", [
290
+ "Not at all", "Slightly", "Moderately", "Very much", "Extremely"]),
291
+ ("How focused are you on the present moment?", [
292
+ "Not focused at all", "Slightly focused", "Moderately focused", "Very focused", "Extremely focused"]),
293
+ ("How much do you trust your direct experiences?", [
294
+ "Not at all", "Somewhat", "Moderately", "Very much", "Completely"]),
295
+ ("How practical is your approach to problem-solving?", [
296
+ "Not practical at all", "Somewhat practical", "Moderately practical", "Very practical", "Extremely practical"]),
297
+ ("How much do you prefer step-by-step instructions?", [
298
+ "Not at all", "Slightly", "Moderately", "Very much", "Extremely"])
299
+ ],
300
+ 'T': [
301
+ ("How much do you rely on logic when making decisions?", [
302
+ "Not at all", "Slightly", "Moderately", "Very much", "Extremely"]),
303
+ ("How important is objectivity to you?", [
304
+ "Not important", "Slightly important", "Moderately important", "Very important", "Extremely important"]),
305
+ ("How comfortable are you with critiquing others?", [
306
+ "Not comfortable at all", "Slightly comfortable", "Moderately comfortable", "Very comfortable", "Extremely comfortable"]),
307
+ ("How much do you value efficiency over harmony?", [
308
+ "Not at all", "Slightly", "Moderately", "Very much", "Extremely"]),
309
+ ("How analytical is your approach to problems?", [
310
+ "Not analytical at all", "Slightly analytical", "Moderately analytical", "Very analytical", "Extremely analytical"])
311
+ ],
312
+ 'J': [
313
+ ("How much do you prefer having a structured schedule?", [
314
+ "Not at all", "Slightly", "Moderately", "Very much", "Extremely"]),
315
+ ("How important is it for you to complete tasks well before deadlines?", [
316
+ "Not important", "Slightly important", "Moderately important", "Very important", "Extremely important"]),
317
+ ("How much do you like planning ahead?", [
318
+ "Not at all", "Slightly", "Moderately", "Very much", "Extremely"]),
319
+ ("How uncomfortable do you feel with open-ended situations?", [
320
+ "Not uncomfortable at all", "Slightly uncomfortable", "Moderately uncomfortable", "Very uncomfortable", "Extremely uncomfortable"]),
321
+ ("How much do you prefer having clear rules and guidelines?", [
322
+ "Not at all", "Slightly", "Moderately", "Very much", "Extremely"])
323
+ ]
324
+ }
325
+ }
326
+
327
+
328
+ aptitude_questions = {
329
+ 'V': [
330
+ ("Choose the word most similar in meaning to 'Benevolent':", ["Malicious", "Charitable", "Arrogant", "Indifferent"], "Charitable"),
331
+ ("Complete the analogy: Book is to Reading as Fork is to:", ["Eating", "Cooking", "Cutting", "Stirring"], "Eating"),
332
+ ("Which word is the opposite of 'Frugal'?", ["Wasteful", "Careful", "Economical", "Prudent"], "Wasteful"),
333
+ ("Choose the word that best completes the sentence: The detective's _____ search of the crime scene yielded important evidence.", ["Cursory", "Thorough", "Brief", "Hasty"], "Thorough"),
334
+ ("What is the meaning of 'Ubiquitous'?", ["Rare", "Everywhere", "Unique", "Scarce"], "Everywhere"),
335
+ ("Which word is a synonym for 'Eloquent'?", ["Articulate", "Shy", "Silent", "Clumsy"], "Articulate"),
336
+ ("Complete the analogy: Light is to Dark as Loud is to:", ["Quiet", "Noisy", "Bright", "Dim"], "Quiet"),
337
+ ("Choose the word that doesn't belong:", ["Ecstatic", "Elated", "Jubilant", "Melancholy"], "Melancholy")
338
+ ],
339
+ 'Nu': [
340
+ ("What is 15% of 80?", ["10", "12", "15", "18"], "12"),
341
+ ("If x + 2 = 7, what is the value of x?", ["3", "4", "5", "6"], "5"),
342
+ ("What is the next number in the sequence: 2, 4, 8, 16, ...?", ["24", "32", "64", "128"], "32"),
343
+ ("If a shirt costs $25 and is on sale for 20% off, what is the sale price?", ["$15", "$18", "$20", "$22"], "20"),
344
+ ("What is the square root of 144?", ["10", "11", "12", "13"], "12"),
345
+ ("If 3x - 5 = 16, what is x?", ["5", "6", "7", "8"], "7"),
346
+ ("What is 3/4 expressed as a decimal?", ["0.25", "0.50", "0.75", "0.80"], "0.75"),
347
+ ("If a car travels 120 miles in 2 hours, what is its average speed in miles per hour?", ["30", "40", "60", "80"], "60")
348
+ ],
349
+ 'Sp': [
350
+ ("Which shape would complete the pattern?", ["Square", "Triangle", "Circle", "Pentagon"], "Triangle"),
351
+ ("If you unfold a cube, how many squares will you see?", ["4", "5", "6", "7"], "6"),
352
+ ("Which 3D shape has 6 faces, 8 vertices, and 12 edges?", ["Cube", "Sphere", "Pyramid", "Cylinder"], "Cube"),
353
+ ("Which image is the correct rotation of the given object?", ["Image A", "Image B", "Image C", "Image D"], "Image C"),
354
+ ("How many cubes are needed to build this structure?", ["8", "10", "12", "14"], "12"),
355
+ ("Which of these is not a possible net of a cube?", ["Net A", "Net B", "Net C", "Net D"], "Net B"),
356
+ ("If you look at this object from above, which shape would you see?", ["Circle", "Square", "Triangle", "Rectangle"], "Square"),
357
+ ("Which piece completes the puzzle?", ["Piece A", "Piece B", "Piece C", "Piece D"], "Piece C")
358
+ ],
359
+ 'LR': [
360
+ ("If all A are B, and some B are C, then:", ["All A are C", "Some A are C", "No A are C", "None of the above"], "Some A are C"),
361
+ ("Which number should come next in this series? 1, 3, 6, 10, 15, ...", ["21", "22", "23", "24"], "21"),
362
+ ("If 'some cats are animals' and 'all animals are living things', which statement must be true?", ["All cats are living things", "Some cats are living things", "No cats are living things", "All living things are cats"], "Some cats are living things"),
363
+ ("In a race, if you pass the person in 2nd place, what place are you in now?", ["1st", "2nd", "3rd", "4th"], "2nd"),
364
+ ("If it's true that 'if it's raining, then the ground is wet', and the ground is not wet, what can you conclude?", ["It's raining", "It's not raining", "The ground is dry", "Not enough information"], "It's not raining"),
365
+ ("Which word does not belong in this group?", ["Apple", "Banana", "Carrot", "Orange"], "Carrot"),
366
+ ("If you rearrange the letters 'CIFAIPC', you would have the name of a(n):", ["Country", "Animal", "Ocean", "City"], "Ocean"),
367
+ ("What number is missing: 4, 9, 16, 25, _, 49", ["30", "36", "40", "45"], "36")
368
+ ],
369
+ 'Me': [
370
+ ("Which tool is best for tightening a bolt?", ["Hammer", "Screwdriver", "Wrench", "Pliers"], "Wrench"),
371
+ ("In which direction would a gear turn if the gear next to it is turning clockwise?", ["Clockwise", "Counter-clockwise", "It wouldn't turn", "Depends on the size"], "Counter-clockwise"),
372
+ ("What simple machine is a knife an example of?", ["Lever", "Wedge", "Pulley", "Wheel and axle"], "Wedge"),
373
+ ("Which of these is not a type of simple machine?", ["Inclined plane", "Screw", "Magnet", "Lever"], "Magnet"),
374
+ ("What happens to the speed of a pulley system when you add more pulleys?", ["Increases", "Decreases", "Stays the same", "Becomes unpredictable"], "Decreases"),
375
+ ("Which of these would create the most friction?", ["Smooth metal on smooth metal", "Rubber on concrete", "Wood on wax", "Glass on glass"], "Rubber on concrete"),
376
+ ("What type of energy does a stretched rubber band have?", ["Kinetic", "Potential", "Thermal", "Nuclear"], "Potential"),
377
+ ("In a class 1 lever, where is the fulcrum located?", ["At one end", "In the middle", "At both ends", "There is no fulcrum"], "In the middle")
378
+ ],
379
+ 'Pe': [
380
+ ("Which image is different from the others?", ["Image A", "Image B", "Image C", "Image D"], "Image C"),
381
+ ("How many triangles can you find in this image?", ["5", "6", "7", "8"], "7"),
382
+ ("Which pattern comes next in the sequence?", ["Pattern A", "Pattern B", "Pattern C", "Pattern D"], "Pattern B"),
383
+ ("Find the odd one out:", ["Image 1", "Image 2", "Image 3", "Image 4"], "Image 3"),
384
+ ("Which piece completes the pattern?", ["Piece A", "Piece B", "Piece C", "Piece D"], "Piece C"),
385
+ ("How many faces does this 3D object have?", ["4", "5", "6", "7"], "6"),
386
+ ("Which image is the mirror reflection of the given image?", ["Image W", "Image X", "Image Y", "Image Z"], "Image Y"),
387
+ ("Count the number of squares in this figure:", ["14", "16", "18", "20"], "18")
388
+ ],
389
+ 'Ab': [
390
+ ("Complete the sequence: 2, 6, 12, 20, ?", ["30", "32", "36", "42"], "30"),
391
+ ("If RED is coded as 27 and BLUE is coded as 37, what is the code for GREEN?", ["47", "57", "67", "77"], "57"),
392
+ ("Which figure completes the pattern?", ["Figure A", "Figure B", "Figure C", "Figure D"], "Figure C"),
393
+ ("What comes next in the pattern: AZ, BY, CX, ?", ["DW", "DV", "EW", "EV"], "DW"),
394
+ ("If YZABC stands for 43210, what does ABCYZ stand for?", ["21043", "01234", "43201", "23410"], "01234"),
395
+ ("Which number does not belong in the series? 2, 5, 10, 17, 26, 37, 50", ["17", "26", "37", "50"], "37"),
396
+ ("If you rearrange the letters 'RAPETEKA', you get the name of a:", ["Country", "Animal", "Fruit", "Profession"], "Fruit"),
397
+ ("What is the missing number: 8 : 4 :: 18 : 6 :: 32 : ?", ["8", "10", "12", "16"], "8")
398
+ ]
399
+ }
400
+
401
+ #aptitude
402
+ career_cluster_weights = {
403
+ "Agricultural & Food Sciences": {
404
+ 'V': 6, 'Nu': 7, 'Sp': 7, 'LR': 8, 'Me': 8, 'Pe': 7, 'Ab': 7
405
+ },
406
+ "Medical Sciences": {
407
+ 'V': 8, 'Nu': 8, 'Sp': 7, 'LR': 9, 'Me': 7, 'Pe': 9, 'Ab': 8
408
+ },
409
+ "Allied & Paramedical Sciences": {
410
+ 'V': 7, 'Nu': 7, 'Sp': 6, 'LR': 8, 'Me': 6, 'Pe': 9, 'Ab': 7
411
+ },
412
+ "Humanities, Liberal Arts & Social Sciences": {
413
+ 'V': 10, 'Nu': 6, 'Sp': 5, 'LR': 8, 'Me': 3, 'Pe': 7, 'Ab': 8
414
+ },
415
+ "Journalism & Mass Communication": {
416
+ 'V': 10, 'Nu': 5, 'Sp': 6, 'LR': 8, 'Me': 3, 'Pe': 8, 'Ab': 7
417
+ },
418
+ "Design, Animation, Graphics & Applied Arts": {
419
+ 'V': 7, 'Nu': 6, 'Sp': 10, 'LR': 8, 'Me': 7, 'Pe': 9, 'Ab': 9
420
+ },
421
+ "Performing Arts": {
422
+ 'V': 8, 'Nu': 4, 'Sp': 7, 'LR': 6, 'Me': 5, 'Pe': 9, 'Ab': 8
423
+ },
424
+ "Hospitality, Tourism Services": {
425
+ 'V': 9, 'Nu': 6, 'Sp': 5, 'LR': 7, 'Me': 4, 'Pe': 8, 'Ab': 6
426
+ },
427
+ "Business Management & Marketing": {
428
+ 'V': 9, 'Nu': 8, 'Sp': 5, 'LR': 9, 'Me': 4, 'Pe': 7, 'Ab': 8
429
+ },
430
+ "Commerce & BFSI": {
431
+ 'V': 7, 'Nu': 10, 'Sp': 5, 'LR': 9, 'Me': 3, 'Pe': 7, 'Ab': 8
432
+ },
433
+ "Entrepreneurship": {
434
+ 'V': 8, 'Nu': 8, 'Sp': 6, 'LR': 9, 'Me': 5, 'Pe': 7, 'Ab': 9
435
+ },
436
+ "Economics": {
437
+ 'V': 8, 'Nu': 10, 'Sp': 5, 'LR': 9, 'Me': 3, 'Pe': 6, 'Ab': 9
438
+ },
439
+ "Architecture & Planning": {
440
+ 'V': 7, 'Nu': 8, 'Sp': 10, 'LR': 8, 'Me': 7, 'Pe': 9, 'Ab': 8
441
+ },
442
+ "IT & CS & AI & Data Science": {
443
+ 'V': 7, 'Nu': 9, 'Sp': 7, 'LR': 10, 'Me': 6, 'Pe': 8, 'Ab': 9
444
+ },
445
+ "Engineering": {
446
+ 'V': 7, 'Nu': 9, 'Sp': 8, 'LR': 9, 'Me': 9, 'Pe': 7, 'Ab': 8
447
+ },
448
+ "Physical Science, Life Science & Environment": {
449
+ 'V': 7, 'Nu': 9, 'Sp': 7, 'LR': 9, 'Me': 7, 'Pe': 7, 'Ab': 9
450
+ },
451
+ "Mathematics & Statistics & Actuary": {
452
+ 'V': 6, 'Nu': 10, 'Sp': 6, 'LR': 10, 'Me': 4, 'Pe': 7, 'Ab': 9
453
+ },
454
+ "Govt & Defense Services": {
455
+ 'V': 8, 'Nu': 7, 'Sp': 7, 'LR': 8, 'Me': 7, 'Pe': 8, 'Ab': 7
456
+ },
457
+ "Education & Teaching": {
458
+ 'V': 9, 'Nu': 7, 'Sp': 6, 'LR': 8, 'Me': 5, 'Pe': 8, 'Ab': 8
459
+ },
460
+ "Legal Services": {
461
+ 'V': 10, 'Nu': 6, 'Sp': 5, 'LR': 10, 'Me': 3, 'Pe': 7, 'Ab': 9
462
+ }
463
+ }
464
+
465
+ # 'student': {'V': 4, 'Nu': 2, 'Sp': 2, 'LR': 4, 'Me': 3, 'IT': 5}
466
+
467
+ career_clusters = {
468
+ "Agricultural & Food Sciences": {
469
+ 'RIASEC': [8, 7, 3, 5, 4, 6],
470
+ 'OCEAN': [6, 8, 6, 6, 4],
471
+ 'Hofstede': [6, 5, 6, 7, 8, 5],
472
+ 'MBTI': [6, 7, 6, 6]
473
+ },
474
+ "Medical Sciences": {
475
+ 'RIASEC': [6, 9, 3, 8, 5, 7],
476
+ 'OCEAN': [7, 9, 7, 8, 3],
477
+ 'Hofstede': [5, 6, 7, 9, 8, 4],
478
+ 'MBTI': [7, 2, 7, 8]
479
+ },
480
+ "Allied & Paramedical Sciences": {
481
+ 'RIASEC': [7, 8, 3, 9, 4, 6],
482
+ 'OCEAN': [6, 8, 7, 9, 3],
483
+ 'Hofstede': [5, 6, 6, 8, 7, 5],
484
+ 'MBTI': [7, 7, 2, 7]
485
+ },
486
+ "Life Science & Environment": {
487
+ 'RIASEC': [6, 9, 4, 5, 3, 7],
488
+ 'OCEAN': [8, 8, 5, 6, 4],
489
+ 'Hofstede': [4, 7, 5, 7, 9, 6],
490
+ 'MBTI': [5, 2, 7, 6]
491
+ },
492
+ "Humanities, Liberal Arts & Social Sciences": {
493
+ 'RIASEC': [2, 7, 6, 8, 5, 4],
494
+ 'OCEAN': [9, 7, 6, 8, 5],
495
+ 'Hofstede': [3, 8, 4, 5, 7, 7],
496
+ 'MBTI': [6, 2, 2, 5]
497
+ },
498
+ "Animation, Graphics & Applied Arts": {
499
+ 'RIASEC': [5, 4, 10, 3, 5, 6],
500
+ 'OCEAN': [9, 7, 5, 6, 5],
501
+ 'Hofstede': [3, 8, 5, 4, 6, 8],
502
+ 'MBTI': [5, 1, 6, 3]
503
+ },
504
+ "Journalism & Mass Communication": {
505
+ 'RIASEC': [3, 6, 7, 8, 7, 5],
506
+ 'OCEAN': [8, 7, 8, 7, 5],
507
+ 'Hofstede': [4, 8, 7, 5, 6, 8],
508
+ 'MBTI': [8, 3, 6, 7]
509
+ },
510
+ "Design": {
511
+ 'RIASEC': [5, 5, 10, 4, 6, 5],
512
+ 'OCEAN': [9, 8, 6, 6, 4],
513
+ 'Hofstede': [3, 8, 6, 4, 7, 8],
514
+ 'MBTI': [6, 1, 6, 3]
515
+ },
516
+ "Performing Arts": {
517
+ 'RIASEC': [4, 3, 10, 6, 5, 2],
518
+ 'OCEAN': [9, 8, 8, 7, 6],
519
+ 'Hofstede': [2, 9, 6, 3, 6, 9],
520
+ 'MBTI': [8, 2, 2, 4]
521
+ },
522
+ "Hospitality, Tourism Services": {
523
+ 'RIASEC': [5, 4, 5, 9, 8, 6],
524
+ 'OCEAN': [7, 8, 9, 9, 3],
525
+ 'Hofstede': [5, 7, 6, 6, 6, 8],
526
+ 'MBTI': [9, 6, 2, 7]
527
+ },
528
+ "Business Management & Marketing": {
529
+ 'RIASEC': [3, 6, 5, 7, 9, 7],
530
+ 'OCEAN': [7, 8, 8, 7, 4],
531
+ 'Hofstede': [6, 8, 8, 6, 7, 7],
532
+ 'MBTI': [8, 3, 6, 8]
533
+ },
534
+ "Commerce": {
535
+ 'RIASEC': [3, 6, 3, 5, 8, 9],
536
+ 'OCEAN': [6, 9, 7, 6, 3],
537
+ 'Hofstede': [6, 7, 8, 7, 7, 6],
538
+ 'MBTI': [7, 6, 7, 8]
539
+ },
540
+ "BFSI (Banking, Financial Services, Insurance)": {
541
+ 'RIASEC': [2, 7, 2, 5, 8, 10],
542
+ 'OCEAN': [6, 9, 6, 6, 3],
543
+ 'Hofstede': [7, 7, 8, 8, 8, 4],
544
+ 'MBTI': [6, 3, 8, 9]
545
+ },
546
+ "Entrepreneurship": {
547
+ 'RIASEC': [5, 6, 6, 7, 10, 5],
548
+ 'OCEAN': [9, 9, 8, 7, 5],
549
+ 'Hofstede': [3, 9, 8, 4, 7, 8],
550
+ 'MBTI': [8, 2, 6, 3]
551
+ },
552
+ "Economics": {
553
+ 'RIASEC': [2, 9, 3, 5, 7, 8],
554
+ 'OCEAN': [7, 8, 6, 6, 4],
555
+ 'Hofstede': [5, 8, 7, 7, 9, 5],
556
+ 'MBTI': [6, 2, 8, 7]
557
+ },
558
+ "Architecture & Planning": {
559
+ 'RIASEC': [7, 7, 9, 5, 6, 7],
560
+ 'OCEAN': [8, 9, 6, 7, 4],
561
+ 'Hofstede': [5, 7, 7, 6, 8, 6],
562
+ 'MBTI': [6, 2, 6, 8]
563
+ },
564
+ "IT & Computer Science": {
565
+ 'RIASEC': [6, 9, 5, 3, 5, 8],
566
+ 'OCEAN': [7, 8, 5, 6, 4],
567
+ 'Hofstede': [4, 8, 7, 5, 8, 6],
568
+ 'MBTI': [5, 2, 8, 7]
569
+ },
570
+ "AI & Data Science & Blockchain": {
571
+ 'RIASEC': [4, 10, 4, 2, 5, 8],
572
+ 'OCEAN': [8, 9, 5, 5, 3],
573
+ 'Hofstede': [3, 9, 7, 4, 9, 6],
574
+ 'MBTI': [5, 1, 8, 7]
575
+ },
576
+ "Engineering": {
577
+ 'RIASEC': [8, 9, 5, 4, 5, 7],
578
+ 'OCEAN': [7, 9, 6, 6, 3],
579
+ 'Hofstede': [5, 7, 8, 7, 8, 5],
580
+ 'MBTI': [6, 2, 8, 7]
581
+ },
582
+ "Physical Science": {
583
+ 'RIASEC': [6, 10, 3, 2, 3, 7],
584
+ 'OCEAN': [8, 9, 5, 5, 3],
585
+ 'Hofstede': [3, 8, 6, 6, 9, 5],
586
+ 'MBTI': [5, 2, 8, 7]
587
+ },
588
+ "Mathematics & Statistics & Actuary": {
589
+ 'RIASEC': [3, 10, 2, 2, 4, 9],
590
+ 'OCEAN': [7, 9, 4, 5, 3],
591
+ 'Hofstede': [4, 7, 6, 8, 9, 4],
592
+ 'MBTI': [4, 2, 9, 8]
593
+ },
594
+ "Govt & Defense Services": {
595
+ 'RIASEC': [7, 6, 2, 7, 7, 8],
596
+ 'OCEAN': [6, 9, 7, 7, 3],
597
+ 'Hofstede': [7, 5, 7, 8, 7, 4],
598
+ 'MBTI': [7, 6, 7, 8]
599
+ },
600
+ "Education & Teaching": {
601
+ 'RIASEC': [4, 7, 5, 10, 6, 6],
602
+ 'OCEAN': [8, 8, 7, 9, 4],
603
+ 'Hofstede': [4, 6, 5, 6, 8, 7],
604
+ 'MBTI': [7, 3, 2, 7]
605
+ },
606
+ "Legal Services": {
607
+ 'RIASEC': [2, 8, 3, 7, 7, 9],
608
+ 'OCEAN': [7, 9, 7, 7, 4],
609
+ 'Hofstede': [6, 7, 8, 8, 7, 5],
610
+ 'MBTI': [7, 2, 7, 8]
611
+ }
612
+ }
613
+
614
+ # In questionnaire.py
615
+
616
+ career_descriptions = {
617
+ "Agricultural & Food Sciences": "This field focuses on the science and technology of producing and refining plants and animals for human use. It encompasses areas such as crop cultivation, livestock management, food processing, and agricultural economics.",
618
+
619
+ "Medical Sciences": "Medical Sciences involve the study of preventing, diagnosing, and treating human diseases. This field includes various specialties such as general medicine, surgery, pediatrics, and emerging areas like genetic medicine.",
620
+
621
+ "Allied & Paramedical Sciences": "These sciences support the core medical field and include disciplines such as nursing, physiotherapy, occupational therapy, and medical laboratory technology. Professionals in this field play crucial roles in patient care and medical support.",
622
+
623
+ "Life Science & Environment": "This field studies living organisms and their interactions with each other and their environment. It includes subjects like biology, ecology, and environmental science, addressing crucial issues such as biodiversity and climate change.",
624
+
625
+ "Humanities, Liberal Arts & Social Sciences": "These disciplines study human society and culture. They include subjects like history, philosophy, sociology, and psychology, fostering critical thinking, cultural understanding, and social analysis skills.",
626
+
627
+ "Animation, Graphics & Applied Arts": "This creative field combines artistic skills with technology to create visual content for entertainment, advertising, and communication. It includes 2D and 3D animation, graphic design, and digital art.",
628
+
629
+ "Journalism & Mass Communication": "This field focuses on gathering, analyzing, and disseminating information through various media channels. It covers print, broadcast, and digital journalism, as well as public relations and advertising.",
630
+
631
+ "Design": "Design encompasses various disciplines that focus on creating functional and aesthetic solutions. It includes industrial design, fashion design, interior design, and user experience design, blending creativity with practical problem-solving.",
632
+
633
+ "Performing Arts": "This field involves live performance before an audience, including theater, dance, music, and other forms of artistic expression. It combines creative talent with technical skills in areas like choreography, direction, and performance.",
634
+
635
+ "Hospitality, Tourism Services": "This sector focuses on providing services to travelers and guests. It includes hotel management, event planning, tour operations, and culinary arts, emphasizing customer service and cultural sensitivity.",
636
+
637
+ "Business Management & Marketing": "This field deals with the organization, planning, and management of businesses. It covers areas such as strategic planning, human resources, operations management, and marketing strategies to promote products and services.",
638
+
639
+ "Commerce": "Commerce involves the study of business activities including trade, finance, and economics. It prepares students for careers in accounting, business administration, and financial analysis.",
640
+
641
+ "BFSI (Banking, Financial Services, Insurance)": "This sector encompasses services related to money management. It includes retail and commercial banking, investment management, insurance, and emerging fintech services.",
642
+
643
+ "Entrepreneurship": "Entrepreneurship focuses on the creation and management of new businesses. It involves identifying opportunities, developing business plans, securing funding, and managing startup operations.",
644
+
645
+ "Economics": "Economics studies how societies allocate scarce resources. It includes microeconomics, macroeconomics, and econometrics, preparing students for careers in policy analysis, market research, and financial forecasting.",
646
+
647
+ "Architecture & Planning": "This field combines art and science to design buildings and urban spaces. It includes architectural design, urban planning, landscape architecture, and sustainable development practices.",
648
+
649
+ "IT & Computer Science": "This field deals with the theory and practice of computer-based systems. It covers software development, network administration, cybersecurity, and emerging technologies like cloud computing.",
650
+
651
+ "AI & Data Science & Blockchain": "This cutting-edge field focuses on developing intelligent systems, analyzing large datasets, and creating secure, decentralized digital ledgers. It's at the forefront of technological innovation across various industries.",
652
+
653
+ "Engineering": "Engineering applies scientific and mathematical principles to design, develop, and create products and systems. It includes various branches such as mechanical, electrical, civil, and chemical engineering.",
654
+
655
+ "Physical Science": "Physical Science studies non-living systems and includes disciplines like physics and chemistry. It forms the basis for understanding the fundamental laws governing the universe and matter.",
656
+
657
+ "Mathematics & Statistics & Actuary": "This field involves the study of numbers, quantities, and space. It includes pure mathematics, applied mathematics, statistics, and actuarial science, crucial for data analysis and risk assessment.",
658
+
659
+ "Govt & Defense Services": "This sector involves working in public administration, policy-making, and national security. It includes civil services, military careers, and roles in government agencies and defense organizations.",
660
+
661
+ "Education & Teaching": "This field focuses on imparting knowledge and skills to others. It includes teaching at various levels, educational administration, curriculum development, and emerging areas like e-learning and special education.",
662
+
663
+ "Legal Services": "Legal Services involve the study and practice of law. It includes various specializations such as corporate law, criminal law, intellectual property law, and international law, preparing individuals for roles as lawyers, judges, or legal consultants."
664
+ }
665
+
requirements.txt ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ streamlit
2
+ streamlit_tags
3
+ pandas
4
+ matplotlib
5
+ openai
6
+ numpy
7
+ fastapi
8
+ uvicorn
9
+ reportlab
10
+ pydantic
11
+ requests
12
+ flask
13
+ firebase-admin
14
+ google-auth-oauthlib
15
+ python-dotenv