Study Tracker App

import streamlit as st
import pandas as pd
import plotly.express as px
import datetime

# Function to load or create the study data
def load_data():
    try:
        data = pd.read_csv('study_data.csv', parse_dates=['Date'])
    except FileNotFoundError:
        data = pd.DataFrame(columns=['Date', 'Study Hours'])
    return data

# Function to save data
def save_data(data):
    data.to_csv('study_data.csv', index=False)

# Main function to run the app
def main():
    st.title("Study Tracker App")

    # Load or create study data
    study_data = load_data()

    # Display current study data
    st.write("### Current Study Data")
    st.write(study_data)

    # Input study hours
    study_hours = st.number_input("Enter Study Hours", 0.0, 24.0, step=0.5)

    # Input date
    study_date = st.date_input("Select Date", datetime.date.today())

    # Convert study_date to datetime
    study_date = pd.to_datetime(study_date)

    # Add button to log study hours
    if st.button("Log Study Hours"):
        new_entry = {'Date': study_date, 'Study Hours': study_hours}
        study_data = pd.concat([study_data, pd.DataFrame([new_entry])], ignore_index=True)
        save_data(study_data)
        st.success(f"Study hours logged successfully for {study_date}")

    # Display history chart
    st.write("### Study History Chart")
    fig = px.line(study_data, x='Date', y='Study Hours', title='Study Hours Over Time')
    st.plotly_chart(fig)

if __name__ == "__main__":
    main()

Built With

  • chatgpt
  • python
  • streamlit
  • streamlit-api
Share this project:

Updates