hcjang1987's picture
Update app.py
bab2bc2 verified
import streamlit as st
import random
from streamlit_extras.switch_page_button import switch_page
# ๋กœ๊ทธ์ธ ์ƒํƒœ ๊ด€๋ฆฌ
if 'logged_in' not in st.session_state:
st.session_state.logged_in = False
# ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€
def login_page():
st.title("๋กœ๊ทธ์ธ ํŽ˜์ด์ง€")
st.write("๊ณ„์ • ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.")
username = st.text_input("์‚ฌ์šฉ์ž ์ด๋ฆ„")
password = st.text_input("๋น„๋ฐ€๋ฒˆํ˜ธ", type="password")
if st.button("๋กœ๊ทธ์ธ"):
if username == "admin" and password == "password123": # ๊ฐ„๋‹จํ•œ ๋กœ๊ทธ์ธ ๊ฒ€์ฆ
st.session_state.logged_in = True
st.success("๋กœ๊ทธ์ธ ์„ฑ๊ณต!")
switch_page("์ด๋ฆ„ ์ž…๋ ฅ")
else:
st.error("๋กœ๊ทธ์ธ ์‹คํŒจ! ์‚ฌ์šฉ์ž ์ด๋ฆ„ ๋˜๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค.")
# ์ด๋ฆ„ ์ž…๋ ฅ ํŽ˜์ด์ง€
def name_input_page():
st.title("์ด๋ฆ„ ์ž…๋ ฅ ํŽ˜์ด์ง€")
st.write("์ด๋ฆ„์„ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ž…๋ ฅํ•˜์„ธ์š”.")
names_input = st.text_area("์ด๋ฆ„ ๋ชฉ๋ก", height=200)
if st.button("๋งค์นญ ์‹œ์ž‘ํ•˜๊ธฐ"):
names = [name.strip() for name in names_input.strip().split('\n') if name.strip()]
if len(names) < 2:
st.error("๋งค์นญํ•  ์ด๋ฆ„์ด 2๊ฐœ ์ด์ƒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.")
else:
st.session_state.names = names
switch_page("๋งค์นญ ๊ฒฐ๊ณผ")
# ๋งค์นญ ๊ฒฐ๊ณผ ํŽ˜์ด์ง€
def match_page():
st.title("๋งค์นญ ๊ฒฐ๊ณผ ํŽ˜์ด์ง€")
if 'names' not in st.session_state or not st.session_state.names:
st.warning("์ด๋ฆ„ ์ž…๋ ฅ ํŽ˜์ด์ง€์—์„œ ์ด๋ฆ„์„ ๋จผ์ € ์ž…๋ ฅํ•˜์„ธ์š”!")
return
names = st.session_state.names
random.shuffle(names)
mid = len(names) // 2
group_A = names[:mid]
group_B = names[mid:]
matching_pairs = [(a, b) for a, b in zip(group_A, group_B)]
st.subheader("๋งค์นญ ๊ฒฐ๊ณผ:")
for pair in matching_pairs:
st.write(f"{pair[0]} - {pair[1]}")
unmatched = set(names) - set(a for a, _ in matching_pairs) - set(b for _, b in matching_pairs)
if unmatched:
st.write("๋งค์นญ๋˜์ง€ ์•Š์€ ์‚ฌ๋žŒ:")
for name in unmatched:
st.write(name)
# ํŽ˜์ด์ง€ ๋กœ์ง ์„ค์ •
if st.session_state.logged_in:
if st.sidebar.radio("ํŽ˜์ด์ง€ ์„ ํƒ", ["์ด๋ฆ„ ์ž…๋ ฅ", "๋งค์นญ ๊ฒฐ๊ณผ"]) == "์ด๋ฆ„ ์ž…๋ ฅ":
name_input_page()
else:
match_page()
else:
login_page()