P.A / App.py
reshav1's picture
new file
907daef
raw
history blame
2.29 kB
import streamlit as st
from streamlit_option_menu import option_menu
from home import dashboard
import json
import uuid
def load_json():
with open("database/data.json") as file:
data = json.load(file)
return data
def login():
st.title("Login")
data = json.load(open("database/data.json"))
usrname = st.text_input("Username")
password = st.text_input("Password", type="password")
if st.button("Login", key="loginkey"):
for user in data["users"]:
if usrname == user["username"] and password == user["password"]:
st.success("Logged in as {}".format(usrname))
st.session_state["user"] = "logged"
flag = True
st.experimental_rerun()
else:
flag = False
if flag == False:
st.error("Invalid username or password")
st.stop()
def signup():
st.title("Signup")
username = st.text_input("Username")
password = st.text_input("Password", type="password")
confirm_password = st.text_input("Confirm Password", type="password")
if st.button("Signup", key="signupkey"):
if password == confirm_password:
data = json.load(open("database/data.json"))
newuser = {
"username": username,
"password": password,
"id": str(uuid.uuid4())
}
data["users"].append(newuser)
with open("database/data.json", "w") as file:
json.dump(data, file)
st.success("Account created")
else:
st.error("Passwords do not match")
def main():
if "user" not in st.session_state:
st.session_state["user"] = "visitor"
if st.session_state["user"] == "logged":
dashboard()
elif st.session_state["user"] == "visitor":
option = option_menu(
menu_title="Authentication",
options=["Login", "Signup"],
)
if option == "Login":
login()
elif option == "Signup":
signup()
main()