Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from transformers import pipeline | |
| from backend import db_connection # Import db_connection | |
| # ----------------------------- | |
| # Summarizer model | |
| # ----------------------------- | |
| def load_summarizer(): | |
| return pipeline("summarization", model="sshleifer/distilbart-cnn-12-6") | |
| summarizer = load_summarizer() | |
| # ----------------------------- | |
| # Functions | |
| # ----------------------------- | |
| def signup(): | |
| st.title("π Signup Page") | |
| # name = st.text_input("Enter your Name") # Removed name input | |
| email = st.text_input("Enter your Email") | |
| username = st.text_input("Choose a Username") | |
| password = st.text_input("Choose a Password", type="password") | |
| if st.button("Signup"): | |
| if email and username and password: # Removed 'name' | |
| # Use db_connection to create user | |
| if db_connection.create_user(email, username, password): # Removed 'name' argument | |
| st.success("β Account created! Please log in now.") | |
| st.session_state.page = "login" | |
| st.rerun() | |
| else: | |
| st.error("β οΈ An account with this username or email already exists. Please choose another.") | |
| else: | |
| st.error("β οΈ Please fill in all fields.") | |
| def login(): | |
| st.title("π Login Page") | |
| username = st.text_input("Username") | |
| password = st.text_input("Password", type="password") | |
| if st.button("Login"): | |
| # Use db_connection to validate user | |
| user = db_connection.validate_user(username, password) | |
| if user: | |
| st.session_state.logged_in = True | |
| st.session_state.username = user['username'] # Store username in session | |
| st.session_state.user_role = user['role'] # Store user role in session | |
| st.success("β Login successful! Redirecting...") | |
| st.session_state.page = "dashboard" | |
| st.rerun() | |
| else: | |
| st.error("β Invalid username or password") | |
| if st.button("Go to Signup"): | |
| st.session_state.page = "signup" | |
| st.rerun() | |
| def summarizer_page(): | |
| st.title("π Text Summarizer") | |
| text = st.text_area("Enter the text you want to summarize:", height=200) | |
| if st.button("Summarize"): | |
| if text.strip(): | |
| summary = summarizer(text, max_length=130, min_length=30, do_sample=False) | |
| st.subheader("β¨ Summary:") | |
| st.write(summary[0]['summary_text']) | |
| else: | |
| st.error("β οΈ Please enter some text to summarize.") | |
| if st.button("Logout"): | |
| st.session_state.logged_in = False | |
| st.session_state.page = "login" # Ensure it redirects to login after logout | |
| st.rerun() | |
| # ----------------------------- | |
| # Main App | |
| # ----------------------------- | |
| def main(): | |
| if "logged_in" not in st.session_state: | |
| st.session_state.logged_in = False | |
| if "page" not in st.session_state: | |
| st.session_state.page = "login" | |
| if st.session_state.page == "signup": | |
| signup() | |
| elif st.session_state.page == "login": | |
| login() | |
| elif st.session_state.page == "dashboard" and st.session_state.logged_in: # New dashboard page | |
| st.title("Welcome to Dashboard!") # Placeholder for dashboard content | |
| # In a real app, you'd import and call a dashboard function here | |
| if st.button("Go to Summarizer"): # Example navigation to summarizer | |
| st.session_state.page = "summarizer" | |
| st.rerun() | |
| if st.button("Logout"): # Logout from dashboard | |
| st.session_state.logged_in = False | |
| st.session_state.page = "login" | |
| st.rerun() | |
| elif st.session_state.page == "summarizer" and st.session_state.logged_in: | |
| summarizer_page() | |
| else: | |
| st.session_state.page = "login" | |
| login() | |
| if __name__ == "__main__": | |
| main() |