Spaces:
Sleeping
Sleeping
import streamlit as st | |
import os | |
import sqlite3 | |
from home import show_home_page | |
from auth import signup, login | |
import database # Ensure database initialization | |
def main(): | |
st.set_page_config(page_title="Auto Assist Chatbot", layout="wide") | |
if 'logged_in' not in st.session_state: | |
st.session_state.logged_in = False | |
logo_url = "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRW9NWd7e-wySL6H4R0nBC6QjirbzVNgkr4Sw&usqp=CAU" | |
st.markdown( | |
f""" | |
<div style="display:flex;align-items:center;"> | |
<img src="{logo_url}" alt="Auto Assist Chatbot Logo" style="width:80px;height:80px;"> | |
<h1 style="margin-left:10px;color:#FF4500;">Auto Assist Chatbot</h1> | |
</div> | |
""", | |
unsafe_allow_html=True | |
) | |
st.markdown( | |
""" | |
<style> | |
.stButton>button { | |
color: #FFFFFF; | |
background-image: linear-gradient(to right, #FF1493, #FF4500); | |
border: none; | |
border-radius: 20px; | |
padding: 12px 30px; | |
text-align: center; | |
text-decoration: none; | |
display: inline-block; | |
font-size: 16px; | |
margin: 4px 2px; | |
transition-duration: 0.4s; | |
cursor: pointer; | |
min-width: 150px; | |
} | |
.stSidebar .stButton>button { | |
background-image: linear-gradient(to right, #FF1493, #FF4500); | |
border-radius: 20px; | |
padding: 12px 30px; | |
min-width: 150px; | |
} | |
</style> | |
""", | |
unsafe_allow_html=True | |
) | |
# Function to create a connection to the SQLite database | |
def create_connection(): | |
db_path = os.path.join(os.path.dirname(__file__), 'database.db') | |
conn = sqlite3.connect(db_path) | |
return conn | |
def is_valid_input(username, password): | |
prefix = "autoassist" | |
return username.startswith(prefix) and password.startswith(prefix) | |
# Ensure table creation | |
database.create_table() | |
if st.session_state.logged_in: | |
if st.sidebar.button('Back to Login'): | |
st.session_state.logged_in = False | |
st.experimental_rerun() | |
show_home_page() | |
else: | |
choice = st.radio("Choose an option:", ('Signup', 'Login')) | |
if choice == 'Signup': | |
st.markdown('### Signup') | |
username_signup = st.text_input('Username (Signup)', key='username_signup') | |
password_signup = st.text_input('Password (Signup)', type='password', key='password_signup') | |
confirm_password_signup = st.text_input('Confirm Password (Signup)', type='password', key='confirm_password_signup') | |
if st.button('Signup'): | |
if password_signup == confirm_password_signup: | |
if is_valid_input(username_signup, password_signup): | |
signup(username_signup, password_signup) | |
st.success('Signup successful!') | |
else: | |
st.error('You are not able to use "autoassist chatbot".') | |
else: | |
st.error('Passwords do not match.') | |
elif choice == 'Login': | |
st.markdown('### Login') | |
username_login = st.text_input('Username (Login)', key='username_login') | |
password_login = st.text_input('Password (Login)', type='password', key='password_login') | |
if st.button('Login'): | |
if is_valid_input(username_login, password_login): | |
if login(username_login, password_login): | |
st.session_state.logged_in = True | |
st.experimental_rerun() | |
else: | |
st.error('Incorrect username or password.') | |
else: | |
st.error('You are not able to use "autoassist chatbot".') | |
if __name__ == '__main__': | |
main() | |