Spaces:
Sleeping
Sleeping
import streamlit as st | |
import json | |
from quiz_gui_helper import _QuizGUI | |
if "current_question" not in st.session_state: | |
st.session_state.current_question = 0 | |
if "quiz_started" not in st.session_state: | |
st.session_state.quiz_started = False | |
if "quiz_loaded" not in st.session_state: | |
st.session_state.quiz_loaded = False | |
def main(): | |
if not st.session_state.quiz_loaded: | |
st.error("Please load an exam first!") | |
else: | |
if st.session_state.quiz_started: | |
st.write("You are currently taking the exam.") | |
else: | |
#read the metadata and quiz_data from the session state | |
metadata = st.session_state.metadata | |
quiz_data = st.session_state.quiz_data | |
quiz_app = _QuizGUI(quiz_data) | |
quiz_app.load_quiz(metadata) | |
st.write("Start taking the exam.") | |
if st.button("Start Exam"): | |
st.session_state.page_access["Take Exam"] = True | |
st.session_state.page_access["View Results"] = False | |
st.session_state.current_question = 0 | |
st.session_state.user_answers = [] | |
st.session_state.completed = False | |
st.session_state.score = 0 | |
_QuizGUI(quiz_data).start_quiz() | |
st.session_state.quiz_started = True | |
if st.button("Finish Exam"): | |
st.session_state.quiz_completed = True | |
st.session_state.page_access["View Results"] = True | |
st.session_state.page_access["Take Exam"] = False | |
st.success("Exam completed successfully!") | |
elif st.button("End Exam Early"): | |
st.session_state.page_access["View Results"] = True | |
st.session_state.page_access["Take Exam"] = False | |
st.warning("Exam ended early.") | |
if __name__ == "__main__": | |
main() |