sam6309 commited on
Commit
344f8b9
·
verified ·
1 Parent(s): 0c1afa2

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +71 -0
app.py ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ import matplotlib.pyplot as plt
4
+ import datetime as dt
5
+
6
+ # Initialize session state for storing mood logs
7
+ if "mood_data" not in st.session_state:
8
+ st.session_state.mood_data = pd.DataFrame(columns=["Date", "Mood", "Activity", "Notes"])
9
+
10
+ # App title and description
11
+ st.title("Mood Tracker")
12
+ st.write("A simple app to log and track your mood over time.")
13
+
14
+ # Sidebar for mood input
15
+ st.sidebar.header("Log Your Mood")
16
+ mood = st.sidebar.selectbox("How are you feeling today?", ["Happy", "Neutral", "Sad", "Anxious", "Excited", "Angry"])
17
+ activity = st.sidebar.text_input("What activity were you doing?")
18
+ notes = st.sidebar.text_area("Add any notes (optional):")
19
+ log_button = st.sidebar.button("Log Mood")
20
+
21
+ # Log the mood
22
+ if log_button:
23
+ new_entry = pd.DataFrame({
24
+ "Date": [dt.datetime.now()],
25
+ "Mood": [mood],
26
+ "Activity": [activity],
27
+ "Notes": [notes]
28
+ })
29
+ st.session_state.mood_data = pd.concat([st.session_state.mood_data, new_entry], ignore_index=True)
30
+ st.success("Mood logged successfully!")
31
+
32
+ # Display mood data
33
+ st.header("Mood History")
34
+ if not st.session_state.mood_data.empty:
35
+ st.dataframe(st.session_state.mood_data.sort_values(by="Date", ascending=False))
36
+ else:
37
+ st.write("No mood data logged yet. Use the sidebar to add entries.")
38
+
39
+ # Visualize mood trends
40
+ st.header("Mood Trends")
41
+ if not st.session_state.mood_data.empty:
42
+ # Convert date column to datetime for grouping
43
+ st.session_state.mood_data["Date"] = pd.to_datetime(st.session_state.mood_data["Date"])
44
+ mood_counts = st.session_state.mood_data.groupby(["Mood"]).size()
45
+
46
+ # Bar chart for mood distribution
47
+ fig, ax = plt.subplots()
48
+ mood_counts.plot(kind="bar", color="skyblue", ax=ax)
49
+ ax.set_title("Mood Distribution")
50
+ ax.set_ylabel("Count")
51
+ ax.set_xlabel("Mood")
52
+ st.pyplot(fig)
53
+
54
+ # Trend over time
55
+ mood_over_time = st.session_state.mood_data.groupby(st.session_state.mood_data["Date"].dt.date).size()
56
+ fig, ax = plt.subplots()
57
+ mood_over_time.plot(ax=ax, marker="o", color="orange")
58
+ ax.set_title("Mood Over Time")
59
+ ax.set_ylabel("Entries")
60
+ ax.set_xlabel("Date")
61
+ st.pyplot(fig)
62
+ else:
63
+ st.write("No data available for visualizations.")
64
+
65
+ # Resources for mental health
66
+ st.header("Mental Health Resources")
67
+ st.write("Here are some tips and resources to help improve your mental health:")
68
+ st.markdown("- Practice mindfulness and deep breathing.")
69
+ st.markdown("- Stay physically active.")
70
+ st.markdown("- Talk to a trusted friend or counselor.")
71
+ st.markdown("- [Find a therapist](https://www.psychologytoday.com)")