survey / app.py
smitathkr1's picture
Update app.py
5892ab0 verified
import random
from collections import Counter
import streamlit as st
st.set_page_config(page_title="Survey Assignment", page_icon=None, layout="wide", initial_sidebar_state="auto", menu_items=None)
import streamlit.components.v1 as components
# Function to read survey links from a file
def get_survey_links():
try:
with open("survey_links.txt", "r") as file:
return file.readlines()
except FileNotFoundError:
st.error("Error: survey_links.txt file not found!")
return [] # Return empty list if file not found
# Function to pick a random link with usage tracking
def get_random_link(links, link_counts):
# Shuffle the links to randomize selection order
random.shuffle(links)
# Count the occurrences of each link
counts = link_counts.copy()
for link in links:
if counts[link] < 10:
return link.strip() # Return first available link
return None # No links available
# Function to update link usage counts
def update_link_counts(link, link_counts):
link_counts[link] += 1
survey = st.button("Start Survey")
if survey:
# Initialize link usage counts (dictionary)
link_counts = Counter()
# Example usage
links = get_survey_links()
# Simulate assigning a random link with usage tracking
assigned_link = get_random_link(links, link_counts)
if assigned_link:
# Update usage count after assigning the link
update_link_counts(assigned_link, link_counts)
st.write("Start your survey here using this link:", assigned_link)
components.iframe(assigned_link, height=500)
else:
st.write("No surveys available (all links used 10 times)")