import json from typing import Dict from datasets import load_dataset from db.schema import Feedback, Response from db.crud import ingest, read, save_feedback import pandas as pd import streamlit as st from datetime import datetime import os from dotenv import load_dotenv from views.intro_screen import welcome_screen from views.questions_screen import questions_screen, survey_completed from views.continue_survey import continue_survey_screen from css.layout import custom_css load_dotenv() VALIDATION_CODE = os.getenv("VALIDATION_CODE") # class SurveyState: # """Class to handle survey state management""" # # def __init__(self): # pass # # def save_state(self, username: str, current_state: Dict) -> None: # """Save current state to Firebase""" # try: # """Handles feedback submission to the database.""" # feedback = Feedback( # id=st.session_state.current_index + 1, # user_id=st.session_state.username, # time_stamp=datetime.now().isoformat(), # responses=st.session_state.responses, # ) # save_feedback(feedback) # st.success("Your progress has been saved! You can continue later.") # st.session_state.completed = True # st.rerun() # except Exception as e: # st.error(f"An error occurred while submitting feedback: {e}") # def initialization(): """Initialize session state variables.""" if "current_index" not in st.session_state: st.session_state.current_index = 0 if "username" not in st.session_state: st.session_state.username = None if "responses" not in st.session_state: st.session_state.responses = [] if "completed" not in st.session_state: st.session_state.completed = False if "show_questions" not in st.session_state: st.session_state.show_questions = False if "survey_continued" not in st.session_state: st.session_state.survey_continued = None if "start_new_survey" not in st.session_state: st.session_state.start_new_survey = False # if "survey_state" not in st.session_state: # st.session_state.survey_state = SurveyState() def exit_screen(): """Display exit screen""" st.markdown("""
Your responses have been saved successfully.
You can safely close this window or start a new survey.