diff --git a/.gitignore b/.gitignore index cc4fe2f..23fcc77 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,7 @@ Desktop.ini # Linux files *~ +__pycache__/ +*.pyc +.ipynb_checkpoints/ +.DS_Store diff --git a/projects/mental_health_hub/README.md b/projects/mental_health_hub/README.md new file mode 100644 index 0000000..8e614eb --- /dev/null +++ b/projects/mental_health_hub/README.md @@ -0,0 +1,31 @@ +# Mental Health Hub + +Team project integrated into the Redback Senior (Wearables for Seniors) monorepo. + +## Location +`projects/mental_health_hub/` + +## Structure +- `apps/` + - `chatbot/` – conversation script and security demos + - `chatroom/` – simple client/server demo + - `dashboard/mental_health_dashboard/` – dashboard app (components, utils, data) + - `streamlit_hub/` – streamlit modules and entry script +- `notebooks/` + - `dashboard_calculations/` – notebook + generated plots + CSV + - `mood_prediction_model/` – notebook + figures +- `design/` – branding assets and wireframes +- `docs/` – PDF/RTF deliverables (guidelines, plans, threat model, etc.) +- `scripts/` – utility scripts +- `security/` – auth and security code +- `tests/` – test files + +## Notes +- Imported with full Git history from the original team repo. +- Files reorganized into the structure above (history preserved via `git mv`). + +## Contributors +- MeharX10 (Bhanu Pratap Singh Mehar) +- gituser14d (James Nardella) +- hxryy7 (Harvardaan Singh Chahal) +- Gargi2023 (Gargi Sarma) diff --git a/projects/mental_health_hub/apps/chatbot/conversation_script/Screenshots/conversation_demo_full.png b/projects/mental_health_hub/apps/chatbot/conversation_script/Screenshots/conversation_demo_full.png new file mode 100644 index 0000000..d3a5d94 Binary files /dev/null and b/projects/mental_health_hub/apps/chatbot/conversation_script/Screenshots/conversation_demo_full.png differ diff --git a/projects/mental_health_hub/apps/chatbot/conversation_script/chatbot_conversation_script.py b/projects/mental_health_hub/apps/chatbot/conversation_script/chatbot_conversation_script.py new file mode 100644 index 0000000..89fd4b6 --- /dev/null +++ b/projects/mental_health_hub/apps/chatbot/conversation_script/chatbot_conversation_script.py @@ -0,0 +1,297 @@ +#!/usr/bin/env python3 +""" +chatbot_conversation_script.py +(Branching Logic + Sample Output) +- Provides a simple, deterministic wellness chatbot with branching logic. +- Covers mood-aware suggestions, check-ins, and escalation (crisis safety). +- Includes both a JSON "logic tree" and Python if/elif rules. + +Run: + $ python chatbot_conversation_script.py --demo # prints 4 demo conversations + $ python chatbot_conversation_script.py --mood 55 --say "tips for sleep" + $ python chatbot_conversation_script.py --interactive # (optional) try a quick CLI chat +""" + +from __future__ import annotations +import argparse +import json +import re +from dataclasses import dataclass, field +from typing import Dict, List, Tuple + +# ---------- Utility: lightweight input sanitizer ---------- +def sanitize(text: str) -> str: + text = (text or "").lower().strip() + text = re.sub(r"\s+", " ", text) + # Remove any control characters + text = "".join(ch for ch in text if ch.isprintable()) + return text + + +# ---------- Data: a JSON-like branching tree (also saved to logic_tree.json alongside this script) ---------- +LOGIC_TREE: Dict = { + "buckets": { + "very_low": {"range": [0, 25], "tone": "urgent_gentle"}, + "low": {"range": [26, 49], "tone": "gentle"}, + "moderate": {"range": [50, 74], "tone": "supportive"}, + "high": {"range": [75, 100], "tone": "celebratory"}, + }, + "intents": { + "sleep": [ + "Try a consistent bedtime/wake-up window. Keep screens away for 60 minutes before sleep.", + "A short wind-down ritual (dim lights, gentle music, 5-minute breath focus) helps the brain switch off.", + "If you wake at night, avoid clock-watching—read something light under warm light for 10–15 minutes." + ], + "stress": [ + "Box breathing: inhale 4s, hold 4s, exhale 4s, hold 4s—repeat for 2 minutes.", + "Write down the top 1–2 worries, circle what you can control, and pick one small action today.", + "Take a 10-minute walk outdoors to reset your nervous system." + ], + "lonely": [ + "Call or text a trusted person and share one highlight from your day.", + "Consider local community groups or a short volunteer session this week.", + "Schedule a brief chat with family/friends after dinner—put it on the calendar." + ], + "activity": [ + "Try a 5–10 minute gentle stretch after meals.", + "If safe, add a 15-minute easy walk today—track how you feel afterwards.", + "Balance: 3 days of light walking + 2 days of flexibility in a week works well." + ], + "hydration": [ + "Keep water visible; aim for small sips each hour.", + "Pair water with regular routines (after brushing teeth, after each phone call).", + "Try herbal tea in the evening to reduce caffeine." + ], + "general": [ + "Small steps count—pick one action you can do in under 5 minutes.", + "Sunlight in the morning and gentle movement improve mood and sleep.", + "Keep meals regular and simple; stable energy helps stable mood." + ] + }, + "escalation": { + "immediate_keywords": [ + "suicide","kill myself","hurt myself","self harm","end my life","harm myself" + ], + "thresholds": { + "offer_support_at_or_below": 39, + "urgent_at_or_below": 25 + }, + "messages": { + "urgent": ( + "I'm really glad you reached out. You deserve immediate support. " + "If you're in Australia and in danger, please call 000 now. You can also contact " + "Lifeline 13 11 14 or Beyond Blue 1300 22 4636. If outside Australia, please use your local emergency number." + ), + "offer": ( + "It sounds like a tough time. Would you like me to share support options? " + "In Australia: Lifeline 13 11 14, Beyond Blue 1300 22 4636. If outside AU, contact local services." + ) + } + } +} + + +def save_logic_tree(path: str = "logic_tree.json") -> None: + with open(path, "w", encoding="utf-8") as f: + json.dump(LOGIC_TREE, f, indent=2, ensure_ascii=False) + + +# ---------- Core Chatbot ---------- +CRISIS_REGEX = re.compile("|".join(map(re.escape, LOGIC_TREE["escalation"]["immediate_keywords"])), re.I) + + +@dataclass +class WellnessChatbot: + tree: Dict = field(default_factory=lambda: LOGIC_TREE) + + def bucket_for(self, mood_score: int) -> str: + """Pick a mood bucket based on score 0..100.""" + ms = max(0, min(100, int(mood_score))) + for name, info in self.tree["buckets"].items(): + lo, hi = info["range"] + if lo <= ms <= hi: + return name + return "moderate" # safe default + + def maybe_escalate(self, user: str, mood_score: int) -> Tuple[bool, str]: + """ + Crisis-aware check. + - Immediate escalation if crisis keywords present or mood <= urgent threshold. + - Offer support if mood <= offer threshold. + """ + ms = max(0, min(100, int(mood_score))) + if CRISIS_REGEX.search(user) or ms <= self.tree["escalation"]["thresholds"]["urgent_at_or_below"]: + return True, self.tree["escalation"]["messages"]["urgent"] + if ms <= self.tree["escalation"]["thresholds"]["offer_support_at_or_below"]: + return True, self.tree["escalation"]["messages"]["offer"] + return False, "" + + def intent_of(self, user: str) -> str: + """ + Simple keyword-based intent detection for a deterministic demo. + Covers common wellness themes. + """ + user = sanitize(user) + if any(k in user for k in ("sleep", "insomnia", "tired", "rest")): + return "sleep" + if any(k in user for k in ("stress", "stressed", "overwhelmed", "anxious", "anxiety")): + return "stress" + if any(k in user for k in ("lonely", "alone", "isolate")): + return "lonely" + if any(k in user for k in ("walk", "exercise", "move", "activity", "workout", "gym")): + return "activity" + if any(k in user for k in ("water", "hydration", "hydrate", "drink")): + return "hydration" + return "general" + + def tone_prefix(self, bucket: str) -> str: + tone = self.tree["buckets"][bucket]["tone"] + return { + "urgent_gentle": "I'm here with you. ", + "gentle": "I hear you. ", + "supportive": "Got it. ", + "celebratory": "Love that! " + }.get(tone, "") + + def suggest(self, intent: str) -> str: + tips = self.tree["intents"].get(intent) or self.tree["intents"]["general"] + # Rotate suggestions deterministically by intent: choose index via hash modulo list length + idx = abs(hash(intent)) % len(tips) + return tips[idx] + + def respond(self, user: str, mood_score: int) -> str: + # Crisis / escalation check + escalate, msg = self.maybe_escalate(user, mood_score) + if escalate: + return msg + + bucket = self.bucket_for(mood_score) + prefix = self.tone_prefix(bucket) + intent = self.intent_of(user) + tip = self.suggest(intent) + + # A small, mood-aware suffix to promote next-step actions. + next_step = { + "very_low": "If helpful, we can try one tiny step together now.", + "low": "One small step today can help—I'm happy to suggest one.", + "moderate": "Pick one small action you can do in under 5 minutes.", + "high": "Keep doing what works—consistency compounds!", + }[bucket] + + return f"{prefix}{tip} {next_step}" + + def check_in_prompt(self, mood_score: int) -> str: + """A friendly check-in line based on mood bucket.""" + bucket = self.bucket_for(mood_score) + prompts = { + "very_low": "How are you holding up today? Even a few words can help me support you.", + "low": "Thanks for checking in. What's one thing on your mind right now?", + "moderate": "How are you feeling today—okay, a bit stressed, or fairly steady?", + "high": "Great to see you! Want a quick tip or to celebrate a win?" + } + return prompts[bucket] + + +# ---------- Demo scenarios ---------- +def demo_runs() -> List[Tuple[str, List[Tuple[str, str]]]]: + bot = WellnessChatbot() + scenarios = [] + + # Scenario 1: Very low mood (escalation - urgent) + ms = 20 + s1 = [ + ("[System]", f"Check-in: {bot.check_in_prompt(ms)}"), + ("User", "I feel hopeless and might hurt myself."), + ("Bot", bot.respond("I feel hopeless and might hurt myself.", ms)), + ] + scenarios.append(("Scenario 1 – Very low (urgent escalation)", s1)) + + # Scenario 2: Low mood (offer support) + ms = 35 + s2 = [ + ("[System]", f"Check-in: {bot.check_in_prompt(ms)}"), + ("User", "I'm stressed and sleeping badly."), + ("Bot", bot.respond("I'm stressed and sleeping badly.", ms)), + ] + scenarios.append(("Scenario 2 – Low (offer support)", s2)) + + # Scenario 3: Moderate mood (actionable tip) + ms = 60 + s3 = [ + ("[System]", f"Check-in: {bot.check_in_prompt(ms)}"), + ("User", "Any tips for better sleep?"), + ("Bot", bot.respond("Any tips for better sleep?", ms)), + ] + scenarios.append(("Scenario 3 – Moderate (sleep tip)", s3)) + + # Scenario 4: High mood (celebratory reinforcement) + ms = 90 + s4 = [ + ("[System]", f"Check-in: {bot.check_in_prompt(ms)}"), + ("User", "Feeling great! What should I focus on this week?"), + ("Bot", bot.respond("Feeling great! What should I focus on this week?", ms)), + ] + scenarios.append(("Scenario 4 – High (celebrate & maintain)", s4)) + + return scenarios + + +def print_scenarios(scenarios: List[Tuple[str, List[Tuple[str, str]]]]) -> str: + import textwrap + lines: List[str] = [] + for title, turns in scenarios: + lines.append("=" * len(title)) + lines.append(title) + lines.append("=" * len(title)) + for speaker, text in turns: + wrapped = textwrap.fill(text, width=100) + lines.append(f"{speaker}: {wrapped}") + lines.append("") + output = "\n".join(lines) + print(output) + return output + + +# ---------- CLI ---------- +def main(): + parser = argparse.ArgumentParser(description="Deterministic Wellness Chatbot (branching logic)") + parser.add_argument("--demo", action="store_true", help="Run 4 demo conversations (prints expected output).") + parser.add_argument("--mood", type=int, default=60, help="Mood score 0..100 (default 60)") + parser.add_argument("--say", type=str, default="", help="What the user says (single turn)") + parser.add_argument("--interactive", action="store_true", help="Simple interactive CLI chat (3 turns)") + args = parser.parse_args() + + # Always save the JSON logic tree alongside this script (meets 'JSON or Python' requirement). + save_logic_tree("logic_tree.json") + + bot = WellnessChatbot() + + if args.demo: + out = print_scenarios(demo_runs()) + # Also store to a transcript file for evidence + with open("sample_transcripts.txt", "w", encoding="utf-8") as f: + f.write(out) + return + + if args.interactive: + ms = args.mood + print(f"🤖 Wellness Assistant (mood_score={ms})") + print(f"Check-in: {bot.check_in_prompt(ms)}") + for i in range(3): + try: + user = input("You: ").strip() + except EOFError: + break + reply = bot.respond(user, ms) + print(f"Bot: {reply}") + return + + # Single turn + say = args.say.strip() or "Any tips to reduce stress?" + reply = bot.respond(say, args.mood) + print(f"[Mood {args.mood}] You: {say}") + print(f"[Mood {args.mood}] Bot: {reply}") + + +if __name__ == "__main__": + main() diff --git a/projects/mental_health_hub/apps/chatbot/conversation_script/logic_tree.json b/projects/mental_health_hub/apps/chatbot/conversation_script/logic_tree.json new file mode 100644 index 0000000..81a51c4 --- /dev/null +++ b/projects/mental_health_hub/apps/chatbot/conversation_script/logic_tree.json @@ -0,0 +1,82 @@ +{ + "buckets": { + "very_low": { + "range": [ + 0, + 25 + ], + "tone": "urgent_gentle" + }, + "low": { + "range": [ + 26, + 49 + ], + "tone": "gentle" + }, + "moderate": { + "range": [ + 50, + 74 + ], + "tone": "supportive" + }, + "high": { + "range": [ + 75, + 100 + ], + "tone": "celebratory" + } + }, + "intents": { + "sleep": [ + "Try a consistent bedtime/wake-up window. Keep screens away for 60 minutes before sleep.", + "A short wind-down ritual (dim lights, gentle music, 5-minute breath focus) helps the brain switch off.", + "If you wake at night, avoid clock-watching—read something light under warm light for 10–15 minutes." + ], + "stress": [ + "Box breathing: inhale 4s, hold 4s, exhale 4s, hold 4s—repeat for 2 minutes.", + "Write down the top 1–2 worries, circle what you can control, and pick one small action today.", + "Take a 10-minute walk outdoors to reset your nervous system." + ], + "lonely": [ + "Call or text a trusted person and share one highlight from your day.", + "Consider local community groups or a short volunteer session this week.", + "Schedule a brief chat with family/friends after dinner—put it on the calendar." + ], + "activity": [ + "Try a 5–10 minute gentle stretch after meals.", + "If safe, add a 15-minute easy walk today—track how you feel afterwards.", + "Balance: 3 days of light walking + 2 days of flexibility in a week works well." + ], + "hydration": [ + "Keep water visible; aim for small sips each hour.", + "Pair water with regular routines (after brushing teeth, after each phone call).", + "Try herbal tea in the evening to reduce caffeine." + ], + "general": [ + "Small steps count—pick one action you can do in under 5 minutes.", + "Sunlight in the morning and gentle movement improve mood and sleep.", + "Keep meals regular and simple; stable energy helps stable mood." + ] + }, + "escalation": { + "immediate_keywords": [ + "suicide", + "kill myself", + "hurt myself", + "self harm", + "end my life", + "harm myself" + ], + "thresholds": { + "offer_support_at_or_below": 39, + "urgent_at_or_below": 25 + }, + "messages": { + "urgent": "I'm really glad you reached out. You deserve immediate support. If you're in Australia and in danger, please call 000 now. You can also contact Lifeline 13 11 14 or Beyond Blue 1300 22 4636. If outside Australia, please use your local emergency number.", + "offer": "It sounds like a tough time. Would you like me to share support options? In Australia: Lifeline 13 11 14, Beyond Blue 1300 22 4636. If outside AU, contact local services." + } + } +} \ No newline at end of file diff --git a/projects/mental_health_hub/apps/chatbot/conversation_script/sample_transcripts.txt b/projects/mental_health_hub/apps/chatbot/conversation_script/sample_transcripts.txt new file mode 100644 index 0000000..32d879d --- /dev/null +++ b/projects/mental_health_hub/apps/chatbot/conversation_script/sample_transcripts.txt @@ -0,0 +1,32 @@ +========================================= +Scenario 1 – Very low (urgent escalation) +========================================= +[System]: Check-in: How are you holding up today? Even a few words can help me support you. +User: I feel hopeless and might hurt myself. +Bot: I'm really glad you reached out. You deserve immediate support. If you're in Australia and in +danger, please call 000 now. You can also contact Lifeline 13 11 14 or Beyond Blue 1300 22 4636. If +outside Australia, please use your local emergency number. + +================================ +Scenario 2 – Low (offer support) +================================ +[System]: Check-in: Thanks for checking in. What's one thing on your mind right now? +User: I'm stressed and sleeping badly. +Bot: It sounds like a tough time. Would you like me to share support options? In Australia: Lifeline 13 +11 14, Beyond Blue 1300 22 4636. If outside AU, contact local services. + +================================= +Scenario 3 – Moderate (sleep tip) +================================= +[System]: Check-in: How are you feeling today—okay, a bit stressed, or fairly steady? +User: Any tips for better sleep? +Bot: Got it. A short wind-down ritual (dim lights, gentle music, 5-minute breath focus) helps the brain +switch off. Pick one small action you can do in under 5 minutes. + +======================================== +Scenario 4 – High (celebrate & maintain) +======================================== +[System]: Check-in: Great to see you! Want a quick tip or to celebrate a win? +User: Feeling great! What should I focus on this week? +Bot: Love that! Keep meals regular and simple; stable energy helps stable mood. Keep doing what +works—consistency compounds! diff --git a/projects/mental_health_hub/apps/chatbot/security_measures/ChatbotSecurityMeasures.pdf b/projects/mental_health_hub/apps/chatbot/security_measures/ChatbotSecurityMeasures.pdf new file mode 100644 index 0000000..b15468f Binary files /dev/null and b/projects/mental_health_hub/apps/chatbot/security_measures/ChatbotSecurityMeasures.pdf differ diff --git a/projects/mental_health_hub/apps/chatbot/security_measures/Screenshots/Run chatbot_security.png b/projects/mental_health_hub/apps/chatbot/security_measures/Screenshots/Run chatbot_security.png new file mode 100644 index 0000000..f660e13 Binary files /dev/null and b/projects/mental_health_hub/apps/chatbot/security_measures/Screenshots/Run chatbot_security.png differ diff --git a/projects/mental_health_hub/apps/chatbot/security_measures/Screenshots/security_code_snippet.png b/projects/mental_health_hub/apps/chatbot/security_measures/Screenshots/security_code_snippet.png new file mode 100644 index 0000000..a4e6bfd Binary files /dev/null and b/projects/mental_health_hub/apps/chatbot/security_measures/Screenshots/security_code_snippet.png differ diff --git a/projects/mental_health_hub/apps/chatbot/security_measures/Screenshots/security_delay.png b/projects/mental_health_hub/apps/chatbot/security_measures/Screenshots/security_delay.png new file mode 100644 index 0000000..6e513c3 Binary files /dev/null and b/projects/mental_health_hub/apps/chatbot/security_measures/Screenshots/security_delay.png differ diff --git a/projects/mental_health_hub/apps/chatbot/security_measures/Screenshots/security_demo_full.png b/projects/mental_health_hub/apps/chatbot/security_measures/Screenshots/security_demo_full.png new file mode 100644 index 0000000..5b6044c Binary files /dev/null and b/projects/mental_health_hub/apps/chatbot/security_measures/Screenshots/security_demo_full.png differ diff --git a/projects/mental_health_hub/apps/chatbot/security_measures/Screenshots/security_rate_limit.png b/projects/mental_health_hub/apps/chatbot/security_measures/Screenshots/security_rate_limit.png new file mode 100644 index 0000000..bdfd798 Binary files /dev/null and b/projects/mental_health_hub/apps/chatbot/security_measures/Screenshots/security_rate_limit.png differ diff --git a/projects/mental_health_hub/apps/chatbot/security_measures/Screenshots/security_sanitize_unsafe.png b/projects/mental_health_hub/apps/chatbot/security_measures/Screenshots/security_sanitize_unsafe.png new file mode 100644 index 0000000..ad0241e Binary files /dev/null and b/projects/mental_health_hub/apps/chatbot/security_measures/Screenshots/security_sanitize_unsafe.png differ diff --git a/projects/mental_health_hub/apps/chatbot/security_measures/chatbot_security.py b/projects/mental_health_hub/apps/chatbot/security_measures/chatbot_security.py new file mode 100644 index 0000000..0038c96 --- /dev/null +++ b/projects/mental_health_hub/apps/chatbot/security_measures/chatbot_security.py @@ -0,0 +1,199 @@ +#!/usr/bin/env python3 +""" +chatbot_security.py +Chatbot Security Measures +---------------------------------------- +This script demonstrates input sanitization, unsafe content detection, +rate-limiting and response delays in a chatbot system. + +It covers: +- Input sanitisation: remove profanity, collapse spam, escape HTML +- Unsafe content detection: crisis/self-harm/violence +- Rate limiting: max N requests per T seconds +- Response delays: throttle to prevent abuse +- Demo: prints before/after examples +""" + +import re +import html +import time +import random +from collections import deque +from typing import Tuple, List + +# ------------------------------- +# 1. Profanity / Unsafe Detection +# ------------------------------- + +# Example profanity list +PROFANITY = {"damn", "hell", "shit", "bastard", "bloody"} + +# Crisis/self-harm keywords +CRISIS_KEYWORDS = { + "suicide", "kill myself", "hurt myself", + "end my life", "self harm" +} + +# Violence-related keywords +VIOLENCE = {"murder", "attack", "bomb", "stab", "terrorist"} + +# Spam patterns: repeated chars (e.g., "aaaaaaa") +SPAM_PATTERNS = [r"(.)\1{4,}"] + + +def mask_profanity(text: str) -> str: + """ + Replace middle letters of profane words with '*'. + Example: "shit" -> "s**t" + """ + def mask(word: str) -> str: + if len(word) <= 2: + return word + return word[0] + "*" * (len(word) - 2) + word[-1] + + tokens = re.findall(r"\w+|\W+", text) + out = [] + for t in tokens: + if t.strip().lower() in PROFANITY: + out.append(mask(t)) + else: + out.append(t) + return "".join(out) + + +def sanitize_input(user_text: str) -> str: + """ + Sanitize raw user input: + - Escape HTML/script injections + - Collapse whitespace + - Mask profanities + - Reduce spammy repetitions + """ + if not user_text: + return "" + # Step 1: Normalize and escape HTML + safe = html.escape(user_text.strip()) + # Step 2: Collapse extra whitespace + safe = re.sub(r"\s+", " ", safe) + # Step 3: Mask profanities + safe = mask_profanity(safe) + # Step 4: Reduce spam (e.g., "aaaaaa" -> "aaa") + for pat in SPAM_PATTERNS: + safe = re.sub(pat, r"\1\1\1", safe) + return safe + + +def is_unsafe(user_text: str) -> Tuple[bool, str]: + """ + Check for unsafe content. + Returns (True/False, reason). + Reasons: "crisis", "violence" + """ + low = (user_text or "").lower() + if any(k in low for k in CRISIS_KEYWORDS): + return True, "crisis" + if any(k in low for k in VIOLENCE): + return True, "violence" + return False, "" + + +# ------------------- +# 2. Rate Limiter +# ------------------- + +class RateLimiter: + """ + Simple sliding window rate limiter. + Allow at most N requests per window_sec. + """ + + def __init__(self, n: int = 3, window_sec: int = 10): + self.n = n + self.window = window_sec + self.events = deque() # store timestamps + + def allow(self) -> bool: + now = time.time() + # Remove old timestamps + while self.events and now - self.events[0] > self.window: + self.events.popleft() + # If under limit, allow + if len(self.events) < self.n: + self.events.append(now) + return True + return False + + +# ------------------- +# 3. Response Delay +# ------------------- + +def response_delay(min_ms: int = 200, max_ms: int = 700): + """ + Add a small delay before responding. + Discourages bots and creates natural pacing. + """ + ms = random.randint(min_ms, max_ms) + time.sleep(ms / 1000.0) + + +# ------------------- +# 4. Demo Harness +# ------------------- + +def demo(): + """ + Run a series of demo tests. + Shows sanitization, unsafe detection, and rate limiting in action. + """ + print("=" * 40) + print("Chatbot Security Measures Demo") + print("=" * 40) + + # Test cases + tests: List[str] = [ + "Hello, how are you?", + "You are a damn fool!", + "I will kill myself tonight...", + "This is sooooooo goooood!!!!!", + "", + "I might attack someone", + "Regular safe message" + ] + + print("\n--- Input Sanitization & Unsafe Detection ---") + for t in tests: + clean = sanitize_input(t) + bad, reason = is_unsafe(clean) + print(f"Raw: {t}") + print(f"Sanitized: {clean}") + if bad: + if reason == "crisis": + print(">> Escalation: Crisis support needed.") + elif reason == "violence": + print(">> Escalation: Violence-related content detected.") + else: + print(">> Safe for chatbot response.") + print("-" * 40) + + print("\n--- Rate Limiting Demo ---") + limiter = RateLimiter(n=3, window_sec=5) + for i in range(5): + if limiter.allow(): + print(f"Request {i+1}: Allowed") + else: + print(f"Request {i+1}: BLOCKED (too many requests)") + time.sleep(1) + + print("\n--- Response Delay Demo ---") + print("Bot is thinking...", end="", flush=True) + response_delay() + print(" Done! (after small delay)") + + +# ------------------- +# 5. Main Entry Point +# ------------------- + +if __name__ == "__main__": + demo() diff --git a/projects/mental_health_hub/apps/chatbot/security_measures/chatbot_security_demo.ipynb b/projects/mental_health_hub/apps/chatbot/security_measures/chatbot_security_demo.ipynb new file mode 100644 index 0000000..398aa32 --- /dev/null +++ b/projects/mental_health_hub/apps/chatbot/security_measures/chatbot_security_demo.ipynb @@ -0,0 +1,291 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "ac5246e9-2a9a-4397-b9d9-37555b7674fc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "========================================\n", + "Chatbot Security Measures Demo\n", + "========================================\n", + "\n", + "--- Input Sanitization & Unsafe Detection ---\n", + "Raw: Hello, how are you?\n", + "Sanitized: Hello, how are you?\n", + ">> Safe for chatbot response.\n", + "----------------------------------------\n", + "Raw: You are a damn fool!\n", + "Sanitized: You are a d**n fool!\n", + ">> Safe for chatbot response.\n", + "----------------------------------------\n", + "Raw: I will kill myself tonight...\n", + "Sanitized: I will kill myself tonight...\n", + ">> Escalation: Crisis support needed.\n", + "----------------------------------------\n", + "Raw: This is sooooooo goooood!!!!!\n", + "Sanitized: This is sooo goood!!!\n", + ">> Safe for chatbot response.\n", + "----------------------------------------\n", + "Raw: \n", + "Sanitized: <script>alert('hack');</script>\n", + ">> Safe for chatbot response.\n", + "----------------------------------------\n", + "Raw: I might attack someone\n", + "Sanitized: I might attack someone\n", + ">> Escalation: Violence-related content detected.\n", + "----------------------------------------\n", + "Raw: Regular safe message\n", + "Sanitized: Regular safe message\n", + ">> Safe for chatbot response.\n", + "----------------------------------------\n", + "\n", + "--- Rate Limiting Demo ---\n", + "Request 1: Allowed\n", + "Request 2: Allowed\n", + "Request 3: Allowed\n", + "Request 4: BLOCKED (too many requests)\n", + "Request 5: BLOCKED (too many requests)\n", + "\n", + "--- Response Delay Demo ---\n", + "Bot is thinking... Done! (after small delay)\n" + ] + } + ], + "source": [ + "#!/usr/bin/env python3\n", + "\"\"\"\n", + "chatbot_security.py\n", + "Chatbot Security Measures\n", + "----------------------------------------\n", + "This script demonstrates input sanitization, unsafe content detection,\n", + "rate-limiting and response delays in a chatbot system.\n", + "\n", + "It covers:\n", + "- Input sanitisation: remove profanity, collapse spam, escape HTML\n", + "- Unsafe content detection: crisis/self-harm/violence\n", + "- Rate limiting: max N requests per T seconds\n", + "- Response delays: throttle to prevent abuse\n", + "- Demo: prints before/after examples\n", + "\"\"\"\n", + "\n", + "import re\n", + "import html\n", + "import time\n", + "import random\n", + "from collections import deque\n", + "from typing import Tuple, List\n", + "\n", + "# -------------------------------\n", + "# 1. Profanity / Unsafe Detection\n", + "# -------------------------------\n", + "\n", + "# Example profanity list\n", + "PROFANITY = {\"damn\", \"hell\", \"shit\", \"bastard\", \"bloody\"}\n", + "\n", + "# Crisis/self-harm keywords\n", + "CRISIS_KEYWORDS = {\n", + " \"suicide\", \"kill myself\", \"hurt myself\",\n", + " \"end my life\", \"self harm\"\n", + "}\n", + "\n", + "# Violence-related keywords\n", + "VIOLENCE = {\"murder\", \"attack\", \"bomb\", \"stab\", \"terrorist\"}\n", + "\n", + "# Spam patterns: repeated chars (e.g., \"aaaaaaa\")\n", + "SPAM_PATTERNS = [r\"(.)\\1{4,}\"]\n", + "\n", + "\n", + "def mask_profanity(text: str) -> str:\n", + " \"\"\"\n", + " Replace middle letters of profane words with '*'.\n", + " Example: \"shit\" -> \"s**t\"\n", + " \"\"\"\n", + " def mask(word: str) -> str:\n", + " if len(word) <= 2:\n", + " return word\n", + " return word[0] + \"*\" * (len(word) - 2) + word[-1]\n", + "\n", + " tokens = re.findall(r\"\\w+|\\W+\", text)\n", + " out = []\n", + " for t in tokens:\n", + " if t.strip().lower() in PROFANITY:\n", + " out.append(mask(t))\n", + " else:\n", + " out.append(t)\n", + " return \"\".join(out)\n", + "\n", + "\n", + "def sanitize_input(user_text: str) -> str:\n", + " \"\"\"\n", + " Sanitize raw user input:\n", + " - Escape HTML/script injections\n", + " - Collapse whitespace\n", + " - Mask profanities\n", + " - Reduce spammy repetitions\n", + " \"\"\"\n", + " if not user_text:\n", + " return \"\"\n", + " # Step 1: Normalize and escape HTML\n", + " safe = html.escape(user_text.strip())\n", + " # Step 2: Collapse extra whitespace\n", + " safe = re.sub(r\"\\s+\", \" \", safe)\n", + " # Step 3: Mask profanities\n", + " safe = mask_profanity(safe)\n", + " # Step 4: Reduce spam (e.g., \"aaaaaa\" -> \"aaa\")\n", + " for pat in SPAM_PATTERNS:\n", + " safe = re.sub(pat, r\"\\1\\1\\1\", safe)\n", + " return safe\n", + "\n", + "\n", + "def is_unsafe(user_text: str) -> Tuple[bool, str]:\n", + " \"\"\"\n", + " Check for unsafe content.\n", + " Returns (True/False, reason).\n", + " Reasons: \"crisis\", \"violence\"\n", + " \"\"\"\n", + " low = (user_text or \"\").lower()\n", + " if any(k in low for k in CRISIS_KEYWORDS):\n", + " return True, \"crisis\"\n", + " if any(k in low for k in VIOLENCE):\n", + " return True, \"violence\"\n", + " return False, \"\"\n", + "\n", + "\n", + "# -------------------\n", + "# 2. Rate Limiter\n", + "# -------------------\n", + "\n", + "class RateLimiter:\n", + " \"\"\"\n", + " Simple sliding window rate limiter.\n", + " Allow at most N requests per window_sec.\n", + " \"\"\"\n", + "\n", + " def __init__(self, n: int = 3, window_sec: int = 10):\n", + " self.n = n\n", + " self.window = window_sec\n", + " self.events = deque() # store timestamps\n", + "\n", + " def allow(self) -> bool:\n", + " now = time.time()\n", + " # Remove old timestamps\n", + " while self.events and now - self.events[0] > self.window:\n", + " self.events.popleft()\n", + " # If under limit, allow\n", + " if len(self.events) < self.n:\n", + " self.events.append(now)\n", + " return True\n", + " return False\n", + "\n", + "\n", + "# -------------------\n", + "# 3. Response Delay\n", + "# -------------------\n", + "\n", + "def response_delay(min_ms: int = 200, max_ms: int = 700):\n", + " \"\"\"\n", + " Add a small delay before responding.\n", + " Discourages bots and creates natural pacing.\n", + " \"\"\"\n", + " ms = random.randint(min_ms, max_ms)\n", + " time.sleep(ms / 1000.0)\n", + "\n", + "\n", + "# -------------------\n", + "# 4. Demo Harness\n", + "# -------------------\n", + "\n", + "def demo():\n", + " \"\"\"\n", + " Run a series of demo tests.\n", + " Shows sanitization, unsafe detection, and rate limiting in action.\n", + " \"\"\"\n", + " print(\"=\" * 40)\n", + " print(\"Chatbot Security Measures Demo\")\n", + " print(\"=\" * 40)\n", + "\n", + " # Test cases\n", + " tests: List[str] = [\n", + " \"Hello, how are you?\",\n", + " \"You are a damn fool!\",\n", + " \"I will kill myself tonight...\",\n", + " \"This is sooooooo goooood!!!!!\",\n", + " \"\",\n", + " \"I might attack someone\",\n", + " \"Regular safe message\"\n", + " ]\n", + "\n", + " print(\"\\n--- Input Sanitization & Unsafe Detection ---\")\n", + " for t in tests:\n", + " clean = sanitize_input(t)\n", + " bad, reason = is_unsafe(clean)\n", + " print(f\"Raw: {t}\")\n", + " print(f\"Sanitized: {clean}\")\n", + " if bad:\n", + " if reason == \"crisis\":\n", + " print(\">> Escalation: Crisis support needed.\")\n", + " elif reason == \"violence\":\n", + " print(\">> Escalation: Violence-related content detected.\")\n", + " else:\n", + " print(\">> Safe for chatbot response.\")\n", + " print(\"-\" * 40)\n", + "\n", + " print(\"\\n--- Rate Limiting Demo ---\")\n", + " limiter = RateLimiter(n=3, window_sec=5)\n", + " for i in range(5):\n", + " if limiter.allow():\n", + " print(f\"Request {i+1}: Allowed\")\n", + " else:\n", + " print(f\"Request {i+1}: BLOCKED (too many requests)\")\n", + " time.sleep(1)\n", + "\n", + " print(\"\\n--- Response Delay Demo ---\")\n", + " print(\"Bot is thinking...\", end=\"\", flush=True)\n", + " response_delay()\n", + " print(\" Done! (after small delay)\")\n", + "\n", + "\n", + "# -------------------\n", + "# 5. Main Entry Point\n", + "# -------------------\n", + "\n", + "if __name__ == \"__main__\":\n", + " demo()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6454d4a3-75e7-467f-8548-36203d0d7983", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python [conda env:base] *", + "language": "python", + "name": "conda-base-py" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.4" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/projects/mental_health_hub/apps/chatbot/security_measures/security_demo_output.txt b/projects/mental_health_hub/apps/chatbot/security_measures/security_demo_output.txt new file mode 100644 index 0000000..34c4463 --- /dev/null +++ b/projects/mental_health_hub/apps/chatbot/security_measures/security_demo_output.txt @@ -0,0 +1,43 @@ +======================================== +Chatbot Security Measures Demo +======================================== + +--- Input Sanitization & Unsafe Detection --- +Raw: Hello, how are you? +Sanitized: Hello, how are you? +>> Safe for chatbot response. +---------------------------------------- +Raw: You are a damn fool! +Sanitized: You are a d**n fool! +>> Safe for chatbot response. +---------------------------------------- +Raw: I will kill myself tonight... +Sanitized: I will kill myself tonight... +>> Escalation: Crisis support needed. +---------------------------------------- +Raw: This is sooooooo goooood!!!!! +Sanitized: This is sooo goood!!! +>> Safe for chatbot response. +---------------------------------------- +Raw: +Sanitized: <script>alert('hack');</script> +>> Safe for chatbot response. +---------------------------------------- +Raw: I might attack someone +Sanitized: I might attack someone +>> Escalation: Violence-related content detected. +---------------------------------------- +Raw: Regular safe message +Sanitized: Regular safe message +>> Safe for chatbot response. +---------------------------------------- + +--- Rate Limiting Demo --- +Request 1: Allowed +Request 2: Allowed +Request 3: Allowed +Request 4: BLOCKED (too many requests) +Request 5: BLOCKED (too many requests) + +--- Response Delay Demo --- +Bot is thinking... Done! (after small delay) diff --git a/projects/mental_health_hub/apps/chatroom/ggclient.py b/projects/mental_health_hub/apps/chatroom/ggclient.py new file mode 100644 index 0000000..3d9c500 --- /dev/null +++ b/projects/mental_health_hub/apps/chatroom/ggclient.py @@ -0,0 +1,34 @@ +import socket +import threading + +HOST = '127.0.0.1' +PORT = 5000 + +nickname = input("Choose a nickname: ") + +client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +client.connect((HOST, PORT)) + +# Receive messages +def receive(): + while True: + try: + message = client.recv(1024).decode('utf-8') + if message == "GARGI": + client.send(nickname.encode('utf-8')) + else: + print(message) + except: + print("An error occurred. Connection closed.") + client.close() + break + +# Send messages +def write(): + while True: + message = f"{nickname}: {input('')}" + client.send(message.encode('utf-8')) + +# Run both in parallel +threading.Thread(target=receive).start() +threading.Thread(target=write).start() diff --git a/projects/mental_health_hub/apps/chatroom/ggserver.py b/projects/mental_health_hub/apps/chatroom/ggserver.py new file mode 100644 index 0000000..9c2b0f6 --- /dev/null +++ b/projects/mental_health_hub/apps/chatroom/ggserver.py @@ -0,0 +1,50 @@ +import socket +import threading + +HOST = '127.0.0.1' +PORT = 5000 + +server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +server.bind((HOST, PORT)) +server.listen() + +clients = [] +nicknames = [] + +def broadcast(message): + for client in clients: + client.send(message) + +def handle(client): + while True: + try: + message = client.recv(1024) + broadcast(message) + except: + index = clients.index(client) + clients.remove(client) + client.close() + nickname = nicknames[index] + broadcast(f'{nickname} left the chat!'.encode('utf-8')) + nicknames.remove(nickname) + break + +def receive(): + while True: + client, address = server.accept() + print(f"Connected with {str(address)}") + + client.send("GARGI".encode('utf-8')) + nickname = client.recv(1024).decode('utf-8') + nicknames.append(nickname) + clients.append(client) + + print(f"Nickname of the client is {nickname}") + broadcast(f"{nickname} joined the chat!".encode('utf-8')) + client.send("Connected to the server!".encode('utf-8')) + + thread = threading.Thread(target=handle, args=(client,)) + thread.start() + +print("Server is listening...") +receive() \ No newline at end of file diff --git a/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/app.py b/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/app.py new file mode 100644 index 0000000..b269378 --- /dev/null +++ b/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/app.py @@ -0,0 +1,101 @@ +import streamlit as st +from utils.data_loader import load_data +from utils.mood_logic import get_mood_zone +from components.dashboard import mood_summary +from components.mood_chart import mood_trend_chart +from components.support_mindfulness import support_section, mindfulness_gif +from components.chatbot import chatbot_box +from components.game_mind_match import play_mind_match + +# --- CONFIG --- +st.set_page_config(page_title="ElderCare Wellness", layout="wide") + +st.markdown(""" + +""", unsafe_allow_html=True) + +# --- LOAD DATA --- +df = load_data() +latest = df.iloc[-1] +zone = get_mood_zone(latest["MoodScore"]) + +# --- COLOR MAP --- +MOOD_COLORS = { + "good": "#A2D5AB", + "moderate": "#FFF9C4", + "low": "#EF9A9A" +} +mood_color = MOOD_COLORS[zone] + +# --- HEADER --- +st.markdown("## ElderCare Mental Wellness Dashboard", unsafe_allow_html=True) +col1, col2 = st.columns(2) + +# --- MOOD GAUGE --- +with col1: + mood_summary(latest, df, mood_color) + +# --- DAILY METRICS --- +with col2: + st.markdown(""" +
+

🛌️ Sleep & Movement

+
+ """, unsafe_allow_html=True) + st.metric("Sleep (hrs)", f"{latest['SleepHours']} hrs") + st.metric("Movement Score", f"{latest['MovementScore']} pts") + st.metric("Medication", "✅ Taken" if latest["MedicationTaken"] == 1 else "⚠️ Missed") + +# --- WELLNESS TIP --- +st.markdown("---") +st.subheader("🌞 Daily Wellness Tip") +if latest["SleepHours"] < 6.5: + st.info("Try to get at least 7 hours of sleep. Good rest improves mood!") +elif latest["MovementScore"] < 40: + st.info("A short walk or gentle stretch may help lift your energy.") +else: + st.success("You're doing well today! Keep it up.") + +# --- TRENDS --- +st.markdown("---") +mood_trend_chart(df) + +# --- SUPPORT & MINDFULNESS --- +st.markdown("---") +st.subheader("🪘 Support & Mindfulness") +col3, col4 = st.columns(2) +with col3: + support_section() +with col4: + mindfulness_gif() + +# --- CHATBOT --- +chatbot_box(latest["MoodScore"]) + +# --- SECTION 6: GAME --- +st.markdown("---") +play_mind_match() + +from sections.support_and_mindfulness import mindfulness_gif, support_section + +# Inside the layout section +col3, col4 = st.columns(2) +with col3: + support_section() +with col4: + mindfulness_gif() diff --git a/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/components/chatbot.py b/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/components/chatbot.py new file mode 100644 index 0000000..90a0e31 --- /dev/null +++ b/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/components/chatbot.py @@ -0,0 +1,35 @@ +import streamlit as st +import openai +from utils.sanitizer import sanitize_input + +def chatbot_box(mood_score): + openai.api_key = st.secrets.get("OPENAI_API_KEY") + st.sidebar.markdown("## 🤖 Chat with Wellness Assistant") + st.sidebar.write("🔐 Key loaded:", "✅" if openai.api_key else "❌ Not found") + user_query = st.sidebar.text_input("Ask anything (e.g., Tips for better sleep)") + + if user_query: + clean_input = sanitize_input(user_query) + prompt = f""" + You are a friendly wellness assistant for elderly users. + Mood score: {mood_score}/100. + User asked: \"{clean_input}\". + If mood < 65, be gentle. Else share a wellness tip. Max 100 words. + """ + try: + res = openai.ChatCompletion.create( + model="gpt-3.5-turbo", + messages=[{"role": "user", "content": prompt}], + max_tokens=150, + temperature=0.7 + ) + reply = res.choices[0].message["content"] + except: + reply = "⚠️ Chatbot error: Check your OpenAI key or connection." + + st.sidebar.markdown("**Assistant Response:**") + st.sidebar.success(reply) + if mood_score < 65: + st.sidebar.markdown("\n💡 *You seem a bit down today. Try calling a loved one or taking a short walk.*") + + diff --git a/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/components/dashboard.py b/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/components/dashboard.py new file mode 100644 index 0000000..2892c24 --- /dev/null +++ b/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/components/dashboard.py @@ -0,0 +1,20 @@ +import streamlit as st +import plotly.graph_objects as go + +def mood_summary(latest, df, mood_color): + st.markdown("### 📈 Mood Score Overview") + fig = go.Figure(go.Indicator( + mode="gauge+number+delta", + value=latest["MoodScore"], + delta={'reference': df["MoodScore"].iloc[-2]}, + gauge={ + 'axis': {'range': [0, 100]}, + 'bar': {'color': mood_color}, + 'steps': [ + {'range': [0, 65], 'color': "#EF9A9A"}, + {'range': [65, 75], 'color': "#FFF9C4"}, + {'range': [75, 100], 'color': "#A2D5AB"} + ] + } + )) + st.plotly_chart(fig, use_container_width=True) diff --git a/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/components/game_mind_match.py b/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/components/game_mind_match.py new file mode 100644 index 0000000..572201a --- /dev/null +++ b/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/components/game_mind_match.py @@ -0,0 +1,42 @@ +# components/game_mind_match.py + +import streamlit as st +import random +import time + +def play_mind_match(): + st.subheader("🧠 Mind Match — Memory Game") + st.markdown("Match all the calming pairs! Refresh to reset.") + + emojis = ["🌞", "🌙", "🌸", "🍀", "☁️", "🔥", "💧", "🌈"] + pairs = emojis * 2 + random.shuffle(pairs) + + if "matched" not in st.session_state: + st.session_state.matched = [False] * 16 + st.session_state.selected = [] + st.session_state.pairs = pairs + st.session_state.moves = 0 + + cols = st.columns(4) + for i in range(16): + with cols[i % 4]: + if st.session_state.matched[i]: + st.button(st.session_state.pairs[i], key=f"btn_{i}", disabled=True) + elif i in st.session_state.selected: + st.button(st.session_state.pairs[i], key=f"btn_{i}", disabled=True) + else: + if st.button("❓", key=f"btn_{i}"): + st.session_state.selected.append(i) + + if len(st.session_state.selected) == 2: + i, j = st.session_state.selected + if st.session_state.pairs[i] == st.session_state.pairs[j]: + st.session_state.matched[i] = True + st.session_state.matched[j] = True + time.sleep(0.5) + st.session_state.selected = [] + st.session_state.moves += 1 + + if all(st.session_state.matched): + st.success(f"🎉 Great job! You matched all pairs in {st.session_state.moves} moves.") diff --git a/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/components/mood_chart.py b/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/components/mood_chart.py new file mode 100644 index 0000000..37729d9 --- /dev/null +++ b/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/components/mood_chart.py @@ -0,0 +1,13 @@ +import streamlit as st +import plotly.express as px + +def mood_trend_chart(df): + st.subheader("📈 Monthly Mood Score Trends") + fig = px.line(df, x="Date", y="MoodScore", markers=True, title="Mood Score Over Time") + fig.update_layout( + yaxis_title="Mood Score", + xaxis_title="Date", + height=500, + margin=dict(l=20, r=20, t=40, b=20) + ) + st.plotly_chart(fig, use_container_width=True) diff --git a/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/components/support_mindfulness.py b/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/components/support_mindfulness.py new file mode 100644 index 0000000..eb1b87e --- /dev/null +++ b/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/components/support_mindfulness.py @@ -0,0 +1,48 @@ +import streamlit as st + +def support_section(): + st.markdown("### 📞 Get Support") + st.markdown(""" + - [Lifeline – 13 11 14](https://www.lifeline.org.au) + - [Beyond Blue](https://www.beyondblue.org.au) + - [Carer Gateway](https://www.carergateway.gov.au/) + """) + +import streamlit.components.v1 as components + +def mindfulness_gif(): + st.markdown("### 🌬️ Guided Breathing Exercise") + st.markdown("Follow the circle below. Inhale as it expands, exhale as it contracts.") + + components.html(""" + + +
+
Inhale... Exhale... Relax
+ """, height=250) + + with st.expander("🔊 Optional: Play calming audio"): + st.audio("https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3") diff --git a/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/data/mock_eldercare_data.csv b/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/data/mock_eldercare_data.csv new file mode 100644 index 0000000..c3d6a6d --- /dev/null +++ b/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/data/mock_eldercare_data.csv @@ -0,0 +1,31 @@ +Date,MoodScore,SleepHours,MovementScore,MedicationTaken +2024-07-01,78,7.5,45,1 +2024-07-02,76,7,40,1 +2024-07-03,74,6.5,35,1 +2024-07-04,75,7,38,1 +2024-07-05,77,7.5,42,1 +2024-07-06,78,8,45,1 +2024-07-07,80,8.2,50,1 +2024-07-08,81,8,55,1 +2024-07-09,79,7.8,52,1 +2024-07-10,78,7.5,50,1 +2024-07-11,77,7.3,48,1 +2024-07-12,75,7,45,1 +2024-07-13,74,6.8,40,1 +2024-07-14,72,6.5,38,1 +2024-07-15,70,6,35,1 +2024-07-16,72,6.2,36,1 +2024-07-17,74,6.8,39,1 +2024-07-18,76,7,42,1 +2024-07-19,77,7.5,44,1 +2024-07-20,78,7.7,46,1 +2024-07-21,80,8,48,1 +2024-07-22,82,8.1,50,1 +2024-07-23,84,8.3,53,1 +2024-07-24,83,8.2,52,1 +2024-07-25,82,8,50,1 +2024-07-26,80,7.8,47,1 +2024-07-27,78,7.5,44,1 +2024-07-28,76,7,42,1 +2024-07-29,75,6.8,40,0 +2024-07-30,73,6.5,38,0 diff --git a/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/requirements.txt b/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/requirements.txt new file mode 100644 index 0000000..3e0401a --- /dev/null +++ b/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/requirements.txt @@ -0,0 +1,3 @@ +streamlit +pandas +plotly diff --git a/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/utils/data_loader.py b/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/utils/data_loader.py new file mode 100644 index 0000000..dce8f4a --- /dev/null +++ b/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/utils/data_loader.py @@ -0,0 +1,6 @@ +import pandas as pd + +def load_data(): + df = pd.read_csv("data/mock_eldercare_data.csv") + df["Date"] = pd.to_datetime(df["Date"]) + return df diff --git a/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/utils/helpers.py b/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/utils/helpers.py new file mode 100644 index 0000000..e69de29 diff --git a/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/utils/mood_logic.py b/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/utils/mood_logic.py new file mode 100644 index 0000000..66ae028 --- /dev/null +++ b/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/utils/mood_logic.py @@ -0,0 +1,7 @@ +def get_mood_zone(score): + if score >= 75: + return "good" + elif score >= 65: + return "moderate" + else: + return "low" diff --git a/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/utils/sanitizer.py b/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/utils/sanitizer.py new file mode 100644 index 0000000..dfe41f5 --- /dev/null +++ b/projects/mental_health_hub/apps/dashboard/mental_health_dashboard/utils/sanitizer.py @@ -0,0 +1,15 @@ +import re + +def sanitize_input(text): + banned_words = ['kill', 'suicide', 'damn', 'hell'] + clean_text = re.sub(r'\b(?:' + '|'.join(banned_words) + r')\b', '[censored]', text, flags=re.IGNORECASE) + return clean_text.strip() + + + + + + + + + diff --git a/projects/mental_health_hub/apps/streamlit_hub/auth_module.py b/projects/mental_health_hub/apps/streamlit_hub/auth_module.py new file mode 100644 index 0000000..7552efe --- /dev/null +++ b/projects/mental_health_hub/apps/streamlit_hub/auth_module.py @@ -0,0 +1,108 @@ +import streamlit as st +import bcrypt # Import bcrypt and jwt functionality +import jwt +import datetime +from logging_module import log_event # Import log_event function + +# Secret key for signing JWTs +SECRET_KEY = "super-secret-key" + +# In-memory "database" for demo +if "users_db" not in st.session_state: + st.session_state.users_db = {} + +# Session state for authentication +if "token" not in st.session_state: + st.session_state.token = None +if "user" not in st.session_state: + st.session_state.user = None + + +# Hash password, bcrypt, token generation, verification functionality +def hash_password(password: str) -> bytes: + return bcrypt.hashpw(password.encode("utf-8"), bcrypt.gensalt()) + +def verify_password(password: str, hashed: bytes) -> bool: + return bcrypt.checkpw(password.encode("utf-8"), hashed) + +def generate_token(username: str) -> str: + payload = { + "user": username, + "exp": datetime.datetime.utcnow() + datetime.timedelta(minutes=30) + } + token = jwt.encode(payload, SECRET_KEY, algorithm="HS256") + return token + +def verify_token(token: str): + try: + payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"]) + return payload + except jwt.ExpiredSignatureError: + return None + except jwt.InvalidTokenError: + return None + + +# Streamlit User-Interface +def run_auth(): + st.title("🔑 User Authentication (JWT)") + + choice = st.radio("Choose Action:", ["Login", "Register", "Logout"]) + + # Register functionality + if choice == "Register": + st.subheader("Create a new account") + username = st.text_input("Username (register)") + password = st.text_input("Password (register)", type="password") + + if st.button("Register"): + if username in st.session_state.users_db: + st.error("User already exists.") + log_event(f"Failed registration attempt (user exists): {username}", 'ERROR') # Log failed registration + else: + st.session_state.users_db[username] = hash_password(password) + st.success(f"User {username} registered successfully!") + log_event(f"User successfully registered: {username}", 'INFO') # Log the successful registration event + + # Login Functionality + elif choice == "Login": + st.subheader("Login") + username = st.text_input("Username (login)") + password = st.text_input("Password (login)", type="password") + + if st.button("Login"): + if username not in st.session_state.users_db: + st.error("Invalid credentials.") + log_event(f"Failed login attempt (user does not exist): {username}", 'ERROR') # Log failed login + else: + stored_pw = st.session_state.users_db[username] + if verify_password(password, stored_pw): + token = generate_token(username) + st.session_state.token = token + st.session_state.user = username + st.success(f"Welcome, {username}!") + log_event(f"User successfuly logged in: {username}", 'INFO') # Log successful login + else: + st.error("Invalid credentials.") + log_event(f"Failed login attempt (incorrect password): {username}", 'ERROR') # Log failed login + + # Logout functionality + elif choice == "Logout": + if st.session_state.token: + log_event(f"User logged out: {st.session_state.user}", 'INFO') # Log the logout event + st.session_state.token = None + st.session_state.user = None + st.success("You have successfully been logged out.") + else: + st.info("You are not logged in.") + + # Protected Area + if st.session_state.token: + payload = verify_token(st.session_state.token) + if payload: + st.info(f"🔒 Protected: Hello {payload['user']}!") + else: + st.error("Your session expired. Please login again.") + log_event(f"Session expired for: {st.session_state.user}", 'ERROR') # Log session expiry event + st.session_state.token = None + st.session_state.user = None diff --git a/projects/mental_health_hub/apps/streamlit_hub/dashboard_module.py b/projects/mental_health_hub/apps/streamlit_hub/dashboard_module.py new file mode 100644 index 0000000..eb88ed1 --- /dev/null +++ b/projects/mental_health_hub/apps/streamlit_hub/dashboard_module.py @@ -0,0 +1,101 @@ +import pandas as pd +import numpy as np +import matplotlib.pyplot as plt +import streamlit as st + +# 1. Generate mock mental health trends data +def generate_dashboard_data(): + np.random.seed(42) + years = np.arange(2015, 2026) + states = ['NSW', 'VIC', 'QLD', 'WA', 'SA', 'TAS'] + age_groups = ['18-29', '30-44', '45-59', '60+'] + activity_levels = ['Low', 'Medium', 'High'] + + # Create a cartesian product of all categories and years + records = [] + for year in years: + for state in states: + for age in age_groups: + for activity in activity_levels: + # Simulate average distress score (10-50 scale) + base = 30 - (0.5 * activity_levels.index(activity)) # more activity lowers distress + age_adj = 0.1 * age_groups.index(age) # older groups slightly higher distress + trend = (year - 2015) * 0.2 # slight upward trend + score = base + age_adj + trend + np.random.normal(0, 1) + records.append({ + 'Year': year, + 'State': state, + 'AgeGroup': age, + 'ActivityLevel': activity, + 'AvgDistressScore': round(score, 1) + }) + + df = pd.DataFrame(records) + return df + +# 2. Plotting function for displaying graphs +def plot_trends_by_state(df): + states = df['State'].unique() + plt.figure(figsize=(8, 5)) + for state in states: + subset = df[df['State'] == state].groupby('Year')['AvgDistressScore'].mean() + plt.plot(subset.index, subset.values, label=state) + plt.title('Avg Distress Score by State (2015–2025)') + plt.xlabel('Year') + plt.ylabel('Average Distress Score') + plt.legend() + plt.tight_layout() + st.pyplot(plt) + +def plot_trends_by_age_group(df): + age_groups = df['AgeGroup'].unique() + plt.figure(figsize=(8, 5)) + for age in age_groups: + subset = df[df['AgeGroup'] == age].groupby('Year')['AvgDistressScore'].mean() + plt.plot(subset.index, subset.values, label=age) + plt.title('Avg Distress Score by Age Group (2015–2025)') + plt.xlabel('Year') + plt.ylabel('Average Distress Score') + plt.legend() + plt.tight_layout() + st.pyplot(plt) + +def plot_activity_level_bar_chart(df): + latest = df[df['Year'] == df['Year'].max()] + activity_avg = latest.groupby('ActivityLevel')['AvgDistressScore'].mean() + plt.figure(figsize=(6, 4)) + activity_avg.plot(kind='bar') + plt.title(f'Avg Distress by Activity Level in {df["Year"].max()}') + plt.xlabel('Activity Level') + plt.ylabel('Average Distress Score') + plt.tight_layout() + st.pyplot(plt) + +# 3. Display the data and plots in Streamlit +def run_dashboard(): + st.title("Dashboard: Mental Health Trends") + + df = generate_dashboard_data() + + # Show sample data + st.write("### Sample of Generated Data") + st.write(df.head(10)) + + # Display the graphs + st.write("### Trends by State") + plot_trends_by_state(df) + + st.write("### Trends by Age Group") + plot_trends_by_age_group(df) + + st.write("### Distress by Activity Level") + plot_activity_level_bar_chart(df) + + # Sample pandas filtering & grouping logic + st.write("### NSW Average Distress by Year") + nsw_avg = df[df['State']=='NSW'].groupby('Year')['AvgDistressScore'].mean() + st.write(nsw_avg) + + st.write("### 18-29 Age Group with High Activity") + young_high = df[(df['AgeGroup']=='18-29') & (df['ActivityLevel']=='High')] + st.write(young_high.head()) diff --git a/projects/mental_health_hub/apps/streamlit_hub/logging_module.py b/projects/mental_health_hub/apps/streamlit_hub/logging_module.py new file mode 100644 index 0000000..025fefc --- /dev/null +++ b/projects/mental_health_hub/apps/streamlit_hub/logging_module.py @@ -0,0 +1,49 @@ +import datetime +import json +import streamlit as st +import pandas as pd + +# Session Initialization +def init_logging(): + if 'logs' not in st.session_state: + st.session_state.logs = [] + +# Initialize session state +init_logging() + +# Logging Functionality +def log_event(action, severity='INFO', details=None): + """Log only significant events like login, registration, etc.""" + entry = { + 'timestamp': datetime.datetime.utcnow().isoformat() + 'Z', + 'action': action, + 'severity': severity, + 'details': details + } + st.session_state.logs.append(entry) + +# Run the logging page +def run_logging(): + st.title("Activity Logs") + + # Check if there are any logs in session + logs = st.session_state.logs + + # Display the logs in a table format using st.dataframe + if logs: + severity_filter = st.selectbox('Filter by severity', ['ALL', 'INFO', 'WARNING', 'ERROR']) + filtered_logs = logs[::-1] # latest first + + # Apply filter if selected + if severity_filter != 'ALL': + filtered_logs = [log for log in filtered_logs if log['severity'] == severity_filter] + + # Display logs in a table format + st.dataframe(pd.DataFrame(filtered_logs)) # Display logs as a dataframe + + # Add export functionality + if st.button("Export Logs as JSON"): + logs_json = json.dumps(filtered_logs, indent=2) + st.download_button(label="Download JSON", data=logs_json, file_name="logs.json", mime="application/json") + else: + st.info("No logs to display yet.") diff --git a/projects/mental_health_hub/apps/streamlit_hub/mood_module.py b/projects/mental_health_hub/apps/streamlit_hub/mood_module.py new file mode 100644 index 0000000..203ee9f --- /dev/null +++ b/projects/mental_health_hub/apps/streamlit_hub/mood_module.py @@ -0,0 +1,131 @@ +import pandas as pd +import numpy as np +from sklearn.tree import DecisionTreeClassifier +from sklearn.model_selection import train_test_split, GridSearchCV, cross_val_score +from sklearn.metrics import classification_report, confusion_matrix +from sklearn.utils import resample +import matplotlib.pyplot as plt +import streamlit as st + +# 1. Generate mock ABS-style data with six inputs +def generate_mood_data(): + np.random.seed(42) + data = pd.DataFrame({ + 'Sleep': np.random.uniform(4, 9, size=300), # Hours per night + 'Activity': np.random.uniform(0, 7, size=300), # Exercise hours per week + 'Age': np.random.randint(18, 65, size=300), # Age in years + 'K10': np.random.randint(10, 50, size=300), # Distress score (10–50) + 'Health': np.random.randint(1, 6, size=300), # Self-rated health (1–5) + 'Contacts': np.random.randint(0, 10, size=300) # Weekly close contacts + }) + return data + +# 2. Define rule-based mood function +def predict_mood_rule(row): + if row['Sleep'] <= 5 and row['K10'] >= 35: + return 'Low' # Extreme distress + poor sleep + if (row['Sleep'] >= 7 or row['Activity'] >= 5) and row['Contacts'] >= 3: + return 'High' # Good sleep/exercise + social support + return None # Others defer to regression + +# 3. Compute continuous MoodScore via regression formula +def compute_mood_score(row): + S, A = row['Sleep'], row['Activity'] + D, K = row['Age']/10, row['K10']/10 + H, C = row['Health'], row['Contacts'] + return 0.25*S + 0.20*A - 0.15*D - 0.30*K + 0.10*H + 0.10*C + 2.0 + +# 4. Combine rule-based and regression thresholds +def predict_mood(row): + label = predict_mood_rule(row) + if label: + return label + score = compute_mood_score(row) + if score >= 7: + return 'High' + if score <= 4: + return 'Low' + return 'Medium' + +# 5. Balance 'Medium' class via oversampling +def balance_data(data): + major = data[data['Mood'] != 'Medium'] + med = data[data['Mood'] == 'Medium'] + med_up = resample(med, replace=True, n_samples=major['Mood'].value_counts().max(), random_state=42) + balanced = pd.concat([major, med_up]) + return balanced + +# 6. Train Decision Tree model +def train_model(data): + features = ['Sleep', 'Activity', 'Age', 'K10', 'Health', 'Contacts'] + X = data[features] + y = data['Mood'] + + X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42, stratify=y) + + param_grid = {'max_depth': [3, 4, 5], 'min_samples_leaf': [1, 5, 10]} + grid = GridSearchCV(DecisionTreeClassifier(random_state=42), param_grid, cv=5) + grid.fit(X_train, y_train) + + best_clf = grid.best_estimator_ + cv_scores = cross_val_score(best_clf, X_train, y_train, cv=5) + + return best_clf, cv_scores, X_test, y_test + +# 7. Plot Confusion Matrix +def plot_confusion_matrix(y_test, y_pred): + cm = confusion_matrix(y_test, y_pred, labels=['High', 'Medium', 'Low']) + plt.figure(figsize=(5, 5)) + plt.imshow(cm, cmap='Blues', interpolation='nearest') + plt.title('Confusion Matrix Heatmap') + plt.colorbar() + cls = ['High', 'Medium', 'Low'] + ticks = np.arange(len(cls)) + plt.xticks(ticks, cls, rotation=45) + plt.yticks(ticks, cls) + for i in range(len(cls)): + for j in range(len(cls)): + plt.text(j, i, cm[i, j], ha='center', va='center') + plt.xlabel('Predicted') + plt.ylabel('True') + plt.tight_layout() + st.pyplot(plt) + +# 8. Plot Feature Importances +def plot_feature_importances(best_clf, features): + importances = best_clf.feature_importances_ + plt.figure(figsize=(8, 5)) + plt.barh(features, importances, edgecolor='black') + plt.title('Mood Prediction – Feature Importances') + plt.xlabel('Importance Score') + plt.tight_layout() + st.pyplot(plt) + +# 9. Streamlit function to run the model +def run_mood(): + st.title("Mood Prediction Model") + + # Generate mock data and predict mood + data = generate_mood_data() + data['Mood'] = data.apply(predict_mood, axis=1) + balanced_data = balance_data(data) + + # Train the model + best_clf, cv_scores, X_test, y_test = train_model(balanced_data) + + # Display results + st.write(f"Mean Cross-Validation Accuracy: {cv_scores.mean():.2f}") + + # Make predictions on the test set + y_pred = best_clf.predict(X_test) + + # Display the classification report, confusion matrix, and feature importance + st.write("### Classification Report") + st.text(classification_report(y_test, y_pred)) + + st.write("### Confusion Matrix") + plot_confusion_matrix(y_test, y_pred) + + st.write("### Feature Importances") + plot_feature_importances(best_clf, ['Sleep', 'Activity', 'Age', 'K10', 'Health', 'Contacts']) + diff --git a/projects/mental_health_hub/apps/streamlit_hub/storytelling_module.py b/projects/mental_health_hub/apps/streamlit_hub/storytelling_module.py new file mode 100644 index 0000000..1311b99 --- /dev/null +++ b/projects/mental_health_hub/apps/streamlit_hub/storytelling_module.py @@ -0,0 +1,138 @@ +#import the neccessary libraries +import streamlit as st + +def run_storytelling(): + st.title("📖 Collaborative Storytelling") + + #initialize a dictionary in session state to store all chapter info + #each chapter is stored with keys: title, writer, story, illustrator, and art + if "chapters" not in st.session_state: + st.session_state.chapters = {} # {chapter_number: {"title": str, "writer": str, "story": str, "illustrator": str, "art": file}} + #create four tabs: Write, Illustrate, Story, Contributors + tabs = st.tabs(["✍️ Write", "🎨 Illustrate", "📚 Story", "👥 Contributors"]) + + # WRITE TAB + with tabs[0]: + st.subheader("Write a Chapter") + #ask for the writers name + name = st.text_input("Your name (or alias)") + #ask which chapter number (1–10) they want to write + chapter_number = st.selectbox("Select a Chapter Number", [f"Chapter {i}" for i in range(1, 11)]) + #writer chooses a title for the chapter + chapter_title = st.text_input("Select a Chapter Title") + #writer inputs their short story directly (or via upload) + story = st.text_area("Your short story (max 500 words)", max_chars=3000) + #allow file upload as alternative story submission (.txt or .md) + file = st.file_uploader("Or upload a .txt/.md file", type=["txt", "md"]) + #handle the submit + if st.button("Submit Story ✍️"): + if not name.strip(): + st.error("Please enter your name or alias before submitting.") + elif not chapter_title.strip(): + st.error("Please enter a chapter title before submitting.") + elif not story.strip() and not file: + st.error("Please write a story or upload a file before submitting.") + else: + # Handle optional file text + if file: + story = file.read().decode("utf-8") + + st.session_state.chapters[chapter_number] = { + "title": chapter_title.strip(), + "writer": name.strip(), + "story": story.strip(), + "illustrator": None, + "art": None + } + st.success(f"✅ Chapter saved: [{chapter_number}] - {chapter_title} by {name}") + + # ILLUSTRATE TAB + with tabs[1]: + st.subheader("Illustrate a Chapter") + + #build dropdown options: show only chapters that already have a story + available_chapters = { + f"[{num}] - {info['title']}": num + for num, info in st.session_state.chapters.items() + if info.get("story") + } + + if available_chapters: + #select which chapter to illustrate + choice = st.selectbox("Choose a Chapter to Illustrate", list(available_chapters.keys())) + selected_number = available_chapters[choice] + chapter_info = st.session_state.chapters[selected_number] + + #display the story text so illustrators know the content + st.write(f"### {selected_number}: {chapter_info['title']}") + st.write(chapter_info["story"]) + + #mandatory illustrator name + illustrator_name = st.text_input("Your name (or alias) as illustrator") + #allow artwork upload (optional) + art = st.file_uploader("Upload Your Artwork", type=["png", "jpg", "jpeg"]) + + if st.button("Submit Artwork 🎨"): + if not illustrator_name.strip(): + st.error("Please enter your name or alias before submitting.") + else: + chapter_info["illustrator"] = illustrator_name.strip() + if art: #only save if the art is uploaded + chapter_info["art"] = art + st.success(f"✅ Artwork submitted for {choice} by {illustrator_name} (with artwork)") + else: + st.success(f"✅ Artwork submitted for {choice} by {illustrator_name} (no artwork uploaded)") + + + else: + st.info("No chapters available yet. Writers need to submit first.") + + + + # STORY TAB + with tabs[2]: + st.subheader("Our Shared Story") + #filter only completed chapters (story + illustrator required) + completed = [ + (num, info) for num, info in st.session_state.chapters.items() + if info.get("story") and info.get("illustrator") + ] + if completed: + for num, info in completed: + #show chapter number, title, and story + st.write(f"## {num}: {info['title']}") + st.write(info["story"]) + #show artwork if uploaded, otherwise only note illustrator’s name + if info.get("art"): + st.image(info["art"], caption=f"Illustration by {info['illustrator']}") + else: + st.info(f"(No artwork uploaded yet — illustrated by {info['illustrator']})") + st.markdown("---") + else: + st.info("No completed chapters yet. Stories and illustrators need to be submitted first.") + + + # CONTRIBUTORS TAB + with tabs[3]: + st.subheader("Contributors") + #separate contributors into writers and illustrators lists + writers = [] + illustrators = [] + for num, info in st.session_state.chapters.items(): + if info.get("writer"): + writers.append(f"✍️ {info['writer']} – {num}: {info['title']}") + if info.get("illustrator"): + illustrators.append(f"🎨 {info['illustrator']} – {num}: {info['title']}") + #display writers section if any + if writers: + st.write("### Writers") + for w in writers: + st.write(w) + #display illustrators section if any + if illustrators: + st.write("### Illustrators") + for i in illustrators: + st.write(i) + #show placeholder message if no contributors exist + if not writers and not illustrators: + st.info("No contributors yet.") diff --git a/projects/mental_health_hub/apps/streamlit_hub/streamlit_hub_app.py b/projects/mental_health_hub/apps/streamlit_hub/streamlit_hub_app.py new file mode 100644 index 0000000..933e78a --- /dev/null +++ b/projects/mental_health_hub/apps/streamlit_hub/streamlit_hub_app.py @@ -0,0 +1,28 @@ +# Import all necessary libraries and functions here +import streamlit as st +from auth_module import run_auth +from dashboard_module import run_dashboard +from mood_module import run_mood +from logging_module import run_logging, init_logging +from storytelling_module import run_storytelling # ⬅️ NEW + +# Page Directory for Streamlit +PAGES = { + "Authentication": run_auth, # Add Authentication Page + "Dashboard": run_dashboard, # Add Dashboard page + "Mood Predictor": run_mood, # Add Mood Predictor Page + "Activity Logging": run_logging, # Add Logging page + "Storytelling": run_storytelling, # Add Storytelling Page +} + +# Initialises logging session when the app starts +init_logging() + +# Main Functionality +def main(): + st.sidebar.title("Mental Health Hub") + choice = st.sidebar.radio("Go to:", list(PAGES.keys())) + PAGES[choice]() # run the selected page + +if __name__ == "__main__": + main() diff --git a/projects/mental_health_hub/design/branding_theme/BRANDING-ZENTONIC.pdf b/projects/mental_health_hub/design/branding_theme/BRANDING-ZENTONIC.pdf new file mode 100644 index 0000000..9de81d1 Binary files /dev/null and b/projects/mental_health_hub/design/branding_theme/BRANDING-ZENTONIC.pdf differ diff --git a/projects/mental_health_hub/design/branding_theme/PNG_Exports/1.png b/projects/mental_health_hub/design/branding_theme/PNG_Exports/1.png new file mode 100644 index 0000000..cf3f9da Binary files /dev/null and b/projects/mental_health_hub/design/branding_theme/PNG_Exports/1.png differ diff --git a/projects/mental_health_hub/design/branding_theme/PNG_Exports/2.png b/projects/mental_health_hub/design/branding_theme/PNG_Exports/2.png new file mode 100644 index 0000000..31167fb Binary files /dev/null and b/projects/mental_health_hub/design/branding_theme/PNG_Exports/2.png differ diff --git a/projects/mental_health_hub/design/branding_theme/PNG_Exports/3.png b/projects/mental_health_hub/design/branding_theme/PNG_Exports/3.png new file mode 100644 index 0000000..044172e Binary files /dev/null and b/projects/mental_health_hub/design/branding_theme/PNG_Exports/3.png differ diff --git a/projects/mental_health_hub/design/branding_theme/PNG_Exports/4.png b/projects/mental_health_hub/design/branding_theme/PNG_Exports/4.png new file mode 100644 index 0000000..a4252a2 Binary files /dev/null and b/projects/mental_health_hub/design/branding_theme/PNG_Exports/4.png differ diff --git a/projects/mental_health_hub/design/storytelling_wireframe/PNG_Exports/1.png b/projects/mental_health_hub/design/storytelling_wireframe/PNG_Exports/1.png new file mode 100644 index 0000000..d0e69db Binary files /dev/null and b/projects/mental_health_hub/design/storytelling_wireframe/PNG_Exports/1.png differ diff --git a/projects/mental_health_hub/design/storytelling_wireframe/PNG_Exports/2.png b/projects/mental_health_hub/design/storytelling_wireframe/PNG_Exports/2.png new file mode 100644 index 0000000..119941b Binary files /dev/null and b/projects/mental_health_hub/design/storytelling_wireframe/PNG_Exports/2.png differ diff --git a/projects/mental_health_hub/design/storytelling_wireframe/README.md b/projects/mental_health_hub/design/storytelling_wireframe/README.md new file mode 100644 index 0000000..784ce51 --- /dev/null +++ b/projects/mental_health_hub/design/storytelling_wireframe/README.md @@ -0,0 +1,8 @@ +# Storytelling Page Wireframe + +This is the initial wireframe/mockup for the storytelling page. +It aligns with the branding & theme (Zentonic identity). + +⚠️ Note: Chatbot integration/alignment is pending. +Since design and visual tasks are interdependent, this wireframe will need to be reworked once there is more clarity on the overall UI/UX layout and chatbot placement. + diff --git a/projects/mental_health_hub/design/storytelling_wireframe/STORYTELLING-PAGE-UI-MOCKUP-WIREFRAME.pdf b/projects/mental_health_hub/design/storytelling_wireframe/STORYTELLING-PAGE-UI-MOCKUP-WIREFRAME.pdf new file mode 100644 index 0000000..8d53923 Binary files /dev/null and b/projects/mental_health_hub/design/storytelling_wireframe/STORYTELLING-PAGE-UI-MOCKUP-WIREFRAME.pdf differ diff --git a/projects/mental_health_hub/docs/Collaborative Confidence Model Summary.pdf b/projects/mental_health_hub/docs/Collaborative Confidence Model Summary.pdf new file mode 100644 index 0000000..fb5e29a Binary files /dev/null and b/projects/mental_health_hub/docs/Collaborative Confidence Model Summary.pdf differ diff --git a/projects/mental_health_hub/docs/Collaborative Confidence Model Summary.rtf b/projects/mental_health_hub/docs/Collaborative Confidence Model Summary.rtf new file mode 100644 index 0000000..00634af Binary files /dev/null and b/projects/mental_health_hub/docs/Collaborative Confidence Model Summary.rtf differ diff --git a/projects/mental_health_hub/docs/Ethical Guidelines for Mental Health Hub.pdf b/projects/mental_health_hub/docs/Ethical Guidelines for Mental Health Hub.pdf new file mode 100644 index 0000000..672eb1e Binary files /dev/null and b/projects/mental_health_hub/docs/Ethical Guidelines for Mental Health Hub.pdf differ diff --git a/projects/mental_health_hub/docs/Incident Response Plan.pdf b/projects/mental_health_hub/docs/Incident Response Plan.pdf new file mode 100644 index 0000000..a18330a Binary files /dev/null and b/projects/mental_health_hub/docs/Incident Response Plan.pdf differ diff --git a/projects/mental_health_hub/docs/Logging & Monitoring.pdf b/projects/mental_health_hub/docs/Logging & Monitoring.pdf new file mode 100644 index 0000000..9d01ae1 Binary files /dev/null and b/projects/mental_health_hub/docs/Logging & Monitoring.pdf differ diff --git a/projects/mental_health_hub/docs/Mental Health Trends from Survey Data.pdf b/projects/mental_health_hub/docs/Mental Health Trends from Survey Data.pdf new file mode 100644 index 0000000..da8a53d Binary files /dev/null and b/projects/mental_health_hub/docs/Mental Health Trends from Survey Data.pdf differ diff --git a/projects/mental_health_hub/docs/Mood Prediction Model Explanation.pdf b/projects/mental_health_hub/docs/Mood Prediction Model Explanation.pdf new file mode 100644 index 0000000..1227cbe Binary files /dev/null and b/projects/mental_health_hub/docs/Mood Prediction Model Explanation.pdf differ diff --git a/projects/mental_health_hub/docs/Threat Model & Security Architecture.pdf b/projects/mental_health_hub/docs/Threat Model & Security Architecture.pdf new file mode 100644 index 0000000..49f4c2b Binary files /dev/null and b/projects/mental_health_hub/docs/Threat Model & Security Architecture.pdf differ diff --git a/projects/mental_health_hub/docs/Website Integration Plan.pdf b/projects/mental_health_hub/docs/Website Integration Plan.pdf new file mode 100644 index 0000000..0daf842 Binary files /dev/null and b/projects/mental_health_hub/docs/Website Integration Plan.pdf differ diff --git a/projects/mental_health_hub/notebooks/dashboard_calculations/Dashboard_Calculations.ipynb b/projects/mental_health_hub/notebooks/dashboard_calculations/Dashboard_Calculations.ipynb new file mode 100644 index 0000000..f0aca04 --- /dev/null +++ b/projects/mental_health_hub/notebooks/dashboard_calculations/Dashboard_Calculations.ipynb @@ -0,0 +1,212 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 13, + "id": "19b36e77-e593-45d1-9761-6c07f2f93878", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mock Mental Health Trends (First 10 Rows):\n", + " Year State AgeGroup ActivityLevel AvgDistressScore\n", + "0 2015 NSW 18-29 Low 30.5\n", + "1 2015 NSW 18-29 Medium 29.4\n", + "2 2015 NSW 18-29 High 29.6\n", + "3 2015 NSW 30-44 Low 31.6\n", + "4 2015 NSW 30-44 Medium 29.4\n", + "5 2015 NSW 30-44 High 28.9\n", + "6 2015 NSW 45-59 Low 31.8\n", + "7 2015 NSW 45-59 Medium 30.5\n", + "8 2015 NSW 45-59 High 28.7\n", + "9 2015 NSW 60+ Low 30.8\n" + ] + }, + { + "data": { + "image/png": "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jR07dhg7duwwSktLDcMwDKvVanTu3Nno3bu3sX37dmPr1q1Gt27djBtvvLFOxytnqqs5sG7dOsNkMhmzZs0y9u3bZ2zbts3o37+/ER0dXaUtcY7amAe7du0ygoODjbvvvrtKHenp6fYyBw4cMLy8vIw///nPxp49e4zXXnvNcHFxMVavXl2n45Uz1dUc+Pjjjw2LxWK89tprVcrk5OTU6XjlTHU1B35Lu0LVPQULcQig2tf8+fPtZYqLi41HHnnEaNKkieHl5WUMGTLEOHHiRJV6rrvuumrrOXjwoL3M8ePHjdtuu83w8fExQkNDjTFjxhhZWVl1NFI5m7qcAwsXLjQ6depkeHt7G8HBwcbAgQONPXv21NFI5VxqYx7Ex8dXW0d0dHSVtr766iujY8eOhpubmxEbG1ulDXGeupoDZ/u3YvTo0XU3WKlWXf478GsKFnXPZBiGUTvXPkREREREpLHSGgsREREREakxBQsREREREakxBQsREREREakxBQsREREREakxBQsREREREakxBQsREREREakxBQsREREREakxBQsREREREakxBQsREREREakxBQsREXEowzDo168f/fv3P+O9f/3rXwQEBHDs2DEn9ExERGqTgoWIiDiUyWRi/vz5fPfdd7z55pv28wcPHuSJJ57glVdeITIyslbbLC8vr9X6RETk/BQsRETE4aKiopg3bx5Tpkzh4MGDGIbB/fffT1xcHJ06deKmm27Cx8eH0NBQRo0aRWZmpv2zq1ev5tprryUgIICmTZty6623kpycbH//0KFDmEwmFi9ezHXXXYeHhwcff/yxM4YpItKomQzDMJzdCRERaRwGDx5Mbm4ut912G08//TQ//fQTbdu25YEHHuCee+6huLiYqVOnUlFRQUJCAgBLly7FZDLRvn17CgoKmDlzJocOHSIxMRGz2cyhQ4do0aIFMTEx/POf/6RTp054eHjQrFkzJ49WRKRxUbAQEZE6k56eTtu2bcnOzmbp0qXs3r2bb775hjVr1tjLHDt2jKioKJKSkmjZsuUZdWRmZhIcHMyuXbto166dPVi89NJLTJgwoS6HIyIiv6JboUREpM6EhITw4IMP0qZNGwYPHszOnTv56quv8PHxsb9at24NYL/daf/+/YwYMYLY2Fj8/PyIiYkB4MiRI1Xqvvrqq+t0LCIiUpXF2R0QEZHGxWKxYLFU/vdTUFDAgAED+Mc//nFGudO3Mg0YMIDo6GjefvttwsPDsdlstGvXjrKysirlvb29Hd95ERE5KwULERFxms6dO7N06VJiYmLsYePXsrKySEpK4u2336ZXr14AbNy4sa67KSIiF0C3QomIiNOMGzeO7OxsRowYwQ8//EBycjJr1qzh3nvvxWq10qRJE5o2bcpbb73FL7/8QkJCApMnT3Z2t0VEpBoKFiIi4jTh4eFs2rQJq9VKXFwcV111FRMnTiQgIACz2YzZbGbRokVs27aNdu3aMWnSJJ5//nlnd1tERKqhXaFERERERKTGdMVCRERERERqTMFCRERERERqTMFCRERERERqTMFCRERERERqTMFCRERERERqTMFCRERERERqTMFCRERERERqTMFCRERERERqTMFCRERERERqTMFCRERERERqTMFCRERERERqTMFCRERERERq7P8BfhJ/RpkbpCkAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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RkRERKRVVBpxSk5OxrJly7BkyRKkpaWha9euyMrKwoYNG+Dq6lpUGYmIiIi0guQRp3bt2qFy5co4e/YsQkNDcffuXcyePbsosxERERFpFckjTtu2bcPQoUMxcOBAuLi4FGUmIiIiIq0kecRp//79SE9PR506ddCgQQPMmTMHDx8+LMpsRERERFpFcuHUsGFDLFq0CElJSejfvz9Wr14NBwcH5OTkYNeuXUhPTy/KnEREREQap/JVdSYmJvjqq6+wf/9+nDt3Dt9//z1+++032Nraon379kWRkYiIiEgrFHo5AgCoXLky/vjjD9y+fRurVq1SVyYiIiIirfRBhVMuXV1ddOzYERs3blRHd0RERERaSS2FExEREVFxwMKJiIiISCIWTkREREQSsXAiIiIikoiFExEREZFELJyIiIiIJNLqwmnChAmQyWRKjypVqmg6FhERERVTkm/yqynVqlXD7t27Fc/19LQ+MhEREX2mtL4K0dPTg52dnaZjEBEREWn3qToAuHr1KhwcHFCxYkX07NkTiYmJ79w/KysLaWlpSg8iIiIiddDqwqlBgwZYtmwZtm/fjvnz5+PGjRto2rQp0tPTC3zN1KlTYWFhoXg4Ojp+xMRERET0OdPqwqlNmzbo0qUL3Nzc4OPjg61btyIlJQWRkZEFviYkJASpqamKx61btz5iYiIiIvqcaf0cpzdZWlqiUqVKiI+PL3AfuVwOuVz+EVMRERFRcaHVI05vy8jIwLVr12Bvb6/pKERERFQMaXXhNHLkSMTExODmzZs4ePAgOnXqBF1dXXTv3l3T0YiIiKgY0upTdbdv30b37t3x6NEj2NjYoEmTJjh8+DBsbGw0HY2IiIiKIa0unFavXq3pCEREREQKWn2qjoiIiEibsHAiIiIikoiFExEREZFELJyIiIiIJGLhRERERCQRCyciIiIiiVg4EREREUnEwomIiIhIIhZORERERBKxcCIiIiKSiIUTERERkUQsnIiIiIgkYuFEREREJBELJyIiIiKJWDgRERERScTCiYiIiEgiFk5EREREErFwIiIiIpKIhRMRERGRRCyciIiIiCRi4UREREQkEQsnIiIiIolYOBERERFJxMKJiIiISCIWTkREREQSsXAiIiIikoiFExEREZFELJyIiIiIJPokCqe5c+eifPnyMDQ0RIMGDXD06FFNRyIiIqJi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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# 1. Generate mock mental health trends data\n", + "np.random.seed(42)\n", + "years = np.arange(2015, 2026)\n", + "states = ['NSW', 'VIC', 'QLD', 'WA', 'SA', 'TAS']\n", + "age_groups = ['18-29', '30-44', '45-59', '60+']\n", + "activity_levels = ['Low', 'Medium', 'High']\n", + "\n", + "# Create a cartesian product of all categories and years\n", + "records = []\n", + "for year in years:\n", + " for state in states:\n", + " for age in age_groups:\n", + " for activity in activity_levels:\n", + " # Simulate average distress score (10-50 scale)\n", + " base = 30 - (0.5 * activity_levels.index(activity)) # more activity lowers distress\n", + " age_adj = 0.1 * age_groups.index(age) # older groups slightly higher distress\n", + " trend = (year - 2015) * 0.2 # slight upward trend\n", + " score = base + age_adj + trend + np.random.normal(0, 1)\n", + " records.append({\n", + " 'Year': year,\n", + " 'State': state,\n", + " 'AgeGroup': age,\n", + " 'ActivityLevel': activity,\n", + " 'AvgDistressScore': round(score, 1)\n", + " })\n", + "\n", + "df = pd.DataFrame(records)\n", + "df.to_csv('mental_health_trends.csv', index=False) # Save for later use\n", + "\n", + "# 2. Display a sample of the data\n", + "print(\"Mock Mental Health Trends (First 10 Rows):\")\n", + "print(df.head(10))\n", + "\n", + "# 3. Plot trends by state\n", + "plt.figure(figsize=(8, 5))\n", + "for state in states:\n", + " subset = df[df['State'] == state].groupby('Year')['AvgDistressScore'].mean()\n", + " plt.plot(years, subset, label=state)\n", + "plt.title('Avg Distress Score by State (2015–2025)')\n", + "plt.xlabel('Year')\n", + "plt.ylabel('Average Distress Score')\n", + "plt.legend()\n", + "plt.tight_layout()\n", + "plt.show()\n", + "\n", + "# 4. Plot trends by age group\n", + "plt.figure(figsize=(8, 5))\n", + "for age in age_groups:\n", + " subset = df[df['AgeGroup'] == age].groupby('Year')['AvgDistressScore'].mean()\n", + " plt.plot(years, subset, label=age)\n", + "plt.title('Avg Distress Score by Age Group (2015–2025)')\n", + "plt.xlabel('Year')\n", + "plt.ylabel('Average Distress Score')\n", + "plt.legend()\n", + "plt.tight_layout()\n", + "plt.show()\n", + "\n", + "# 5. Plot bar chart for activity level in latest year\n", + "latest = df[df['Year'] == df['Year'].max()]\n", + "activity_avg = latest.groupby('ActivityLevel')['AvgDistressScore'].mean()\n", + "plt.figure(figsize=(6, 4))\n", + "activity_avg.plot(kind='bar')\n", + "plt.title(f'Avg Distress by Activity Level in {df[\"Year\"].max()}')\n", + "plt.xlabel('Activity Level')\n", + "plt.ylabel('Average Distress Score')\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "7edec183-947e-47a1-ac9e-89224849a7a2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "NSW Average Distress by Year:\n", + " Year\n", + "2015 29.941667\n", + "2016 29.758333\n", + "2017 29.975000\n", + "2018 30.058333\n", + "2019 30.575000\n", + "2020 30.866667\n", + "2021 30.733333\n", + "2022 30.700000\n", + "2023 31.458333\n", + "2024 31.850000\n", + "2025 31.333333\n", + "Name: AvgDistressScore, dtype: float64 \n", + "\n", + "Records for 18-29 with High Activity:\n", + " Year State AgeGroup ActivityLevel AvgDistressScore\n", + "2 2015 NSW 18-29 High 29.6\n", + "14 2015 VIC 18-29 High 27.3\n", + "26 2015 QLD 18-29 High 27.8\n", + "38 2015 WA 18-29 High 27.7\n", + "50 2015 SA 18-29 High 29.3 \n", + "\n", + "Top 5 Highest Distress Records:\n", + " Year State AgeGroup ActivityLevel AvgDistressScore\n", + "762 2025 WA 45-59 Low 34.8\n", + "654 2024 NSW 45-59 Low 34.6\n", + "478 2021 WA 60+ Medium 34.1\n", + "755 2025 QLD 60+ High 33.9\n", + "738 2025 VIC 45-59 Low 33.9\n" + ] + } + ], + "source": [ + "# 6. Sample pandas filtering & grouping logic\n", + "# a) Filter for NSW and calculate the yearly average distress\n", + "nsw_avg = df[df['State']=='NSW'].groupby('Year')['AvgDistressScore'].mean()\n", + "print(\"NSW Average Distress by Year:\\n\", nsw_avg, \"\\n\")\n", + "\n", + "# b) Get data for ages 18-29 with High activity\n", + "young_high = df[(df['AgeGroup']=='18-29') & (df['ActivityLevel']=='High')]\n", + "print(\"Records for 18-29 with High Activity:\\n\", young_high.head(), \"\\n\")\n", + "\n", + "# c) Sort all records by distress descending and show top 5\n", + "top_distress = df.sort_values('AvgDistressScore', ascending=False).head()\n", + "print(\"Top 5 Highest Distress Records:\\n\", top_distress)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python [conda env:base] *", + "language": "python", + "name": "conda-base-py" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.4" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/projects/mental_health_hub/notebooks/dashboard_calculations/Generated_Plots/AvgDistressByActivityLevelIn2025.png b/projects/mental_health_hub/notebooks/dashboard_calculations/Generated_Plots/AvgDistressByActivityLevelIn2025.png new file mode 100644 index 0000000..b09318d Binary files /dev/null and b/projects/mental_health_hub/notebooks/dashboard_calculations/Generated_Plots/AvgDistressByActivityLevelIn2025.png differ diff --git a/projects/mental_health_hub/notebooks/dashboard_calculations/Generated_Plots/AvgDistressScoreByAgeGroup.png b/projects/mental_health_hub/notebooks/dashboard_calculations/Generated_Plots/AvgDistressScoreByAgeGroup.png new file mode 100644 index 0000000..97ad419 Binary files /dev/null and b/projects/mental_health_hub/notebooks/dashboard_calculations/Generated_Plots/AvgDistressScoreByAgeGroup.png differ diff --git a/projects/mental_health_hub/notebooks/dashboard_calculations/Generated_Plots/AvgDistressScoreByState.png b/projects/mental_health_hub/notebooks/dashboard_calculations/Generated_Plots/AvgDistressScoreByState.png new file mode 100644 index 0000000..a70e60a Binary files /dev/null and b/projects/mental_health_hub/notebooks/dashboard_calculations/Generated_Plots/AvgDistressScoreByState.png differ diff --git a/projects/mental_health_hub/notebooks/dashboard_calculations/mental_health_trends.csv b/projects/mental_health_hub/notebooks/dashboard_calculations/mental_health_trends.csv new file mode 100644 index 0000000..64fcb05 --- /dev/null +++ b/projects/mental_health_hub/notebooks/dashboard_calculations/mental_health_trends.csv @@ -0,0 +1,793 @@ +Year,State,AgeGroup,ActivityLevel,AvgDistressScore +2015,NSW,18-29,Low,30.5 +2015,NSW,18-29,Medium,29.4 +2015,NSW,18-29,High,29.6 +2015,NSW,30-44,Low,31.6 +2015,NSW,30-44,Medium,29.4 +2015,NSW,30-44,High,28.9 +2015,NSW,45-59,Low,31.8 +2015,NSW,45-59,Medium,30.5 +2015,NSW,45-59,High,28.7 +2015,NSW,60+,Low,30.8 +2015,NSW,60+,Medium,29.3 +2015,NSW,60+,High,28.8 +2015,VIC,18-29,Low,30.2 +2015,VIC,18-29,Medium,27.6 +2015,VIC,18-29,High,27.3 +2015,VIC,30-44,Low,29.5 +2015,VIC,30-44,Medium,28.6 +2015,VIC,30-44,High,29.4 +2015,VIC,45-59,Low,29.3 +2015,VIC,45-59,Medium,28.3 +2015,VIC,45-59,High,30.7 +2015,VIC,60+,Low,30.1 +2015,VIC,60+,Medium,29.9 +2015,VIC,60+,High,27.9 +2015,QLD,18-29,Low,29.5 +2015,QLD,18-29,Medium,29.6 +2015,QLD,18-29,High,27.8 +2015,QLD,30-44,Low,30.5 +2015,QLD,30-44,Medium,29.0 +2015,QLD,30-44,High,28.8 +2015,QLD,45-59,Low,29.6 +2015,QLD,45-59,Medium,31.6 +2015,QLD,45-59,High,29.2 +2015,QLD,60+,Low,29.2 +2015,QLD,60+,Medium,30.6 +2015,QLD,60+,High,28.1 +2015,WA,18-29,Low,30.2 +2015,WA,18-29,Medium,27.5 +2015,WA,18-29,High,27.7 +2015,WA,30-44,Low,30.3 +2015,WA,30-44,Medium,30.3 +2015,WA,30-44,High,29.3 +2015,WA,45-59,Low,30.1 +2015,WA,45-59,Medium,29.4 +2015,WA,45-59,High,27.7 +2015,WA,60+,Low,29.6 +2015,WA,60+,Medium,29.3 +2015,WA,60+,High,30.4 +2015,SA,18-29,Low,30.3 +2015,SA,18-29,Medium,27.7 +2015,SA,18-29,High,29.3 +2015,SA,30-44,Low,29.7 +2015,SA,30-44,Medium,28.9 +2015,SA,30-44,High,29.7 +2015,SA,45-59,Low,31.2 +2015,SA,45-59,Medium,30.6 +2015,SA,45-59,High,28.4 +2015,SA,60+,Low,30.0 +2015,SA,60+,Medium,30.1 +2015,SA,60+,High,30.3 +2015,TAS,18-29,Low,29.5 +2015,TAS,18-29,Medium,29.3 +2015,TAS,18-29,High,27.9 +2015,TAS,30-44,Low,28.9 +2015,TAS,30-44,Medium,30.4 +2015,TAS,30-44,High,30.5 +2015,TAS,45-59,Low,30.1 +2015,TAS,45-59,Medium,30.7 +2015,TAS,45-59,High,29.6 +2015,TAS,60+,Low,29.7 +2015,TAS,60+,Medium,30.2 +2015,TAS,60+,High,30.8 +2016,NSW,18-29,Low,30.2 +2016,NSW,18-29,Medium,31.3 +2016,NSW,18-29,High,26.6 +2016,NSW,30-44,Low,31.1 +2016,NSW,30-44,Medium,29.9 +2016,NSW,30-44,High,29.0 +2016,NSW,45-59,Low,30.5 +2016,NSW,45-59,Medium,27.9 +2016,NSW,45-59,High,29.2 +2016,NSW,60+,Low,30.9 +2016,NSW,60+,Medium,31.5 +2016,NSW,60+,High,29.0 +2016,VIC,18-29,Low,29.4 +2016,VIC,18-29,Medium,29.2 +2016,VIC,18-29,High,30.1 +2016,VIC,30-44,Low,30.6 +2016,VIC,30-44,Medium,29.3 +2016,VIC,30-44,High,29.8 +2016,VIC,45-59,Low,30.5 +2016,VIC,45-59,Medium,30.9 +2016,VIC,45-59,High,28.7 +2016,VIC,60+,Low,30.2 +2016,VIC,60+,Medium,29.6 +2016,VIC,60+,High,28.0 +2016,QLD,18-29,Low,30.5 +2016,QLD,18-29,Medium,30.0 +2016,QLD,18-29,High,29.2 +2016,QLD,30-44,Low,30.1 +2016,QLD,30-44,Medium,28.4 +2016,QLD,30-44,High,28.9 +2016,QLD,45-59,Low,30.1 +2016,QLD,45-59,Medium,29.1 +2016,QLD,45-59,High,29.2 +2016,QLD,60+,Low,30.9 +2016,QLD,60+,Medium,31.9 +2016,QLD,60+,High,29.7 +2016,WA,18-29,Low,30.5 +2016,WA,18-29,Medium,29.6 +2016,WA,18-29,High,27.3 +2016,WA,30-44,Low,30.3 +2016,WA,30-44,Medium,29.9 +2016,WA,30-44,High,31.8 +2016,WA,45-59,Low,30.2 +2016,WA,45-59,Medium,30.2 +2016,WA,45-59,High,29.4 +2016,WA,60+,Low,29.3 +2016,WA,60+,Medium,31.1 +2016,WA,60+,High,30.3 +2016,SA,18-29,Low,31.0 +2016,SA,18-29,Medium,28.8 +2016,SA,18-29,High,30.6 +2016,SA,30-44,Low,28.9 +2016,SA,30-44,Medium,30.4 +2016,SA,30-44,High,31.5 +2016,SA,45-59,Low,29.4 +2016,SA,45-59,Medium,29.3 +2016,SA,45-59,High,29.5 +2016,SA,60+,Low,30.0 +2016,SA,60+,Medium,28.4 +2016,SA,60+,High,29.6 +2016,TAS,18-29,Low,29.1 +2016,TAS,18-29,Medium,30.2 +2016,TAS,18-29,High,28.3 +2016,TAS,30-44,Low,31.8 +2016,TAS,30-44,Medium,29.0 +2016,TAS,30-44,High,29.0 +2016,TAS,45-59,Low,31.2 +2016,TAS,45-59,Medium,28.7 +2016,TAS,45-59,High,29.6 +2016,TAS,60+,Low,31.8 +2016,TAS,60+,Medium,28.4 +2016,TAS,60+,High,29.7 +2017,NSW,18-29,Low,30.7 +2017,NSW,18-29,Medium,30.7 +2017,NSW,18-29,High,28.2 +2017,NSW,30-44,Low,29.2 +2017,NSW,30-44,Medium,30.5 +2017,NSW,30-44,High,29.8 +2017,NSW,45-59,Low,30.9 +2017,NSW,45-59,Medium,30.4 +2017,NSW,45-59,High,28.9 +2017,NSW,60+,Low,30.9 +2017,NSW,60+,Medium,30.5 +2017,NSW,60+,High,29.0 +2017,VIC,18-29,Low,32.3 +2017,VIC,18-29,Medium,30.4 +2017,VIC,18-29,High,28.2 +2017,VIC,30-44,Low,31.2 +2017,VIC,30-44,Medium,29.0 +2017,VIC,30-44,High,30.3 +2017,VIC,45-59,Low,31.8 +2017,VIC,45-59,Medium,29.3 +2017,VIC,45-59,High,30.6 +2017,VIC,60+,Low,31.1 +2017,VIC,60+,Medium,31.0 +2017,VIC,60+,High,31.6 +2017,QLD,18-29,Low,30.2 +2017,QLD,18-29,Medium,29.1 +2017,QLD,18-29,High,28.5 +2017,QLD,30-44,Low,29.7 +2017,QLD,30-44,Medium,29.9 +2017,QLD,30-44,High,29.8 +2017,QLD,45-59,Low,30.9 +2017,QLD,45-59,Medium,30.9 +2017,QLD,45-59,High,29.6 +2017,QLD,60+,Low,32.2 +2017,QLD,60+,Medium,29.9 +2017,QLD,60+,High,32.4 +2017,WA,18-29,Low,31.0 +2017,WA,18-29,Medium,29.0 +2017,WA,18-29,High,28.3 +2017,WA,30-44,Low,31.0 +2017,WA,30-44,Medium,29.8 +2017,WA,30-44,High,30.2 +2017,WA,45-59,Low,31.1 +2017,WA,45-59,Medium,30.0 +2017,WA,45-59,High,28.8 +2017,WA,60+,Low,29.2 +2017,WA,60+,Medium,29.8 +2017,WA,60+,High,30.6 +2017,SA,18-29,Low,30.6 +2017,SA,18-29,Medium,28.7 +2017,SA,18-29,High,29.6 +2017,SA,30-44,Low,30.9 +2017,SA,30-44,Medium,29.1 +2017,SA,30-44,High,29.7 +2017,SA,45-59,Low,30.7 +2017,SA,45-59,Medium,29.0 +2017,SA,45-59,High,30.0 +2017,SA,60+,Low,31.3 +2017,SA,60+,Medium,31.3 +2017,SA,60+,High,30.8 +2017,TAS,18-29,Low,29.0 +2017,TAS,18-29,Medium,29.0 +2017,TAS,18-29,High,29.9 +2017,TAS,30-44,Low,31.0 +2017,TAS,30-44,Medium,30.5 +2017,TAS,30-44,High,33.4 +2017,TAS,45-59,Low,31.2 +2017,TAS,45-59,Medium,31.2 +2017,TAS,45-59,High,30.6 +2017,TAS,60+,Low,31.4 +2017,TAS,60+,Medium,29.9 +2017,TAS,60+,High,30.5 +2018,NSW,18-29,Low,29.8 +2018,NSW,18-29,Medium,29.9 +2018,NSW,18-29,High,29.1 +2018,NSW,30-44,Low,30.8 +2018,NSW,30-44,Medium,32.5 +2018,NSW,30-44,High,27.8 +2018,NSW,45-59,Low,31.5 +2018,NSW,45-59,Medium,28.7 +2018,NSW,45-59,High,29.3 +2018,NSW,60+,Low,32.0 +2018,NSW,60+,Medium,30.5 +2018,NSW,60+,High,28.8 +2018,VIC,18-29,Low,29.9 +2018,VIC,18-29,Medium,30.8 +2018,VIC,18-29,High,28.9 +2018,VIC,30-44,Low,30.9 +2018,VIC,30-44,Medium,30.2 +2018,VIC,30-44,High,29.0 +2018,VIC,45-59,Low,32.9 +2018,VIC,45-59,Medium,30.9 +2018,VIC,45-59,High,27.8 +2018,VIC,60+,Low,31.1 +2018,VIC,60+,Medium,29.7 +2018,VIC,60+,High,30.8 +2018,QLD,18-29,Low,29.8 +2018,QLD,18-29,Medium,30.0 +2018,QLD,18-29,High,30.1 +2018,QLD,30-44,Low,31.6 +2018,QLD,30-44,Medium,29.0 +2018,QLD,30-44,High,29.4 +2018,QLD,45-59,Low,30.3 +2018,QLD,45-59,Medium,29.6 +2018,QLD,45-59,High,31.6 +2018,QLD,60+,Low,31.3 +2018,QLD,60+,Medium,29.1 +2018,QLD,60+,High,30.8 +2018,WA,18-29,Low,32.7 +2018,WA,18-29,Medium,31.1 +2018,WA,18-29,High,28.1 +2018,WA,30-44,Low,30.2 +2018,WA,30-44,Medium,31.5 +2018,WA,30-44,High,29.0 +2018,WA,45-59,Low,31.2 +2018,WA,45-59,Medium,31.1 +2018,WA,45-59,High,28.9 +2018,WA,60+,Low,30.8 +2018,WA,60+,Medium,27.2 +2018,WA,60+,High,28.9 +2018,SA,18-29,Low,30.3 +2018,SA,18-29,Medium,28.9 +2018,SA,18-29,High,31.2 +2018,SA,30-44,Low,29.3 +2018,SA,30-44,Medium,29.8 +2018,SA,30-44,High,29.8 +2018,SA,45-59,Low,32.2 +2018,SA,45-59,Medium,28.9 +2018,SA,45-59,High,31.0 +2018,SA,60+,Low,30.9 +2018,SA,60+,Medium,29.4 +2018,SA,60+,High,30.4 +2018,TAS,18-29,Low,30.8 +2018,TAS,18-29,Medium,29.5 +2018,TAS,18-29,High,29.7 +2018,TAS,30-44,Low,30.3 +2018,TAS,30-44,Medium,30.3 +2018,TAS,30-44,High,30.4 +2018,TAS,45-59,Low,32.4 +2018,TAS,45-59,Medium,29.1 +2018,TAS,45-59,High,31.9 +2018,TAS,60+,Low,28.9 +2018,TAS,60+,Medium,30.2 +2018,TAS,60+,High,30.5 +2019,NSW,18-29,Low,31.1 +2019,NSW,18-29,Medium,29.7 +2019,NSW,18-29,High,29.6 +2019,NSW,30-44,Low,30.4 +2019,NSW,30-44,Medium,29.8 +2019,NSW,30-44,High,30.7 +2019,NSW,45-59,Low,31.4 +2019,NSW,45-59,Medium,29.8 +2019,NSW,45-59,High,30.9 +2019,NSW,60+,Low,31.4 +2019,NSW,60+,Medium,31.4 +2019,NSW,60+,High,30.7 +2019,VIC,18-29,Low,30.0 +2019,VIC,18-29,Medium,29.7 +2019,VIC,18-29,High,30.5 +2019,VIC,30-44,Low,31.5 +2019,VIC,30-44,Medium,30.4 +2019,VIC,30-44,High,30.0 +2019,VIC,45-59,Low,32.3 +2019,VIC,45-59,Medium,29.9 +2019,VIC,45-59,High,30.5 +2019,VIC,60+,Low,30.9 +2019,VIC,60+,Medium,30.4 +2019,VIC,60+,High,31.2 +2019,QLD,18-29,Low,31.6 +2019,QLD,18-29,Medium,31.1 +2019,QLD,18-29,High,31.1 +2019,QLD,30-44,Low,30.9 +2019,QLD,30-44,Medium,31.1 +2019,QLD,30-44,High,29.6 +2019,QLD,45-59,Low,31.3 +2019,QLD,45-59,Medium,30.4 +2019,QLD,45-59,High,30.1 +2019,QLD,60+,Low,31.7 +2019,QLD,60+,Medium,29.8 +2019,QLD,60+,High,32.2 +2019,WA,18-29,Low,29.8 +2019,WA,18-29,Medium,29.1 +2019,WA,18-29,High,31.0 +2019,WA,30-44,Low,31.7 +2019,WA,30-44,Medium,31.0 +2019,WA,30-44,High,30.5 +2019,WA,45-59,Low,31.0 +2019,WA,45-59,Medium,29.6 +2019,WA,45-59,High,30.1 +2019,WA,60+,Low,30.4 +2019,WA,60+,Medium,31.6 +2019,WA,60+,High,30.0 +2019,SA,18-29,Low,30.0 +2019,SA,18-29,Medium,30.0 +2019,SA,18-29,High,30.2 +2019,SA,30-44,Low,30.3 +2019,SA,30-44,Medium,29.6 +2019,SA,30-44,High,30.1 +2019,SA,45-59,Low,31.2 +2019,SA,45-59,Medium,30.0 +2019,SA,45-59,High,29.5 +2019,SA,60+,Low,31.3 +2019,SA,60+,Medium,29.2 +2019,SA,60+,High,28.7 +2019,TAS,18-29,Low,30.1 +2019,TAS,18-29,Medium,30.1 +2019,TAS,18-29,High,30.1 +2019,TAS,30-44,Low,32.4 +2019,TAS,30-44,Medium,31.3 +2019,TAS,30-44,High,29.7 +2019,TAS,45-59,Low,31.0 +2019,TAS,45-59,Medium,29.5 +2019,TAS,45-59,High,30.0 +2019,TAS,60+,Low,30.8 +2019,TAS,60+,Medium,30.9 +2019,TAS,60+,High,29.3 +2020,NSW,18-29,Low,31.5 +2020,NSW,18-29,Medium,32.0 +2020,NSW,18-29,High,29.9 +2020,NSW,30-44,Low,31.5 +2020,NSW,30-44,Medium,31.3 +2020,NSW,30-44,High,29.7 +2020,NSW,45-59,Low,31.4 +2020,NSW,45-59,Medium,30.7 +2020,NSW,45-59,High,30.3 +2020,NSW,60+,Low,30.5 +2020,NSW,60+,Medium,30.8 +2020,NSW,60+,High,30.8 +2020,VIC,18-29,Low,32.5 +2020,VIC,18-29,Medium,31.5 +2020,VIC,18-29,High,32.2 +2020,VIC,30-44,Low,30.3 +2020,VIC,30-44,Medium,31.5 +2020,VIC,30-44,High,30.3 +2020,VIC,45-59,Low,33.4 +2020,VIC,45-59,Medium,29.9 +2020,VIC,45-59,High,29.4 +2020,VIC,60+,Low,30.7 +2020,VIC,60+,Medium,28.7 +2020,VIC,60+,High,29.8 +2020,QLD,18-29,Low,30.2 +2020,QLD,18-29,Medium,30.7 +2020,QLD,18-29,High,30.3 +2020,QLD,30-44,Low,33.0 +2020,QLD,30-44,Medium,31.6 +2020,QLD,30-44,High,29.5 +2020,QLD,45-59,Low,30.3 +2020,QLD,45-59,Medium,31.2 +2020,QLD,45-59,High,28.9 +2020,QLD,60+,Low,33.1 +2020,QLD,60+,Medium,32.0 +2020,QLD,60+,High,29.8 +2020,WA,18-29,Low,29.3 +2020,WA,18-29,Medium,31.9 +2020,WA,18-29,High,29.9 +2020,WA,30-44,Low,32.3 +2020,WA,30-44,Medium,29.0 +2020,WA,30-44,High,29.5 +2020,WA,45-59,Low,31.2 +2020,WA,45-59,Medium,30.7 +2020,WA,45-59,High,29.7 +2020,WA,60+,Low,31.9 +2020,WA,60+,Medium,29.7 +2020,WA,60+,High,30.2 +2020,SA,18-29,Low,31.1 +2020,SA,18-29,Medium,31.0 +2020,SA,18-29,High,30.7 +2020,SA,30-44,Low,30.0 +2020,SA,30-44,Medium,29.1 +2020,SA,30-44,High,31.4 +2020,SA,45-59,Low,31.5 +2020,SA,45-59,Medium,30.0 +2020,SA,45-59,High,31.8 +2020,SA,60+,Low,31.4 +2020,SA,60+,Medium,32.0 +2020,SA,60+,High,30.4 +2020,TAS,18-29,Low,33.1 +2020,TAS,18-29,Medium,32.3 +2020,TAS,18-29,High,29.8 +2020,TAS,30-44,Low,32.1 +2020,TAS,30-44,Medium,31.2 +2020,TAS,30-44,High,31.5 +2020,TAS,45-59,Low,30.2 +2020,TAS,45-59,Medium,31.4 +2020,TAS,45-59,High,31.3 +2020,TAS,60+,Low,29.5 +2020,TAS,60+,Medium,29.6 +2020,TAS,60+,High,28.3 +2021,NSW,18-29,Low,30.9 +2021,NSW,18-29,Medium,31.4 +2021,NSW,18-29,High,31.7 +2021,NSW,30-44,Low,31.4 +2021,NSW,30-44,Medium,32.4 +2021,NSW,30-44,High,28.9 +2021,NSW,45-59,Low,29.7 +2021,NSW,45-59,Medium,30.8 +2021,NSW,45-59,High,30.8 +2021,NSW,60+,Low,31.5 +2021,NSW,60+,Medium,28.9 +2021,NSW,60+,High,30.4 +2021,VIC,18-29,Low,29.9 +2021,VIC,18-29,Medium,31.4 +2021,VIC,18-29,High,30.6 +2021,VIC,30-44,Low,30.4 +2021,VIC,30-44,Medium,30.3 +2021,VIC,30-44,High,29.2 +2021,VIC,45-59,Low,31.3 +2021,VIC,45-59,Medium,31.9 +2021,VIC,45-59,High,29.4 +2021,VIC,60+,Low,32.0 +2021,VIC,60+,Medium,30.5 +2021,VIC,60+,High,29.7 +2021,QLD,18-29,Low,31.1 +2021,QLD,18-29,Medium,29.7 +2021,QLD,18-29,High,29.6 +2021,QLD,30-44,Low,30.1 +2021,QLD,30-44,Medium,32.8 +2021,QLD,30-44,High,30.3 +2021,QLD,45-59,Low,30.7 +2021,QLD,45-59,Medium,31.1 +2021,QLD,45-59,High,30.3 +2021,QLD,60+,Low,31.3 +2021,QLD,60+,Medium,31.6 +2021,QLD,60+,High,31.3 +2021,WA,18-29,Low,30.7 +2021,WA,18-29,Medium,30.1 +2021,WA,18-29,High,29.9 +2021,WA,30-44,Low,29.0 +2021,WA,30-44,Medium,29.3 +2021,WA,30-44,High,31.7 +2021,WA,45-59,Low,33.0 +2021,WA,45-59,Medium,30.7 +2021,WA,45-59,High,31.0 +2021,WA,60+,Low,31.8 +2021,WA,60+,Medium,34.1 +2021,WA,60+,High,31.6 +2021,SA,18-29,Low,31.1 +2021,SA,18-29,Medium,29.7 +2021,SA,18-29,High,28.6 +2021,SA,30-44,Low,31.5 +2021,SA,30-44,Medium,30.0 +2021,SA,30-44,High,28.9 +2021,SA,45-59,Low,30.8 +2021,SA,45-59,Medium,29.8 +2021,SA,45-59,High,32.1 +2021,SA,60+,Low,32.4 +2021,SA,60+,Medium,31.0 +2021,SA,60+,High,32.0 +2021,TAS,18-29,Low,31.3 +2021,TAS,18-29,Medium,29.8 +2021,TAS,18-29,High,31.7 +2021,TAS,30-44,Low,31.8 +2021,TAS,30-44,Medium,29.8 +2021,TAS,30-44,High,30.1 +2021,TAS,45-59,Low,30.5 +2021,TAS,45-59,Medium,29.5 +2021,TAS,45-59,High,31.3 +2021,TAS,60+,Low,33.4 +2021,TAS,60+,Medium,29.6 +2021,TAS,60+,High,31.1 +2022,NSW,18-29,Low,30.7 +2022,NSW,18-29,Medium,30.4 +2022,NSW,18-29,High,29.8 +2022,NSW,30-44,Low,30.6 +2022,NSW,30-44,Medium,31.0 +2022,NSW,30-44,High,29.7 +2022,NSW,45-59,Low,31.9 +2022,NSW,45-59,Medium,31.0 +2022,NSW,45-59,High,30.4 +2022,NSW,60+,Low,30.8 +2022,NSW,60+,Medium,30.6 +2022,NSW,60+,High,31.5 +2022,VIC,18-29,Low,31.9 +2022,VIC,18-29,Medium,29.9 +2022,VIC,18-29,High,30.5 +2022,VIC,30-44,Low,32.3 +2022,VIC,30-44,Medium,29.3 +2022,VIC,30-44,High,31.0 +2022,VIC,45-59,Low,30.9 +2022,VIC,45-59,Medium,31.7 +2022,VIC,45-59,High,29.8 +2022,VIC,60+,Low,29.9 +2022,VIC,60+,Medium,29.6 +2022,VIC,60+,High,30.7 +2022,QLD,18-29,Low,31.7 +2022,QLD,18-29,Medium,30.0 +2022,QLD,18-29,High,31.0 +2022,QLD,30-44,Low,29.8 +2022,QLD,30-44,Medium,30.9 +2022,QLD,30-44,High,29.3 +2022,QLD,45-59,Low,30.9 +2022,QLD,45-59,Medium,31.1 +2022,QLD,45-59,High,29.7 +2022,QLD,60+,Low,31.3 +2022,QLD,60+,Medium,32.2 +2022,QLD,60+,High,30.1 +2022,WA,18-29,Low,32.2 +2022,WA,18-29,Medium,29.8 +2022,WA,18-29,High,30.9 +2022,WA,30-44,Low,32.9 +2022,WA,30-44,Medium,28.5 +2022,WA,30-44,High,29.7 +2022,WA,45-59,Low,32.2 +2022,WA,45-59,Medium,30.9 +2022,WA,45-59,High,31.0 +2022,WA,60+,Low,31.1 +2022,WA,60+,Medium,31.3 +2022,WA,60+,High,30.5 +2022,SA,18-29,Low,32.6 +2022,SA,18-29,Medium,31.2 +2022,SA,18-29,High,30.7 +2022,SA,30-44,Low,31.1 +2022,SA,30-44,Medium,30.5 +2022,SA,30-44,High,30.1 +2022,SA,45-59,Low,32.0 +2022,SA,45-59,Medium,30.7 +2022,SA,45-59,High,30.9 +2022,SA,60+,Low,33.8 +2022,SA,60+,Medium,32.1 +2022,SA,60+,High,30.4 +2022,TAS,18-29,Low,32.6 +2022,TAS,18-29,Medium,30.5 +2022,TAS,18-29,High,28.4 +2022,TAS,30-44,Low,30.5 +2022,TAS,30-44,Medium,29.1 +2022,TAS,30-44,High,30.1 +2022,TAS,45-59,Low,31.6 +2022,TAS,45-59,Medium,32.8 +2022,TAS,45-59,High,30.9 +2022,TAS,60+,Low,31.5 +2022,TAS,60+,Medium,32.0 +2022,TAS,60+,High,28.5 +2023,NSW,18-29,Low,31.8 +2023,NSW,18-29,Medium,31.9 +2023,NSW,18-29,High,29.1 +2023,NSW,30-44,Low,32.8 +2023,NSW,30-44,Medium,31.5 +2023,NSW,30-44,High,30.3 +2023,NSW,45-59,Low,32.4 +2023,NSW,45-59,Medium,33.6 +2023,NSW,45-59,High,31.0 +2023,NSW,60+,Low,32.1 +2023,NSW,60+,Medium,30.9 +2023,NSW,60+,High,30.1 +2023,VIC,18-29,Low,32.4 +2023,VIC,18-29,Medium,30.2 +2023,VIC,18-29,High,30.7 +2023,VIC,30-44,Low,31.2 +2023,VIC,30-44,Medium,31.7 +2023,VIC,30-44,High,31.0 +2023,VIC,45-59,Low,32.8 +2023,VIC,45-59,Medium,30.8 +2023,VIC,45-59,High,30.5 +2023,VIC,60+,Low,30.9 +2023,VIC,60+,Medium,31.0 +2023,VIC,60+,High,31.3 +2023,QLD,18-29,Low,32.4 +2023,QLD,18-29,Medium,30.2 +2023,QLD,18-29,High,31.5 +2023,QLD,30-44,Low,33.1 +2023,QLD,30-44,Medium,31.6 +2023,QLD,30-44,High,32.6 +2023,QLD,45-59,Low,31.0 +2023,QLD,45-59,Medium,30.1 +2023,QLD,45-59,High,29.0 +2023,QLD,60+,Low,33.4 +2023,QLD,60+,Medium,32.1 +2023,QLD,60+,High,30.8 +2023,WA,18-29,Low,31.9 +2023,WA,18-29,Medium,30.0 +2023,WA,18-29,High,33.0 +2023,WA,30-44,Low,31.8 +2023,WA,30-44,Medium,31.3 +2023,WA,30-44,High,31.4 +2023,WA,45-59,Low,32.3 +2023,WA,45-59,Medium,31.5 +2023,WA,45-59,High,30.0 +2023,WA,60+,Low,32.4 +2023,WA,60+,Medium,33.3 +2023,WA,60+,High,32.2 +2023,SA,18-29,Low,33.2 +2023,SA,18-29,Medium,30.6 +2023,SA,18-29,High,29.6 +2023,SA,30-44,Low,31.6 +2023,SA,30-44,Medium,31.3 +2023,SA,30-44,High,31.8 +2023,SA,45-59,Low,30.1 +2023,SA,45-59,Medium,32.8 +2023,SA,45-59,High,30.6 +2023,SA,60+,Low,31.5 +2023,SA,60+,Medium,30.4 +2023,SA,60+,High,29.2 +2023,TAS,18-29,Low,32.4 +2023,TAS,18-29,Medium,31.2 +2023,TAS,18-29,High,29.3 +2023,TAS,30-44,Low,30.4 +2023,TAS,30-44,Medium,30.9 +2023,TAS,30-44,High,32.4 +2023,TAS,45-59,Low,31.5 +2023,TAS,45-59,Medium,29.8 +2023,TAS,45-59,High,30.6 +2023,TAS,60+,Low,31.6 +2023,TAS,60+,Medium,28.7 +2023,TAS,60+,High,30.8 +2024,NSW,18-29,Low,31.6 +2024,NSW,18-29,Medium,32.0 +2024,NSW,18-29,High,32.6 +2024,NSW,30-44,Low,33.0 +2024,NSW,30-44,Medium,31.1 +2024,NSW,30-44,High,29.8 +2024,NSW,45-59,Low,34.6 +2024,NSW,45-59,Medium,31.6 +2024,NSW,45-59,High,31.0 +2024,NSW,60+,Low,32.1 +2024,NSW,60+,Medium,31.8 +2024,NSW,60+,High,31.0 +2024,VIC,18-29,Low,31.2 +2024,VIC,18-29,Medium,30.8 +2024,VIC,18-29,High,30.8 +2024,VIC,30-44,Low,31.4 +2024,VIC,30-44,Medium,30.7 +2024,VIC,30-44,High,31.0 +2024,VIC,45-59,Low,31.7 +2024,VIC,45-59,Medium,33.0 +2024,VIC,45-59,High,28.3 +2024,VIC,60+,Low,33.2 +2024,VIC,60+,Medium,32.8 +2024,VIC,60+,High,29.0 +2024,QLD,18-29,Low,31.5 +2024,QLD,18-29,Medium,30.9 +2024,QLD,18-29,High,29.4 +2024,QLD,30-44,Low,31.1 +2024,QLD,30-44,Medium,30.3 +2024,QLD,30-44,High,32.7 +2024,QLD,45-59,Low,32.9 +2024,QLD,45-59,Medium,32.8 +2024,QLD,45-59,High,31.7 +2024,QLD,60+,Low,31.0 +2024,QLD,60+,Medium,31.1 +2024,QLD,60+,High,31.6 +2024,WA,18-29,Low,30.6 +2024,WA,18-29,Medium,32.0 +2024,WA,18-29,High,30.6 +2024,WA,30-44,Low,31.5 +2024,WA,30-44,Medium,32.1 +2024,WA,30-44,High,31.3 +2024,WA,45-59,Low,31.6 +2024,WA,45-59,Medium,32.7 +2024,WA,45-59,High,29.9 +2024,WA,60+,Low,32.7 +2024,WA,60+,Medium,32.2 +2024,WA,60+,High,30.8 +2024,SA,18-29,Low,32.1 +2024,SA,18-29,Medium,30.0 +2024,SA,18-29,High,31.7 +2024,SA,30-44,Low,31.7 +2024,SA,30-44,Medium,30.9 +2024,SA,30-44,High,31.9 +2024,SA,45-59,Low,31.3 +2024,SA,45-59,Medium,30.1 +2024,SA,45-59,High,29.4 +2024,SA,60+,Low,32.7 +2024,SA,60+,Medium,30.3 +2024,SA,60+,High,32.9 +2024,TAS,18-29,Low,29.7 +2024,TAS,18-29,Medium,33.0 +2024,TAS,18-29,High,31.0 +2024,TAS,30-44,Low,31.8 +2024,TAS,30-44,Medium,30.9 +2024,TAS,30-44,High,31.3 +2024,TAS,45-59,Low,32.0 +2024,TAS,45-59,Medium,32.6 +2024,TAS,45-59,High,31.1 +2024,TAS,60+,Low,32.3 +2024,TAS,60+,Medium,31.2 +2024,TAS,60+,High,31.0 +2025,NSW,18-29,Low,32.3 +2025,NSW,18-29,Medium,29.8 +2025,NSW,18-29,High,29.7 +2025,NSW,30-44,Low,32.8 +2025,NSW,30-44,Medium,31.8 +2025,NSW,30-44,High,30.9 +2025,NSW,45-59,Low,32.2 +2025,NSW,45-59,Medium,32.0 +2025,NSW,45-59,High,30.7 +2025,NSW,60+,Low,31.5 +2025,NSW,60+,Medium,32.0 +2025,NSW,60+,High,30.3 +2025,VIC,18-29,Low,32.4 +2025,VIC,18-29,Medium,29.8 +2025,VIC,18-29,High,32.0 +2025,VIC,30-44,Low,32.6 +2025,VIC,30-44,Medium,31.9 +2025,VIC,30-44,High,32.1 +2025,VIC,45-59,Low,33.9 +2025,VIC,45-59,Medium,32.7 +2025,VIC,45-59,High,29.4 +2025,VIC,60+,Low,31.0 +2025,VIC,60+,Medium,31.2 +2025,VIC,60+,High,31.3 +2025,QLD,18-29,Low,32.5 +2025,QLD,18-29,Medium,30.8 +2025,QLD,18-29,High,31.2 +2025,QLD,30-44,Low,31.3 +2025,QLD,30-44,Medium,31.0 +2025,QLD,30-44,High,29.7 +2025,QLD,45-59,Low,31.3 +2025,QLD,45-59,Medium,30.3 +2025,QLD,45-59,High,30.2 +2025,QLD,60+,Low,33.4 +2025,QLD,60+,Medium,30.9 +2025,QLD,60+,High,33.9 +2025,WA,18-29,Low,32.5 +2025,WA,18-29,Medium,31.7 +2025,WA,18-29,High,30.1 +2025,WA,30-44,Low,32.8 +2025,WA,30-44,Medium,31.0 +2025,WA,30-44,High,31.2 +2025,WA,45-59,Low,34.8 +2025,WA,45-59,Medium,31.6 +2025,WA,45-59,High,32.3 +2025,WA,60+,Low,31.6 +2025,WA,60+,Medium,31.8 +2025,WA,60+,High,33.1 +2025,SA,18-29,Low,31.4 +2025,SA,18-29,Medium,33.3 +2025,SA,18-29,High,31.7 +2025,SA,30-44,Low,31.5 +2025,SA,30-44,Medium,32.2 +2025,SA,30-44,High,32.1 +2025,SA,45-59,Low,32.8 +2025,SA,45-59,Medium,30.1 +2025,SA,45-59,High,30.5 +2025,SA,60+,Low,32.1 +2025,SA,60+,Medium,31.7 +2025,SA,60+,High,31.9 +2025,TAS,18-29,Low,32.2 +2025,TAS,18-29,Medium,30.2 +2025,TAS,18-29,High,31.4 +2025,TAS,30-44,Low,32.7 +2025,TAS,30-44,Medium,32.2 +2025,TAS,30-44,High,32.2 +2025,TAS,45-59,Low,33.0 +2025,TAS,45-59,Medium,32.2 +2025,TAS,45-59,High,31.1 +2025,TAS,60+,Low,30.6 +2025,TAS,60+,Medium,32.2 +2025,TAS,60+,High,31.5 diff --git a/projects/mental_health_hub/notebooks/mood_prediction_model/ConfusionMatrixHeatmap.png b/projects/mental_health_hub/notebooks/mood_prediction_model/ConfusionMatrixHeatmap.png new file mode 100644 index 0000000..bab876d Binary files /dev/null and b/projects/mental_health_hub/notebooks/mood_prediction_model/ConfusionMatrixHeatmap.png differ diff --git a/projects/mental_health_hub/notebooks/mood_prediction_model/MoodPrediction-FeatureImportances.png b/projects/mental_health_hub/notebooks/mood_prediction_model/MoodPrediction-FeatureImportances.png new file mode 100644 index 0000000..5bfeef8 Binary files /dev/null and b/projects/mental_health_hub/notebooks/mood_prediction_model/MoodPrediction-FeatureImportances.png differ diff --git a/projects/mental_health_hub/notebooks/mood_prediction_model/MoodPredictionModel.ipynb b/projects/mental_health_hub/notebooks/mood_prediction_model/MoodPredictionModel.ipynb new file mode 100644 index 0000000..fb67786 --- /dev/null +++ b/projects/mental_health_hub/notebooks/mood_prediction_model/MoodPredictionModel.ipynb @@ -0,0 +1,198 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 7, + "id": "30f98ae2-cfc5-4f2c-9bac-a330dfdf72f0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Best Params: {'max_depth': 5, 'min_samples_leaf': 1}\n", + "Mean CV Accuracy: 0.88\n", + "\n", + "Classification Report:\n", + " precision recall f1-score support\n", + "\n", + " High 0.88 0.78 0.82 36\n", + " Low 0.93 0.83 0.88 47\n", + " Medium 0.84 1.00 0.91 46\n", + "\n", + " accuracy 0.88 129\n", + " macro avg 0.88 0.87 0.87 129\n", + "weighted avg 0.88 0.88 0.87 129\n", + "\n", + "Confusion Matrix:\n", + " [[28 5 3]\n", + " [ 0 46 0]\n", + " [ 4 4 39]]\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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/Pz0xhtvyNvbW56enmrevHmW57zndBzuVpUrV9aUKVM0btw4HTlyRF26dJG3t7cSEhL0ySefaPDgwRozZoxq1KihypUra8yYMfr111/l4+OjlStXZnk0KyPsjBw5UmFhYXJxcVF4eLh8fX31+OOPa86cObLZbKpcubLWrFmTq+siQkNDNWTIEEVGRiouLk4PP/ywihUrpvj4eC1fvlyvvfZattcl5beEhAQ99thjat++vbZs2aL3339fvXv3Vv369SXlfF+8lcaNG2vTpk169dVXFRgYqIoVK6p58+Z65JFHtHjxYvn6+qpWrVrasmWLNm3adNu3Mfbx8dHMmTM1cOBANW3aVL1791aJEiW0a9cu/fbbb1q0aFGO99uLFy+qfPny6tGjh+rXry8vLy9t2rRJ27dvdzjCAuBP7vh9qAAUeH++3ezN3Hi7WWOMuXjxonnmmWdMYGCgKVasmKlataqZPn26w20fjTHm2rVrZtKkSaZixYqmWLFiJigoyIwbN85cvnzZoV1aWpqZNGmSKVeunPHw8DCtW7c2P/74Y6ZbtmZH0i1vJ5lxy9Hly5dnOX/nzp2mW7duplSpUsbNzc1UqFDB9OzZ00RHRzu0i42NNY0bNzaurq6mUqVK5o033rDf9vPPsqo9KSnJREREmPvuu8+4urqa8uXLm759+5rExER7m08//dTUqlXLFC1a1OH2ojfebtaYnI9Ddtsnp9v3dmR1e9WsrFy50vz1r381np6extPT09SoUcMMHz7cHDhwwN5m7969pm3btsbLy8v4+/ubQYMG2W+X++fbr16/ft2MGDHClC5d2thsNocxOXv2rOnevbspXry4KVGihBkyZIj58ccfs7zdrKenZ7b1vvXWW6Zx48bGw8PDeHt7m7p165p//vOf5sSJE7neHqGhoaZ27dqZ2ma1zxmTeRwz+ty7d6/p0aOH8fb2NiVKlDARERGZbtOa030xu2Ub88etcB944AHj4eHhcCvo8+fPm/79+xt/f3/j5eVlwsLCzP79+zP9+8ru/5zsbge8evVq07JlS+Ph4WF8fHxMs2bNzIcffujQ5lb77ZUrV8xzzz1n6tevb7y9vY2np6epX7++ef3117NcRwDG2IzJxRVPAACgwJs4caImTZqks2fP3pGjewDuDVxjAQAAAMAyggUAAAAAywgWAAAAACzjGgsAAAAAlnHEAgAAAIBlBAsAAAAAlvEDeRalp6frxIkT8vb2ls1mc3Y5AAAAQJ4xxujixYsKDAxUkSI3PyZBsLDoxIkTCgoKcnYZAAAAQL45duyYypcvf9M2BAuLvL29Jf2xsX18fJxcDQAAAJB3UlJSFBQUZP/MezMEC4syTn/y8fEhWAAAAKBQyskp/1y8DQAAAMAyggUAAAAAywgWAAAAACwjWAAAAACwjGABAAAAwDKCBQAAAADLCBYAAAAALCNYAAAAALCMYAEAAADAMoIFAAAAAMsIFgAAAAAsI1gAAAAAsIxgAQAAAMAyggUAAAAAywgWAAAAACwr6uwCCou4uDh5eXk5uwwAKLT8/f0VHBzs7DIAANkgWOSR0NBQZ5cAAIWau0dxHdi/j3ABAHcpgkUeKREWIbeAKs4uAwAKpWtJx5S0ZoYSExMJFgBwlyJY5JFiJcsTLAAAAHDP4uJtAAAAAJYRLAAAAABYRrAAAAAAYBnBAgAAAIBlBAsAAAAAlhEsAAAAAFhGsAAAAABgGcECAAAAgGUECwAAAACWESwAAAAAWEawAAAAAGAZwQIAAACAZQQLAAAAAJYRLAAAAABYRrAAAAAAYBnBAgAAAIBlBAsAAAAAlhEsAAAAAFh2W8Hi1KlTGjFihCpVqiQ3NzcFBQXp0UcfVXR0dJ4V1rp1a40aNSrP+stgs9m0atWqPO8XAAAAuJcVze0Ljhw5ovvvv19+fn6aPn266tatq2vXrmn9+vUaPny49u/fnx91AgAAALiL5fqIxbBhw2Sz2bRt2zZ1795d1apVU+3atfXss8/qu+++kyQdPXpUnTt3lpeXl3x8fNSzZ0+dPn3a3sfEiRPVoEEDLV68WCEhIfL19VV4eLguXrwoSerXr59iY2P12muvyWazyWaz6ciRI0pLS9OAAQNUsWJFeXh4qHr16nrttdcy1fjuu++qdu3acnNzU7ly5RQRESFJCgkJkSR17dpVNpvN/nzXrl1q06aNvL295ePjo8aNG+v777/P7aYBAAAA7lm5Chbnzp3TunXrNHz4cHl6emaa7+fnp/T0dHXu3Fnnzp1TbGysNm7cqJ9//lm9evVyaHv48GGtWrVKa9as0Zo1axQbG6upU6dKkl577TW1aNFCgwYN0smTJ3Xy5EkFBQUpPT1d5cuX1/Lly7V3716NHz9ezz//vD766CN7v/Pnz9fw4cM1ePBg7dmzR6tXr1aVKlUkSdu3b5ckLVy4UCdPnrQ/79Onj8qXL6/t27drx44d+te//qVixYpluQ2uXLmilJQUhwcAAABwr8vVqVCHDh2SMUY1atTItk10dLT27NmjhIQEBQUFSZLee+891a5dW9u3b1fTpk0lSenp6YqKipK3t7ck6W9/+5uio6P18ssvy9fXV66uripevLgCAgLsfbu4uGjSpEn25xUrVtSWLVv00UcfqWfPnpKkKVOmaPTo0frHP/5hb5exzNKlS0v6IwD9ud+jR4/queees69X1apVs12/yMhIhxoAAAAA5PKIhTHmlm327dunoKAge6iQpFq1asnPz0/79u2zTwsJCbGHCkkqV66czpw5c8v+582bp8aNG6t06dLy8vLSW2+9paNHj0qSzpw5oxMnTuihhx7KzWrp2Wef1cCBA9W2bVtNnTpVhw8fzrbtuHHjlJycbH8cO3YsV8sCAAAACqNcBYuqVavKZrPlyQXaN55qZLPZlJ6eftPXLF26VGPGjNGAAQO0YcMGxcXFqX///rp69aokycPD47ZqmThxon766Sd16tRJX375pWrVqqVPPvkky7Zubm7y8fFxeAAAAAD3ulwFi5IlSyosLEzz5s3TpUuXMs2/cOGCatasqWPHjjl8k793715duHBBtWrVyvGyXF1dlZaW5jBt8+bNatmypYYNG6aGDRuqSpUqDkcXvL29FRISctPb3hYrVixTv5JUrVo1PfPMM9qwYYO6deumhQsX5rhWAAAA4F6X67tCzZs3T2lpaWrWrJlWrlyp+Ph47du3T7Nnz1aLFi3Utm1b1a1bV3369NEPP/ygbdu26amnnlJoaKiaNGmS4+WEhIRo69atOnLkiBITE5Wenq6qVavq+++/1/r163Xw4EG9+OKL9guwM0ycOFEzZszQ7NmzFR8frx9++EFz5sxx6Dc6OlqnTp3S+fPn9fvvvysiIkIxMTH65ZdftHnzZm3fvl01a9bM7aYBAAAA7lm5DhaVKlXSDz/8oDZt2mj06NGqU6eO2rVrp+joaM2fP182m02ffvqpSpQooQceeEBt27ZVpUqVtGzZslwtZ8yYMXJxcVGtWrVUunRpHT16VEOGDFG3bt3Uq1cvNW/eXElJSRo2bJjD6/r27atZs2bp9ddfV+3atfXII48oPj7ePn/GjBnauHGj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vCfe/by9vRUXF6fU1FRFR0fr2WefVaVKldS6det8XS5HLP7E399fLi4uOn36tMP006dPKyAgIMvXBAQE3LR9xp+56RO3Lz/GMCuVKlWSv7+/Dh06ZL1oOLidMXRGn8jendrefn5+qlatGvthPrEyjq+88oqmTp2qDRs2qF69evbpvCfeWfkxhlnhPTH/3O4YFilSRFWqVFGDBg00evRo9ejRQ5GRkZLydz8kWPyJq6urGjdurOjoaPu09PR0RUdHq0WLFlm+pkWLFg7tJWnjxo329hUrVlRAQIBDm5SUFG3dujXbPnH78mMMs3L8+HElJSWpXLlyeVM47G5nDJ3RJ7J3p7Z3amqqDh8+zH6YT253HKdNm6bJkydr3bp1atKkicM83hPvrPwYw6zwnph/8ur/0/T0dF25ckVSPu+Hli79LoSWLl1q3NzcTFRUlNm7d68ZPHiw8fPzM6dOnTLGGPO3v/3N/Otf/7K337x5sylatKh55ZVXzL59+8yECROyvN2sn5+f+fTTT83u3btN586dubVePsrrMbx48aIZM2aM2bJli0lISDCbNm0yjRo1MlWrVjWXL192yjoWdrkdwytXrpidO3eanTt3mnLlypkxY8aYnTt3mvj4+Bz3ibyVH2M4evRoExMTYxISEszmzZtN27Ztjb+/vzlz5swdX797RW7HcerUqcbV1dWsWLHC4VakFy9edGjDe+Kdk9djyHvinZfbMfzPf/5jNmzYYA4fPmz27t1rXnnlFVO0aFHz9ttv29vk135IsMjCnDlzTHBwsHF1dTXNmjUz3333nX1eaGio6du3r0P7jz76yFSrVs24urqa2rVrm88//9xhfnp6unnxxRdN2bJljZubm3nooYfMgQMH7sSq3LPycgx/++038/DDD5vSpUubYsWKmQoVKphBgwbxgTSf5WYMExISjKRMj9DQ0Bz3ibyX12PYq1cvU65cOePq6mruu+8+06tXL3Po0KE7uEb3ptyMY4UKFbIcxwkTJtjb8J545+XlGPKe6By5GcN///vfpkqVKsbd3d2UKFHCtGjRwixdutShv/zaD23GGGPtmAcAAACAex3XWAAAAACwjGABAAAAwDKCBQAAAADLCBYAAAAALCNYAAAAALCMYAEAAADAMoIFAAAAAMsIFgAAAAAsI1gAAAAAsIxgAQAFXL9+/dSlSxdnl5Gt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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "from sklearn.tree import DecisionTreeClassifier\n", + "from sklearn.model_selection import train_test_split, GridSearchCV, cross_val_score\n", + "from sklearn.metrics import classification_report, confusion_matrix\n", + "from sklearn.utils import resample\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# 1. Generate mock ABS-style data with six inputs\n", + "np.random.seed(42)\n", + "data = pd.DataFrame({\n", + " 'Sleep': np.random.uniform(4, 9, size=300), # Hours per night\n", + " 'Activity': np.random.uniform(0, 7, size=300), # Exercise hours per week\n", + " 'Age': np.random.randint(18, 65, size=300), # Age in years\n", + " 'K10': np.random.randint(10, 50, size=300), # Distress score (10–50)\n", + " 'Health': np.random.randint(1, 6, size=300), # Self-rated health (1–5)\n", + " 'Contacts': np.random.randint(0, 10, size=300) # Weekly close contacts\n", + "})\n", + "\n", + "# 2. Define rule-based mood function\n", + "def predict_mood_rule(row):\n", + " if row['Sleep'] <= 5 and row['K10'] >= 35:\n", + " return 'Low' # Extreme distress + poor sleep\n", + " if (row['Sleep'] >= 7 or row['Activity'] >= 5) and row['Contacts'] >= 3:\n", + " return 'High' # Good sleep/exercise + social support\n", + " return None # Others defer to regression\n", + "\n", + "# 3. Compute continuous MoodScore via regression formula\n", + "def compute_mood_score(row):\n", + " S, A = row['Sleep'], row['Activity']\n", + " D, K = row['Age']/10, row['K10']/10\n", + " H, C = row['Health'], row['Contacts']\n", + " return 0.25*S + 0.20*A - 0.15*D - 0.30*K + 0.10*H + 0.10*C + 2.0\n", + "\n", + "# 4. Combine rule-based and regression thresholds\n", + "def predict_mood(row):\n", + " label = predict_mood_rule(row)\n", + " if label:\n", + " return label\n", + " score = compute_mood_score(row)\n", + " if score >= 7:\n", + " return 'High'\n", + " if score <= 4:\n", + " return 'Low'\n", + " return 'Medium'\n", + "\n", + "# 5. Label data\n", + "data['Mood'] = data.apply(predict_mood, axis=1)\n", + "\n", + "# 6. Balance 'Medium' class via oversampling\n", + "major = data[data['Mood'] != 'Medium']\n", + "med = data[data['Mood'] == 'Medium']\n", + "med_up = resample(med, replace=True, n_samples=major['Mood'].value_counts().max(), random_state=42)\n", + "balanced = pd.concat([major, med_up])\n", + "\n", + "# 7. Prepare features and labels\n", + "features = ['Sleep', 'Activity', 'Age', 'K10', 'Health', 'Contacts']\n", + "X = balanced[features]\n", + "y = balanced['Mood']\n", + "\n", + "# 8. Split into train and test sets\n", + "X_train, X_test, y_train, y_test = train_test_split(\n", + " X, y, test_size=0.3, random_state=42, stratify=y\n", + ")\n", + "\n", + "# 9. Hyperparameter tuning for Decision Tree\n", + "param_grid = {'max_depth': [3, 4, 5], 'min_samples_leaf': [1, 5, 10]}\n", + "grid = GridSearchCV(DecisionTreeClassifier(random_state=42), param_grid, cv=5)\n", + "grid.fit(X_train, y_train)\n", + "best_clf = grid.best_estimator_\n", + "\n", + "# 10. Cross-validation performance\n", + "cv_scores = cross_val_score(best_clf, X_train, y_train, cv=5)\n", + "print(f\"Best Params: {grid.best_params_}\")\n", + "print(f\"Mean CV Accuracy: {cv_scores.mean():.2f}\\n\")\n", + "\n", + "# 11. Evaluate on the test set\n", + "y_pred = best_clf.predict(X_test)\n", + "print(\"Classification Report:\\n\", classification_report(y_test, y_pred))\n", + "cm = confusion_matrix(y_test, y_pred, labels=['High', 'Medium', 'Low'])\n", + "print(\"Confusion Matrix:\\n\", cm)\n", + "\n", + "# 12. Plot confusion matrix heatmap\n", + "plt.figure(figsize=(5, 5))\n", + "plt.imshow(cm, cmap='Blues', interpolation='nearest')\n", + "plt.title('Confusion Matrix Heatmap')\n", + "plt.colorbar()\n", + "# Define class labels\n", + "cls = ['High', 'Medium', 'Low']\n", + "ticks = np.arange(len(cls))\n", + "plt.xticks(ticks, cls, rotation=45)\n", + "plt.yticks(ticks, cls)\n", + "# Add text inside squares\n", + "for i in range(len(cls)):\n", + " for j in range(len(cls)):\n", + " plt.text(j, i, cm[i, j], ha='center', va='center')\n", + "plt.xlabel('Predicted')\n", + "plt.ylabel('True')\n", + "plt.tight_layout()\n", + "plt.show()\n", + "\n", + "# 13. Plot feature importances\n", + "importances = best_clf.feature_importances_\n", + "plt.figure(figsize=(8, 5))\n", + "plt.barh(features, importances, edgecolor='black')\n", + "plt.title('Mood Prediction – Feature Importances')\n", + "plt.xlabel('Importance Score')\n", + "plt.tight_layout()\n", + "plt.show()\n", + "\n", + "# End of model implementation\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c1b9e03c-ce52-4af0-bbd7-64ef71e49676", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.4" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/projects/mental_health_hub/scripts/activity_logger.py b/projects/mental_health_hub/scripts/activity_logger.py new file mode 100644 index 0000000..a6c0217 --- /dev/null +++ b/projects/mental_health_hub/scripts/activity_logger.py @@ -0,0 +1,160 @@ +#import the required modules +import datetime #for timestamp functionality +import random #to generate random IP addresses +import csv #for CSV export functionality + +#generate a random IP address in the 192.168.1.x range +def generate_ip(): + return f"192.168.1.{random.randint(2, 254)}" + +#return current UTC timestamp in ISO 8601 format +def current_timestamp(): + return datetime.datetime.now(datetime.timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ") + +#list of valid usernames +valid_users = ["user_102", "user_877", "user_324", "user_3424", "admin342"] + +#list to store user activity logs +activity_logs = [] + +#dictionary to track the number of chat messages per user (for spam detection) +chat_tracker = {} + +#list of allowed file extensions for uploads +safe_extensions = [".png", ".jpg", ".jpeg", ".pdf", ".txt"] + +#start the main application loop +while True: + #prompt the user to log in + print ("(valid usernames are: user_102, user_877, user_324, user_3424, admin342):") + username = input("Enter username: ") + password = input("Enter password (any password will work): ") + ip = generate_ip() #generate a simulated IP address for the session + + #handle invalid username attempts + if username not in valid_users: + print("Invalid username. Please try again.") + activity_logs.append({ + "timestamp": current_timestamp(), + "user_id": username, + "event": "login_attempt", + "status": "failed", + "reason": "Invalid username", + "ip_address": ip + }) + continue #restart login loop + + #admin user functionality: view or export activity logs + if username == "admin342": + view_logs = input("Would you like to see the logs? (yes/no)").lower() + if view_logs == "yes": + #display all stored logs + print("\n--- Activity Logs ---") + for log in activity_logs: + print(log) + print("--- End of Logs ---\n") + + #offer option to export logs to CSV + export = input("Would you like to export logs to a CSV file? (yes/no): ").lower() + if export == "yes": + #collect all unique keys used across all log entries + all_keys = set() + for entry in activity_logs: + all_keys.update(entry.keys()) + all_keys = sorted(all_keys) #sort for consistent CSV headers + + #create a filename using current timestamp + csv_filename = f"activity_logs_{datetime.datetime.now().strftime('%Y%m%d_%H%M%S')}.csv" + #write logs to CSV + with open(csv_filename, mode="w", newline="") as file: + writer = csv.DictWriter(file, fieldnames=all_keys) + writer.writeheader() + for entry in activity_logs: + #ensure all keys exist in the row (fill missing with empty string) + complete_entry = {key: entry.get(key, "") for key in all_keys} + writer.writerow(complete_entry) + print(f"Logs exported to {csv_filename}") + continue #go back to login after admin actions + + #log successful user login + print(f"Welcome, {username}!") + activity_logs.append({ + "timestamp": current_timestamp(), + "user_id": username, + "event": "login_attempt", + "status": "success", + "ip_address": ip + }) + + #begin user session actions + while True: + print("\nWhat would you like to do?") + print("(1) Upload a file or document") + print("(2) Send a chat message") + choice = input("Enter 1 or 2: ") + + if choice == "1": + #handle file upload + filename = input("What is the filename?: ") + extension = input(f"What is the extension? (include the dot, allowed: {', '.join(safe_extensions)}): ") + full_file = filename + extension + + #check file extension safety + if extension.lower() not in safe_extensions: + print(f"{full_file} denied due to unsafe file type.") + activity_logs.append({ + "timestamp": current_timestamp(), + "user_id": username, + "event": "file_upload", + "filename": full_file, + "status": "denied", + "reason": "Unsafe file type", + "ip_address": ip + }) + else: + print(f"{full_file} accepted and uploaded.") + activity_logs.append({ + "timestamp": current_timestamp(), + "user_id": username, + "event": "file_upload", + "filename": full_file, + "status": "accepted", + "ip_address": ip + }) + + elif choice == "2": + #handle chat messages with spam detection + if username not in chat_tracker: + chat_tracker[username] = 0 #initialize count + + print("You may send up to 5 messages. Sending too many will result in a spam flag.") + for i in range(5): + msg = input("Enter chat message: ") + chat_tracker[username] += 1 + activity_logs.append({ + "timestamp": current_timestamp(), + "user_id": username, + "event": "chat_message", + "message": msg, + "status": "received", + "ip_address": ip + }) + + #if user exceeds 5 messages, flag them for spamming and log out + if chat_tracker[username] >= 5: + print("Too many messages sent. You are flagged for spamming and will be logged out.") + activity_logs.append({ + "timestamp": current_timestamp(), + "user_id": username, + "event": "chat_abuse", + "status": "spamming_detected", + "ip_address": ip + }) + break + break #end session after chat + + #ask user if they want to perform another action or log out + print("Type 'yes' to continue or 'no' to return to login") + back = input("Would you like to go back to options?: ").lower() + if back == "no": + break #return to login loop diff --git a/projects/mental_health_hub/security/token_auth_jwt.py b/projects/mental_health_hub/security/token_auth_jwt.py new file mode 100644 index 0000000..a5c3c09 --- /dev/null +++ b/projects/mental_health_hub/security/token_auth_jwt.py @@ -0,0 +1,110 @@ +from flask import Flask, request, jsonify #web framework to create routes like /login, /register +import bcrypt #hashes the passwords +import jwt #creates and verifies token +import datetime #helps set token expiry times + +app = Flask(__name__) #creates the flask app +app.config['SECRET_KEY'] = "super-secret-key" # + + + +users_db = {} #testing database + + + +def hash_password(password: str) -> bytes: + """Securely hash a plaintext password using bcrypt.""" + return bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt()) + +def verify_password(password: str, hashed: bytes) -> bool: + """Verify that a given plaintext password matches the stored bcrypt hash.""" + return bcrypt.checkpw(password.encode('utf-8'), hashed) + + + +def generate_token(username: str) -> str: + #create the payload + payload = { + 'user': username, #store the username + 'exp': datetime.datetime.utcnow() + datetime.timedelta(minutes=30) #set expiration time (30 minutes) + } + #encode the password into a JWT token, signed with the secret key + token = jwt.encode(payload, app.config['SECRET_KEY'], algorithm="HS256") + return token + +def verify_token(token: str): + try: + #decode the token and check the signature and expiry + payload = jwt.decode(token, app.config['SECRET_KEY'], algorithms=["HS256"]) + return payload + except jwt.ExpiredSignatureError: + # If token is invalid or expired, return None + return None + except jwt.InvalidTokenError: + return None + + +#user registration +@app.route('/register', methods=['POST']) +def register(): + data = request.get_json() + username = data.get("username") + password = data.get("password") + + if username in users_db: + return jsonify({"error": "User already exists"}), 400 + + #save the user with a hashed password + hashed_pw = hash_password(password) + users_db[username] = hashed_pw + + return jsonify({"message": f"User {username} registered successfully"}), 201 + +#user login +@app.route('/login', methods=['POST']) +def login(): + data = request.get_json() + username = data.get("username") + password = data.get("password") + +#check if user exists + if username not in users_db: + return jsonify({"error": "Invalid credentials"}), 401 + + #check if password matches the hashed one + stored_pw = users_db[username] + if not verify_password(password, stored_pw): + return jsonify({"error": "Invalid credentials"}), 401 + + #if password is correct then generate token + token = generate_token(username) + return jsonify({"message": f"Welcome, {username}!", "token": token}), 200 + +@app.route('/protected', methods=['GET']) +def protected(): + #read the authorization" header (format: Bearer ) + auth_header = request.headers.get("Authorization") +#if no header or wrong format then deny access + if not auth_header or not auth_header.startswith("Bearer "): + return jsonify({"error": "Missing or invalid token"}), 401 + #extract the token + token = auth_header.split(" ")[1] + payload = verify_token(token) + #if token is invalid/expired then deny access + if not payload: + return jsonify({"error": "Invalid or expired token"}), 401 +# if token is valid then user gets access + + username = payload["user"] + return jsonify({"message": f"Hello {username}, you accessed a protected route!"}) + +@app.route('/logout', methods=['POST']) +def logout(): + + #logout is just deleting the token from the client side + + return jsonify({"message": "Logout by deleting token on client-side"}), 200 + + +if __name__ == "__main__": + app.run(debug=True) diff --git a/projects/mental_health_hub/tests/test_api.py b/projects/mental_health_hub/tests/test_api.py new file mode 100644 index 0000000..a21cdbd --- /dev/null +++ b/projects/mental_health_hub/tests/test_api.py @@ -0,0 +1,24 @@ +import requests + +#register +r = requests.post("http://127.0.0.1:5000/register", json={ + "username": "alice", + "password": "mypassword" +}) +print(r.json()) + +#login +r = requests.post("http://127.0.0.1:5000/login", json={ + "username": "alice", + "password": "mypassword" +}) +data = r.json() +print(data) + +token = data.get("token") + +#access protected route +r = requests.get("http://127.0.0.1:5000/protected", headers={ + "Authorization": f"Bearer {token}" +}) +print(r.json())